过滤器 filter

来源:互联网 发布:数学软件matlab下载 编辑:程序博客网 时间:2024/06/05 17:16
Servlet程序的主要分类? 
----标准Servlet(JSP)--MVC 
----过滤Servlet(过滤器) 
----监听Servlet(监听器) 

过滤器是什么? 
--过滤:安全,干净 
--过滤是一种后加入的功能 

过滤器在WEB中的主要功能 
1。过滤器是程序运行之后加入的 
2。功能: 
--任何网站都需要对用户是否登陆进行过滤(之前都是在每个JSP页面判断Session) 
--网上聊天系统,屏蔽非法文字 
--对请求内容进行统一编码 setCharacterEncoding("GB2312"); 
--非法字符验证 
--登陆验证 



下面是一个关于过滤器的模版页 
Java代码  收藏代码
  1. import java.io.IOException;  
  2.   
  3. import javax.servlet.Filter;  
  4. import javax.servlet.FilterChain;  
  5. import javax.servlet.FilterConfig;  
  6. import javax.servlet.ServletException;  
  7. import javax.servlet.ServletRequest;  
  8. import javax.servlet.ServletResponse;  
  9. import javax.servlet.http.HttpServletRequest;  
  10. import javax.servlet.http.HttpSession;  
  11.   
  12. public class PowerFilter implements Filter {  
  13.   
  14.     public void destroy() {  
  15.     }  
  16.   
  17.     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {  
  18.         // 相当于JSP页面中的 request  
  19.         HttpServletRequest req = (HttpServletRequest) request;  
  20.         // 相当于JSP页面中的 response  
  21.         HttpServletResponse res = (HttpServletResponse) response;  
  22.         // 相当于JSP页面的 session  
  23.         HttpSession session = req.getSession(true);  
  24.         // 相当于JSP页面的 out  
  25.         PrintWriter out = res.getWriter();    
  26.         // e.g. /HDPYWeb  
  27.         String webappPath = "";  
  28.         // e.g. http://localhost:80/HDPYWeb/  
  29.         String basePath = "";  
  30.         webappPath = req.getContextPath();  
  31.         basePath = req.getScheme() + "://" + req.getServerName() + ":" + req.getServerPort() + webappPath + "/";  
  32.         String currentPath = req.getServletPath();  
  33.         // 向下传递  
  34.         chain.doFilter(request, response);  
  35.         // 跳转  
  36.         res.sendRedirect(basePath + "login.jsp");  
  37.         // 保留请求的服务器端跳转  
  38.         request.getRequestDispatcher("/login.jsp").forward(request,response);  
  39.     }  
  40.   
  41.     public void init(FilterConfig arg0) throws ServletException {  
  42.     }  
  43. }  
  44. //web.xml中的配置  
  45. /* 
  46. <filter> 
  47.     <filter-name>encoding</filter-name> 
  48.     <filter-class>cn.mldn.lxh.filter.EncodingFilter</filter-class> 
  49. </filter> 
  50. <filter-mapping> 
  51.     <filter-name>encoding</filter-name> 
  52.     <url-pattern>/*</url-pattern> 
  53.     <url-pattern>/test/*</url-pattern> 
  54.     <url-pattern>/*.jsp</url-pattern> 
  55. </filter-mapping> 
  56. */  

0 0