注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

老陈的博客

非淡泊无以明志,非宁静无以致远,说的是心态!

 
 
 

日志

 
 

判断Session是否过期(转)  

2009-12-29 15:23:24|  分类: 学习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

//   ====================   Program   Discription   =====================  
  //   程序名称:示例-   :   LoginFilter.java  
  //   程序目的:学习使用登录过滤器  
  //   ==============================================================  
  import   javax.servlet.FilterChain;  
  import   javax.servlet.ServletRequest;  
  import   javax.servlet.ServletResponse;  
  import   java.io.IOException;  
  import   javax.servlet.Filter;  
  import   javax.servlet.http.HttpServletRequest;  
  import   javax.servlet.http.HttpServletResponse;  
  import   javax.servlet.ServletException;  
  import   javax.servlet.FilterConfig;  
   
  public   class   LoginFilter   implements   Filter  
  {  
  String   LOGIN_PAGE="init.jsp";  
  protected   FilterConfig   filterConfig;  
     
  public   void   doFilter(final   ServletRequest   req,final   ServletResponse    
  res,FilterChain   chain)throws   IOException,ServletException  
  {  
    HttpServletRequest   hreq   =   (HttpServletRequest)req;  
                    HttpServletResponse   hres   =   (HttpServletResponse)res;  
                    String   isLog=(String)hreq.getSession().getAttribute("isLog");    
    if((isLog!=null)&&((isLog.equals("true"))||(isLog=="true")))//检查是否登录  
    {  
    chain.doFilter(req,res);  
    return   ;  
    }  
    else  
    hres.sendRedirect(LOGIN_PAGE);//如果没有登录,把视图派发到登录页面  
  }  
   
  public   void   destroy()  
  {  
  this.filterConfig=null;  
  }  
  public   void   init(FilterConfig   config)  
  {  
  this.filterConfig=config;  
  }  
  public   void   setFilterConfig(final   FilterConfig   filterConfig)  
  {  
  this.filterConfig=filterConfig;  
  }  
  }

<web-app>  
              <filter>  
          <filter-name>auth</filter-name>  
          <filter-class>test.LoginFilter</filter-class>  
          </filter>  
           
         
          <filter-mapping>  
          <filter-name>auth</filter-name>  
        <url-pattern>/*</url-pattern>  
        </filter-mapping>        
  </web-app>  
   
  web中的配置  

在每个网页加<%@   include   file="CommonFiles/checkIsCommUser.jsp"%>  
   
  在   checkIsCommUser.jsp文件中检查session  
  <%        
          StringBuffer   pstrSb   =   new   StringBuffer("<script   language='javascript'>\n");  
          pstrSb.append("parent.parent.location.href='地址';\n");  
          pstrSb.append("</script>\n");  
          if(session.getAttribute("SysUserID")==null)      
          {  
                  out.println(pstrSb);        
          }  
  %>

web.xml这样写:  
   
          <filter>  
                  <filter-name>FileCaptureFilter</filter-name>  
                  <filter-class>com.lyq.filter.FileCaptureFilter</filter-class>  
          </filter>  
          <filter-mapping>  
                  <filter-name>FileCaptureFilter</filter-name>  
                  <url-pattern>/*.jsp</url-pattern>这里是你要判断的页面  
          </filter-mapping>  
   
   
  FileCaptureFilter.java:  
  public   class   FileCaptureFilter   implements   Filter   {  
  ...  
  public   void   doFilter(ServletRequest   request,  
                                                    ServletResponse   response,  
                                                    FilterChain   chain)   throws   IOException,   ServletException   {  
  //...在这里判断登陆  
  }  
  }  

在每个网页中加入<%@   include   file="/invalidation.jsp"   %>  
  <%@   page   buffer="none"   %>  
  <%@   page   import="javax.servlet.*"   %>  
  <%@   page   import="javax.servlet.http.*"   %>  
  <%  
  String   info="",address="";  
  address="/invalidation.htm";  
  if   (session.getAttribute("Nickname")==null){  
  info="您访问过期,请重新登陆!";  
  RequestDispatcher   dispath   =   request.getRequestDispatcher(   address);  
  dispath.forward(request,   response);  
  }  
  %>这我的方案可实现该功能但<%@   page   buffer="none"   %>我觉得这样会慢;但不用这句有的网页就会出错,还有其他方案解决这个问题吗?  
  可以监听每个网页的请求吗?

【2006年11月20日 星期一 11:02】

  评论这张
 
阅读(60)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017