过滤器的使用:
1. 过滤非法文字
package demo.filter ;
import java.io.* ; import javax.servlet.* ; import javax.servlet.http.* ;
public class CharFilter implements Filter { public void init(FilterConfig filterConfig)throws ServletException { System.out.println("**Filter初始化……") ; } public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws java.io.IOException,ServletException { request.setCharacterEncoding("gbk") ; String name = request.getParameter("name") ; if(name!=null){ if(name.indexOf("猪猪")==-1){ chain.doFilter(request,response) ; }else{ System.out.println("非法字符!") ; } }else{ System.out.println("feikong") ; chain.doFilter(request,response) ; } } public void destroy(){} }
|
2. 对内容进行统一编码
package demo.filter ;
import java.io.* ; import javax.servlet.* ; import javax.servlet.http.* ;
public class EncodingFilter implements Filter { public void init(FilterConfig filterConfig)throws ServletException {} public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws java.io.IOException,ServletException { try { request.setCharacterEncoding("gb2312") ; } catch (Exception e) {} chain.doFilter(request,response) ; } public void destroy() {} }
|
3. 登录验证
package demo.filter ;
import java.io.* ; import javax.servlet.* ; import javax.servlet.http.* ;
public class SessionFilter implements Filter { public void init(FilterConfig filterConfig)throws ServletException {} public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws java.io.IOException,ServletException { HttpServletRequest req = (HttpServletRequest)request ; HttpServletResponse res = (HttpServletResponse)response ; HttpSession session = req.getSession() ; System.out.println(session.getAttribute("name")) ; if (session.getAttribute("name")!=null) { //System.out.println("已登录……") ; chain.doFilter(request,response) ; }else{ //System.out.println("未登录……") ; request.getRequestDispatcher("login.jsp").forward(request,response) ; } } public void destroy() {} } |