Bản đồ lọcping trong Web.xml
⚡ Tóm tắt thông minh
Bản đồ lọcping Tệp Web.xml định nghĩa cách các bộ lọc JSP chặn các yêu cầu của máy khách và phản hồi của máy chủ. Java Ứng dụng web. Nó đăng ký từng bộ lọc trong mô tả triển khai, cho phép xác thực, ghi nhật ký, nén và mã hóa trước khi truy cập tài nguyên.
Bộ lọc JSP là gì?
- Các bộ lọc trong web.xml được sử dụng cho chức năng lọc của Java ứng dụng web.
- Chúng chặn các yêu cầu từ phía máy khách trước khi chúng cố gắng truy cập tài nguyên.
- Họ thao tác các phản hồi từ máy chủ và gửi đến máy khách.
Các bộ lọc được xác định trong web.xml và chúng là bản đồ tới servlet hoặc JSP. Khi bộ chứa JSP khởi động với ứng dụng web, nó sẽ tạo phiên bản của từng bộ lọc trong web.xml đã được khai báo trong bộ mô tả triển khai.
Các loại bộ lọc trong JSP
JSP hỗ trợ một số loại bộ lọc, mỗi loại xử lý một vấn đề cụ thể trong chu trình yêu cầu-phản hồi:
- Bộ lọc xác thực
- Bộ lọc nén dữ liệu
- Bộ lọc mã hóa
- Bộ lọc chuỗi MIME
- Bộ lọc ghi nhật ký
- Bộ lọc mã thông báo
Các phương pháp lọc JSP
Khi đã hiểu rõ các loại bộ lọc, việc nắm được các phương thức kiểm soát vòng đời của bộ lọc sẽ rất hữu ích. Sau đây là các phương thức lọc:
Công khai void doFilter(ServletRequest, ServletResponse, FilterChain)
Điều này được gọi mỗi khi một yêu cầu/phản hồi được truyền từ mọi máy khách khi nó được yêu cầu từ một tài nguyên.
Công khai void init(FilterConfig)
Điều này nhằm mục đích cho biết bộ lọc trong JSP đã được đưa vào sử dụng.
Phá hủy khoảng trống công khai ()
Điều này để cho biết bộ lọc đã được đưa ra khỏi dịch vụ.
Ví dụ
Trong ví dụ này, chúng tôi đã tạo bộ lọc và ánh xạ vào Java Bộ lọc web.xml.
Gurufilter.java
package demotest; import java.io.IOException; import java.util.Date; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; public class GuruFilter implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // TODO Auto-generated method stub HttpServletRequest req = (HttpServletRequest) request; String ipAddress = req.getRemoteAddr(); System.out.println("IP Address "+ipAddress + ", Time is" + new Date().toString()); // pass the request along the filter chain chain.doFilter(request, response); } /** * @see Filter#init(FilterConfig) */ public void init(FilterConfig fConfig) throws ServletException { String guruparam = fConfig.getInitParameter("guru-param"); //Print the init parameter System.out.println("Test Param: " + guruparam); } }
Web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name> test</display-name> <filter> <description> </description> <display-name> GuruFilter</display-name> <filter-name>GuruFilter</filter-name> <filter-class>demotest.GuruFilter</filter-class> <init-param> <param-name>guru-param</param-name> <param-value>This is guru paramter</param-value> </init-param> </filter> <filter-mapping> <filter-name>GuruFilter</filter-name> <url-pattern>/GuruFilter</url-pattern> </filter-mapping>
Giải thích mã
Gurufilter.java
Code Dòng 17-32: Ở đây, chúng ta sử dụng phương thức “doFilter”, phương thức này lấy đối tượng yêu cầu (trong ví dụ của chúng ta, đối tượng yêu cầu là req (đối tượng HttpServletRequest)) và lấy địa chỉ từ xa của máy khách, sau đó in ra console cùng với ngày giờ.
Code Dòng 33-37: Ở đây, chúng ta sử dụng phương thức `init`, trong đó chúng ta nhận tham số `init` và in tham số `init` ra console.
Web.xml
Code Dòng 10-11: Bản đồ lọcping trong web.xml cho GuruLọc theo tên lớp GuruFilter.java, trong đó chúng ta có filter-name là GuruBộ lọc và lớp bộ lọc là đường dẫn thư mục của GuruLớp lọc.
Code Dòng 13-15: Bản đồping Tham số khởi tạo có tên là guru-param và giá trị của nó được đặt dưới thẻ filter, vì vậy tham số khởi tạo này đã được định nghĩa cho gurufilter.
Đầu ra:
Khi bạn thực thi đoạn mã trên, bạn sẽ nhận được kết quả sau:
- Đầu ra là Test Param từ tham số init
- Và tìm nạp địa chỉ IP, ngày giờ của nó.


