Struts2--针对session使用过滤器

来源:互联网 发布:java英语面试题 编辑:程序博客网 时间:2024/04/30 00:55
这周带新人在我们系统登录页面做一个单表增删改查功能(如注册),在做的过程中发现跳转的时候存在问题,每次点击新增的按钮后,没有跳转到自己需要的页面,而是跳转到我们系统的登录页面,经过一段时间的琢磨了解到原来是过滤器搞的鬼。
web.xml配置如下:
Java代码  收藏代码
  1. <filter>  
  2.         <filter-name>SESSION FILTER</filter-name>  
  3.         <filter-class>com.sinosoft.common.filter.SessionFilter</filter-class>  
  4.     </filter>  

在这个Fileter类中doFilter方法校验如果session中没有usercode(用户名)在跳转的时候页面都跳转到登录页面。
Java代码  收藏代码
  1. public class SessionFilter implements Filter {  
  2.   
  3.     public void init(FilterConfig filterconfig) throws ServletException {  
  4.     }  
  5.   
  6.     public void destroy() {  
  7.     }  
  8.     public void doFilter(ServletRequest request, ServletResponse response,  
  9.                 FilterChain chain) throws IOException, ServletException {  
  10.             HttpServletRequest httprequest = (HttpServletRequest)request;  
  11.             String   request_uri   =   httprequest.getRequestURI();  
  12.             // 对SESSION是否有效进行校验  
  13.             boolean flag = checkSession((HttpServletRequest) request, (HttpServletResponse) response);  
  14.             if (flag)  
  15.                     IndivCheck.indivCheck((HttpServletRequest) request);  
  16.                     chain.doFilter(request, response);  
  17.             }  
  18.     }  
  19.       
  20.     private boolean checkSession(HttpServletRequest request,  
  21.                 HttpServletResponse response) {  
  22.         // 如果Session失效,返回null;  
  23.         HttpSession session = request.getSession(false);  
  24.         String URI = request.getRequestURI();  
  25.           
  26.         if ((null != request.getParameter("userCode")  
  27.                 && null != request.getParameter("password"))) {  
  28.             return true;  
  29.         } else {  
  30.             try {  
  31.                 String userCode = (String) session.getAttribute(CASFilter.CAS_FILTER_USER);  
  32.                 UserMsgResInfo userMsgResInfo = null;  
  33.                 UserInfo userInfo = null;  
  34.                 String ssoRequester = request.getParameter("ssoRequester");  
  35.                 userInfo = (UserInfo) session.getAttribute("userInfo");  
  36.                   
  37.                 // 获取页面中的用户,如果为空 返回登录页面  
  38.                 if (null == userInfo) {  
  39.                     response.sendRedirect("/prpins");  
  40.                     return false;  
  41.                 }  
  42.             } catch (Exception e) {  
  43.                 System.out.println("登录超时,请重新登录");  
  44.                 try {  
  45.                     response.sendRedirect("/prpins");  
  46.                 } catch (IOException e1) {  
  47.                     // TODO Auto-generated catch block  
  48.                     e1.printStackTrace();  
  49.                 }  
  50.                 e.printStackTrace();  
  51.                         return false;  
  52.                 }  
  53.                     return true;  
  54.             }  
  55.     }  




转载自:http://gpqhl0071.iteye.com/blog/1626013

0 0
原创粉丝点击