实例:encodingfilter 编码过滤器 secuityfilter 安全过滤器
一、EncodingFilter 编码过滤器
- 建立EncodingFilter类,此类继承Filter(java.Servlet.* ) 见右图:
-
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { //设置字符为utf-8 arg0.setCharacterEncoding("utf-8"); arg1.setCharacterEncoding("utf-8"); //后续流放行 arg2.doFilter(arg0, arg1); System.out.println("过滤器过滤"); }
web.xml配置文件 - Add Filter【namg:encodingfilter + 类】Add Filter Mapping【encodingfilter】
-
运行,编码过滤实现
二、SecurityFilter 登录过滤器(防止非法登入)
- 建立SecurityFilter类,此类继承Filter(java.Servlet.* )
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain chain) throws IOException, ServletException { //启动过滤器 //设置类型为HttpServletRequest HttpServletResponse HttpServletRequest request= (HttpServletRequest) arg0; HttpServletResponse response = (HttpServletResponse) arg1; //如果后台登录成功传入"login"参数为ok if("ok".equals(request.getSession().getAttribute("login"))) { //登录放行 chain.doFilter(arg0, arg1); } else { //失败放行 request.getRequestDispatcher("../failed.jsp").forward(request, response); } }
-
按照上步骤,成功实现登录拦截