如何让JSP网页在session失效时跳转到首页?

 我来答
jiaozi95
2015-09-06 · TA获得超过1685个赞
知道小有建树答主
回答量:1648
采纳率:100%
帮助的人:419万
展开全部

使用过滤器过滤请求,如果已经登录,则通过,没有登录或者超时则跳转到首页或者登录页面。

    1,首先要写一个登录过滤器,public class SessionFilter implements Filter。一定要实现Filter,在doFilter方法中写出判断Session的代码。

    2,配置web.xml。       

<filter>
        <filter-name>SessionFilter</filter-name>
        <filter-class>com.test.filter.SessionFilter</filter-class>
</filter>

    3,但是光有这些还是不够,这样它会拦截你所有的请求,包括你的登录请求,你在发起登录请求的时候就被拦截验证,是否已经登录,发现没有登录,然后给返回到首页了。所有要给过滤器设置“白名单”,哪些请求直接通过,不用过滤。

<init-param>
      <param-name>noFilterURI</param-name>
      <param-value>
          /login.do
          /index.jsp
      </param-value>
</init-param>

    4,在SessionFilter类中获取“白名单”,可以通过public void init(FilterConfig filterConfig)方法获取      

public void init(FilterConfig filterConfig)
        throws ServletException
    {
        this.filterConfig = filterConfig;
        noFilterURI = filterConfig.getInitParameter("noFilterURI");
    }

在doFilter方法中得到“白名单”,设置不用过滤,直接通过。


代码:

public class SessionFilter implements Filter{
    private FilterConfig filterConfig;
    private String noFilterURI;
    public SessionFilter() {
        filterConfig = null;
        noFilterURI = null;
    }
      public void init(FilterConfig filterConfig) throws ServletException{
        this.filterConfig = filterConfig;
        noFilterURI = filterConfig.getInitParameter("noFilterURI");
    }
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
        throws IOException, ServletException{
        // do something
        }
        public void destroy()
    {
        filterConfig = null;
    }
}
<filter>
        <filter-name>SessionFilter</filter-name>
        <filter-class>com.test.filter.SessionFilter</filter-class>
        <init-param>
          <param-name>noFilterURI</param-name>
          <param-value>
              /login.do
              /index.jsp
          </param-value>
        </init-param>
</filter>
zhongtyler
2015-08-12 · TA获得超过4408个赞
知道大有可为答主
回答量:4384
采纳率:79%
帮助的人:937万
展开全部
一般判断session失效,会采用的方式是filter。通过编写filter,在发现session失效后抛出指定异常。
另外在web.xml画面中,指定该异常跳转到首页画面即可。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tea_288
2011-05-15 · 超过35用户采纳过TA的回答
知道答主
回答量:142
采纳率:0%
帮助的人:87.2万
展开全部
首先做个if判断,如果session值可用,做相应的操作,否则跳转,跳转语句: response.sendRedirect("/index.jsp");
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小雨滴281
2015-08-28 · TA获得超过1660个赞
知道小有建树答主
回答量:1163
采纳率:81%
帮助的人:212万
展开全部
这可以在session存放一个值,如果这个值消失了,就转向首页就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做局King
2011-05-15 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:190
采纳率:0%
帮助的人:110万
展开全部
session中存一个值。如果得到的值为空的话就重定向到首页
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式