使用filter使session失效的用户,重新跳转到登录页面


1.前台简单的登录测试页面login.jsp 
Java代码 
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
  2. <%  
  3. String path = request.getContextPath();  
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
  5. %>  
  6.   
  7. "-//W3C//DTD HTML 4.01 Transitional//EN">  
  8.   
  9.     
  10.     "<%=basePath%>">  
  11.       
  12.     My JSP <span style="line-height:18px;color:#0000FF;">'login.jsp'</span> starting page  
  13.       
  14.     "pragma" content="no-cache">  
  15.     "cache-control" content="no-cache">  
  16.     "expires" content="0">      
  17.     "keywords" content="keyword1,keyword2,keyword3">  
  18.     "description" content="This is my page">  
  19.       
  20.     "text/javascript">  
  21.        function submitForm(){  
  22.           document.getElementByIdx_x_x_x_x_x("form1").submit();   
  23.        }  
  24.       
  25.   
  26.     
  27.     
  28.     
  29.     This is Login page. 
      
  30.     "login" method="post" id="form1" name="form1">  
  31.        UserName:"text" id="userName" name="userName"/>"button" value="submit" οnclick="submitForm()" id="submit1" />  
  32.       
  33.     
  34.   


2.struts.xml的配置信息: 
Java代码 
  1. "1.0" encoding="UTF-8"?>  
  2.      "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"    
  3.     "http://struts.apache.org/dtds/struts-2.1.dtd">  
  4.   
  5.     <package name="default" extends="struts-default" namespace="/">  
  6.         "login" class="com.wl.action.test.LoginAction">  
  7.             "success">  
  8.                /success.jsp  
  9.               
  10.           
  11.     package>  
  12.   


3.LoginAction如下: 
Java代码 
  1. package com.wl.action.test;  
  2.   
  3. import java.util.Map;  
  4.   
  5. import com.opensymphony.xwork2.ActionContext;  
  6. import com.opensymphony.xwork2.ActionSupport;  
  7.   
  8. public class LoginAction extends ActionSupport {  
  9.   
  10.     String userName;  
  11.       
  12.     @Override  
  13.     public String execute() throws Exception {  
  14.           
  15.         ActionContext context=ActionContext.getContext();  
  16.         Map session=context.getSession();  
  17.         System.out.println("userName="+userName);  
  18.         session.put("userName", userName);  
  19.         return SUCCESS;  
  20.     }  
  21.   
  22.     public String getUserName() {  
  23.         return userName;  
  24.     }  
  25.   
  26.     public void setUserName(String userName) {  
  27.         this.userName = userName;  
  28.     }  
  29. }  


4.过滤器FilterTest如 下: 
Java代码 
  1. package com.wl.filter.test;  
  2.   
  3. import java.io.IOException;  
  4.   
  5. import javax.servlet.Filter;  
  6. import javax.servlet.FilterChain;  
  7. import javax.servlet.FilterConfig;  
  8. import javax.servlet.ServletException;  
  9. import javax.servlet.ServletRequest;  
  10. import javax.servlet.ServletResponse;  
  11. import javax.servlet.http.HttpServletRequest;  
  12. import javax.servlet.http.HttpServletResponse;  
  13. import javax.servlet.http.HttpSession;  
  14.   
  15. public class FilterTest implements Filter {  
  16.   
  17.     public void destroy() {  
  18.         // TODO Auto-generated method stub  
  19.   
  20.     }  
  21.   
  22.     public void doFilter(ServletRequest req, ServletResponse res,  
  23.             FilterChain chain) throws IOException, ServletException {  
  24.         // TODO Auto-generated method stub  
  25.   
  26.         HttpServletRequest httpReq=(HttpServletRequest)req;  
  27.         HttpServletResponse httpRes=(HttpServletResponse)res;  
  28.         HttpSession httpSession=httpReq.getSession();  
  29.         if(httpSession.getAttribute("userName")==null){  
  30.             httpRes.sendRedirect("../login.jsp");  
  31.         }else{  
  32.             chain.doFilter(req, res);  
  33.         }  
  34.     }  
  35.   
  36.     public void init(FilterConfig arg0) throws ServletException {  
  37.         // TODO Auto-generated method stub  
  38.   
  39.     }  
  40.   
  41. }  


5.配置Web.xml信息: 
添加信息: 
Java代码 
  1.   
  2.     
  3.      filterTest  
  4.      class>com.wl.filter.test.FilterTestclass>  
  5.     
  6.     
  7.      filterTest  
  8.      /filterJsp/*  
  9.     
  10.     
  11.     
  12.       1  
  13.     


6.成功跳转页面success.jsp如下: 
Java代码 
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
  2. <%@ taglib prefix="s" uri="/struts-tags" %>  
  3. <%  
  4. String path = request.getContextPath();  
  5. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
  6. %>  
  7.   
  8. "-//W3C//DTD HTML 4.01 Transitional//EN">  
  9.   
  10.     
  11.     "<%=basePath%>">  
  12.       
  13.     My JSP <span style="line-height:18px;color:#0000FF;">'success.jsp'</span> starting page  
  14.       
  15.     "pragma" content="no-cache">  
  16.     "cache-control" content="no-cache">  
  17.     "expires" content="0">      
  18.     "keywords" content="keyword1,keyword2,keyword3">  
  19.     "description" content="This is my page">  
  20.       
  21.   
  22.     
  23.     
  24.     
  25.     Success. 
      
  26.     "filterJsp/ExtremeCompomentTest_1.jsp">Forward to Filter URL  
  27.     
  28.   


7.配置了一个Session的监听器来监听Session是否失效 
Java代码 
  1. package com.wl.listener.test;  
  2.   
  3. import javax.servlet.http.HttpSessionEvent;  
  4. import javax.servlet.http.HttpSessionListener;  
  5.   
  6. public class HttpSessionListenerTest implements HttpSessionListener {  
  7.   
  8.     public void sessionCreated(HttpSessionEvent arg0) {  
  9.         // TODO Auto-generated method stub  
  10.   
  11.         System.out.println("SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS);  
  12.     }  
  13.   
  14.     public void sessionDestroyed(HttpSessionEvent arg0) {  
  15.         // TODO Auto-generated method stub  
  16.   
  17.         System.out.println("EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE");  
  18.     }  
  19.   
  20. }  


8.WebRoot的目录结构: 
----WebRoot 
       ------filterJsp 
                -----ExtremeCompomentTest_1.jsp 
       ------login.jsp 
       ------success.jsp 

9.结果: 
在IE中输入:http://localhost:8080/FileUpload/login.jsp如下显示 
使用filter使session失效的用户,重新跳转到登录页面(转)  
提交表单之后跳转的页面为: 

使用filter使session失效的用户,重新跳转到登录页面(转)  
等待1分钟之后,在Eclipse的控制台出现"EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE"信息时,即Session已经失效了,再点击上面的"Forward to Filter URL"链接,这时候过滤器filter就会起作用,验证Session失效后,跳转到登录界面。 

你可能感兴趣的:(javaEE)