filter权限

  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.HttpServletResponse;   
  11. import javax.servlet.http.HttpSession;   
  12.   
  13.   
  14. /**  
  15.  * 设置字符集、过滤未登录的非法请求  
  16.  */  
  17. public class UserLoginFilter implements Filter {   
  18.     protected String encoding = null;   
  19.   
  20.     protected FilterConfig filterConfig = null;   
  21.   
  22.     protected boolean ignore = false;   
  23.   
  24.     protected String forwardPath = null;   
  25.   
  26.     public void destroy() {   
  27.         this.encoding = null;   
  28.         this.filterConfig = null;   
  29.     }   
  30.   
  31.     public void doFilter(ServletRequest request, ServletResponse response,   
  32.             FilterChain chain) throws IOException, ServletException {   
  33.   
  34.         // 设置编码方式,web.xml里面有filter参数的初始化设置   
  35.         if (ignore || (request.getCharacterEncoding() == null)) {   
  36.             String encoding = selectEncoding(request);   
  37.             if (encoding != null)   
  38.                 request.setCharacterEncoding(encoding);   
  39.         }   
  40.         HttpServletRequest httpServletRequest = (HttpServletRequest) request;   
  41.         HttpServletResponse httpServletResponse = (HttpServletResponse) response;   
  42.         String requesturi = httpServletRequest.getRequestURI();   
  43.         // 通过检查session中的变量,过虑请求,最好把username提取出来当常量   
  44.         HttpSession session = httpServletRequest.getSession();   
  45.         Object currentUser = session.getAttribute("username");   
  46.         // 当前会话用户为空而且不是请求登录,退出登录,欢迎页面和根目录则退回到应用的根目录   
  47.         if (currentUser == null  
  48.                 && !requesturi.endsWith("/login.action")   
  49.                 && !requesturi.endsWith("/logout.action")   
  50.                 && !requesturi.endsWith("/index.jsp")   
  51.                 && !requesturi.endsWith(httpServletRequest.getContextPath()   
  52.                         + "/")) {   
  53.             httpServletResponse.sendRedirect(httpServletRequest   
  54.                     .getContextPath()   
  55.                     + "/");   
  56.             return;   
  57.         }   
  58.         chain.doFilter(request, response);   
  59.     }   
  60.   
  61.     public void init(FilterConfig filterConfig) throws ServletException {   
  62.         this.filterConfig = filterConfig;   
  63.         this.encoding = filterConfig.getInitParameter("encoding");   
  64.         this.forwardPath = filterConfig.getInitParameter("forwardpath");   
  65.         String value = filterConfig.getInitParameter("ignore");   
  66.         if (value == null)   
  67.             this.ignore = true;   
  68.         else if (value.equalsIgnoreCase("true"))   
  69.             this.ignore = true;   
  70.         else if (value.equalsIgnoreCase("yes"))   
  71.             this.ignore = true;   
  72.         else  
  73.             this.ignore = false;   
  74.     }   
  75.   
  76.     protected String selectEncoding(ServletRequest request) {   
  77.         return (this.encoding);   
  78.     }   
  79. }  
  80.    
  81. web.xml中的设置
  82.    <filter>   
  83.     <filter-name>Login Filter</filter-name>   
  84.     <filter-class>   
  85.         你的包名(自己改一下).UserLoginFilter   
  86.     </filter-class>   
  87.     <init-param>   
  88.         <param-name>encoding</param-name>   
  89.         <param-value>GBK</param-value>   
  90.     </init-param>   
  91.     <init-param>   
  92.         <param-name>ignore</param-name>   
  93.         <param-value>false</param-value>   
  94.     </init-param>   
  95.     <init-param>   
  96.         <param-name>forwardpath</param-name>   
  97.         <param-value>index.jsp</param-value>   
  98.     </init-param>   
  99. </filter>   
  100. <filter-mapping>   
  101. <filter-name>Login Filter</filter-name>   
  102.     <url-pattern>/*</url-pattern>   
  103. </filter-mapping>  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值