2012-04-17 24 views
5

Đối với ứng dụng web Java EE, Tôi có trình lắng nghe triển khai ServletRequestListener và Bộ lọc.đơn đặt hàng hoặc bộ lọc web.xml và trình nghe

Có cách nào để chỉ định tại web.xml rằng bộ lọc nên được gọi trước người nghe không?

Tôi đã thử khai báo bộ lọc và ánh xạ của bộ lọc trước người nghe, nhưng người nghe vẫn được thực hiện trước đó.

Bất kỳ ý tưởng nào?

<filter> 
    <filter-name>myfilter</filter-name> 
    <filter-class>com.example.MyFilter</filter-class> 
    </filter> 
    <filter-mapping> 
    <filter-name>myfilter</filter-name> 
    <url-pattern>/*</url-pattern> 
    </filter-mapping> 
    <listener> 
    <listener-class>com.example.MyServletRequestListener </listener-class> 
    </listener> 

Trả lời

5

Các ServletRequestListener.requestInitialized() sẽ được khởi tạo trước khi bất kỳ bộ lọc được gọi và ServletRequestListener.requestDestroyed() sau khi tất cả bộ lọc và dịch vụ Phương pháp lợi nhuận.

+1

vì vậy, không thể có bộ lọc.doFilter() được thực thi trước một listener.requestInitialized()? tôi đang đọc speclet servlet 2.5, nhưng tôi không tìm thấy thông tin này. http://download.oracle.com/otn-pub/jcp/servlet-2.5-mrel2-eval-oth-JSpec/servlet-2_5-mrel2-spec.pdf giải thích điều này ở đâu? –

12

Khi Browser (khách hàng) yêu cầu đến Server, container loại tương tự (Tomcat) tạo ra các yêu cầu đối tượng cho các yêu cầu của khách hàng HttpServletRequest và đáp ứng đối tượng HttpServletResponse và nếu bạn cấu hình bất kỳ người nghe mà thực hiện "ServletRequestListener" sau đó "public void requestInitialized (ServletRequestEvent sre)" phương pháp sẽ gọi

Sau khi tạo ra các yêu cầu và đáp ứng Object bằng container nếu có bất kỳ người nghe cho yêu cầu sau đó Listener sẽ thực hiện đầu tiên .....

Sau đó HttpServletRequest và HttpServletResponse được gán cho Fillter, nếu bạn đã cấu hình Fillter ....

Phương tiện nghe có trong ảnh đầu tiên cho ServletRequest. Vì vậy, không có cách nào để cấu hình để thực hiện Fillter thực thi trước Trình lắng nghe trong trường hợp ServletRequest ....

Các vấn đề liên quan