Ví dụ sau cho thấy cách in địa chỉ IP của máy khách và ngày giờ hiện tại, mỗi lần nó truy cập vào bất kỳ tệp JSP nào. Ví dụ này sẽ cung cấp cho bạn hiểu biết cơ bản về Bộ lọc JSP, nhưng bạn có thể viết các ứng dụng bộ lọc phức tạp hơn bằng cách sử dụng cùng một 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 init(FilterConfig config) throws ServletException { // 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 from service by the web container*/ } }
Biên dịch LogFilter.java theo cách thông thường và đặt LogFilter.class của bạn tệp trong
Ánh xạ bộ lọc JSP trong Web.xml
Các bộ lọc được xác định và sau đó được ánh xạ tới một URL hoặc tên tệp JSP, giống như cách Servlet được xác định và sau đó được ánh xạ tới một mẫu URL trong web.xml tập tin. Tạo mục nhập sau cho thẻ bộ lọc trong tệp trình mô tả triển khai web.xml
<filter> <filter-name>LogFilter</filter-name> <filter-class>LogFilter</filter-class> <init-param> <param-name>test-param</param-name> <param-value>Initialization Paramter</param-value> </init-param> </filter> <filter-mapping> <filter-name>LogFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Bộ lọc ở trên sẽ áp dụng cho tất cả các servlet và JSP vì chúng tôi đã chỉ định / * trong cấu hình của chúng tôi. Bạn có thể chỉ định một servlet cụ thể hoặc đường dẫn JSP nếu bạn muốn áp dụng bộ lọc trên một vài servlet hoặc chỉ JSP.
Bây giờ hãy thử gọi bất kỳ servlet hoặc JSP nào và bạn sẽ thấy nhật ký được tạo trong nhật ký máy chủ web của mình. Bạn có thể sử dụng Trình ghi nhật ký Log4J để đăng nhập ở trên, hãy đăng nhập vào một tệp riêng biệt.