filter trong servlet

4 181 0
filter trong servlet

Đang tải... (xem toàn văn)

Thông tin tài liệu

http://vietjack.com/  servlets/index.jsp                                                                                                              Copyright  ©  vietjack.com     Filter Servlet Servlet Filter lớp Java sử dụng lập trình Servlet cho mục đích sau: • Để chặn yêu cầu từ Client trước chúng truy cập nguồn backend • Để thao tác phản hồi từ Server trước chúng gửi trở lại tới Client Sau đề nghị số loại Filter sau: • Authentication Filters − Các Filter xác nhận • Data compression Filters − Các Filter nén liệu • Encryption Filters − Các Filter mật mã hóa • Các Filter mà kích hoạt kiện truy cập nguồn • Image Conversion Filters − Các Filter biến đổi hình ảnh • Logging and Auditing Filters − Các Filter kiểm tra log thống kê • MIME-TYPE Chain Filters • Tokenizing Filters • XSL/T Filter − Các Filter biến đổi nội dung XML Các Filter triển khai web.xml file sau map tới tên Servlet URL pattern Các phương thức Servlet Filter Về bản, Filter lớp Java mà triển khai javax.servlet.Filter Interface Interface định nghĩa phương thức: STT Phương thức Miêu tả http://vietjack.com/                                                                                                                              Trang  chia  sẻ  các  bài  học  online  miễn  phí  Page  1   http://vietjack.com/  servlets/index.jsp                                                                                                              Copyright  ©  vietjack.com     public void doFilter (ServletRequest, ServletResponse, FilterChain) Phương thức gọi container cặp request/response truyền thông qua chain public void init(FilterConfig filterConfig) Phương thức triệu hồi Web container để Filter mà đặt bên service public void destroy() Phương thức gọi Web container để Filter bị hủy khỏi service Ví dụ Servlet Filter Ví dụ sau Servlet Filter in địa IP thời gian Client Ví dụ giúp bạn hiểu Servlet Filter, bạn viết ứng dụng Filter phức tạp sử dụng khái niệm // Import required java libraries import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; // Implements Filter class public class LogFilter implements Filter { public void config) throws ServletException{ init(FilterConfig // Get init parameter String testParam = config.getInitParameter("test-param"); //Print the init parameter System.out.println("Test Param: " + testParam); } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws java.io.IOException, ServletException { // Get the IP address of client machine String ipAddress = request.getRemoteAddr(); // Log the IP address and current timestamp System.out.println("IP "+ ipAddress + ", Time " + new Date().toString()); // Pass request back down the filter chain chain.doFilter(request,response); } public void destroy( ){ /* Called before the Filter instance is removed web container*/ } } from service by the Biên dịch LogFilter.java theo cách thông thường đặt class file /webapps/ROOT/WEB-INF/classes http://vietjack.com/                                                                                                                              Trang  chia  sẻ  các  bài  học  online  miễn  phí  Page  1   http://vietjack.com/  servlets/index.jsp                                                                                                              Copyright  ©  vietjack.com     Ánh xạ Servlet Filter Web.xml Các Filter định nghĩa sau ánh xạ tới URL Servlet, theo cách giống Servlet định nghĩa sau ánh xạ tới URL pattern Tạo entry sau cho Filter web.xml file LogFilter LogFilter testparam Initialization Paramter LogFilter /* Filter áp dụng cho tất Servlet xác định /* cấu hình Bạn xác định Servlet path cụ thể bạn muốn áp dụng Filter số Servlet Sử dụng nhiều Filter Servlet Ứng dụng web bạn định nghĩa vài Filter cho mục đích Giả sử bạn định nghĩa hai Filter AuthenFilter LogFilter Phần lại tiến trình giống ví dụ trên, ngoại trừ việc bạn cần tạo ánh xạ khác đây: LogFilter LogFilter testparam Initialization Paramter AuthenFilter AuthenFilter testparam Initialization Paramter LogFilter /* AuthenFilter /* Thứ bậc Filter Bậc Filter web.xml định thứ tự mà Web container áp dụng Filter tới Servlet Để đảo ngược thứ tự Filter, bạn cần đảo ngược phần tử ánh xạ Filter web.xml Trong ví dụ trên, LogFilter áp dụng sau áp dụng AuthenFilter tới Servlet Nhưng ví dụ sau, thứ tự bị đảo ngược AuthenFilter /* LogFilter /* http://vietjack.com/                                                                                                                              Trang  chia  sẻ  các  bài  học  online  miễn  phí  Page  1   http://vietjack.com/  servlets/index.jsp                                                                                                              Copyright  ©  vietjack.com       http://vietjack.com/                                                                                                                              Trang  chia  sẻ  các  bài  học  online  miễn  phí  Page  1   ... Paramter < /filter> LogFilter /* < /filter- mapping> AuthenFilter< /filter- name> /*... Web.xml Các Filter định nghĩa sau ánh xạ tới URL Servlet, theo cách giống Servlet định nghĩa sau ánh xạ tới URL pattern Tạo entry sau cho Filter web.xml file LogFilter< /filter- name>... LogFilter /* < /filter- mapping> Filter áp dụng cho tất Servlet xác định /* cấu hình Bạn xác định Servlet path cụ thể bạn muốn áp dụng Filter số Servlet

Ngày đăng: 02/12/2017, 22:30

Tài liệu cùng người dùng

Tài liệu liên quan