Thứ Tư, 18 tháng 6, 2014

Filter

Filter là một bổ xung mới cho Servlet 2.3, cho phép bạn chắn 1 request trước khi nó tới các tài nguyên. Nói cách khác, filter cho bạn quyền truy cập đến các HttpServletRequest và HttpServletResponse trước khi chúng được chuyển đến 1 servlet.

Filter có thể rất đắc dụng. Ví dụ, bạn có thể viết 1 filter để lưu tất cả các request được gửi đến và log địa chỉ IP của các máy gửi request. Bạn cũng có thể sử dụng filter như một phương tiện để mã hóa và giải mã. Cũng có thể dùng để xác thực user, nén dữ liệu, xác thực dữ liệu..vv...

Khi viết 1 filter, về cơ bản bạn sẽ làm việc với 3 interface trong package javax.servlet:
1)    Filter
2)    FilterConfig
3)    Filter Chain

Filter interface

Vòng đời (life circle của 1 filter gồm 3 method):
1)    public void init(FilterConfig filterConfig)
2)    public void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
3)    public void destroy()

FilterConfig interface

Bao gồm các phương thức:
1)    getFilterName: Trả về tên của filter
2)    getInitParameter(String): trả về giá trị của param tương ứng của para-name
3)    getInitParameterNames(): trả về tập giá trị của tên tham số khởi tạo của filter. Dữ liệu trả về là Enumeration của String.
4)    getServletContext(): trả về tham chiếu tới ServletContext của filter.

FilterChain interface

Có thể sử dụng nhiều hơn 1 filter. VD: 2 filter Filter và Filter1 áp dụng cho cùng 1 servlet FilteredServlet.


Demo(Tiếp nối bài assignment)
     Đầu tiên, ta sẽ thử gõ link :http: //localhost:8080/Assignment/home.jsp . Ta thấy mặc dù chưa đăng nhập nhưng vẫn vào đc trang home.jsp


    Hướng dẫn các bạn sử dụng filter để khắc phục lỗi trên

   Bước 1: Tạo 1 file filter trong packages wpsj.filter

                  







                  Ấn next, chọn ô add information...,nhap Url
  


Code sinh ra tai Web.xml



        


Bước 2:  code cho trang HomeFilter.java vừa tạo.
    
        


Kết quả :

       Chạy trang Home.jsp
 
 :
    Trang Home.java đã không chạy được và chuyển lại trang Login,dù trên link đường đẫn vẫn tới trang home,jsp



Source code:

Không có nhận xét nào:

Đăng nhận xét