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
Đầ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
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