学习相关资料:
简单通俗易懂的理解,就是类似于杀毒软件对电脑系统的功能和作用。即程序中的防火墙。
过滤器运行原理:
若有多个过滤器,则按顺序进行执行,直到最后一个过滤器通过后,才可进行下一步的请求。
项目要求和功能:
1.编码过滤器,对乱码进行过滤
2.登录权限过滤器,只有用户登陆后,才可以访问相关页面
项目思路:
1.在Filter中将reques和response进行强制转换
2.将所需要过滤的东西(本体为编码格式,和验证用户登录)的相关代码放入Filter中
3.对Filter设置适用范围,排除不用过滤的界面
项目源码:
对编码格式的过滤:
package com.filter; import java.io.IOException; 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.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet Filter implementation class LoginFilter */ @WebFilter(filterName="CodeFilter",urlPatterns="/*")//设置适用的范围 public class CodeFilter implements Filter { /** * Default constructor. */ public CodeFilter() { // TODO Auto-generated constructor stub } /** * @see Filter#destroy() */ public void destroy() { // TODO Auto-generated method stub } /** * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain) */ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // TODO Auto-generated method stub HttpServletRequest req=(HttpServletRequest) request; HttpServletResponse res=(HttpServletResponse) response; //用户请求编码设置 request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("ytf-8"); response.setContentType("text/html;charset=utf-8"); System.out.println("进入编码过滤器......"); chain.doFilter(request, response); System.out.println("退出编码过滤器......"); } /** * @see Filter#init(FilterConfig) */ public void init(FilterConfig fConfig) throws ServletException { // TODO Auto-generated method stub } }