2 c0ol jie c0ol_jie 于 2016.03.16 16:05 提问

java登录超时回到登录页面

java登录超时回到登录页面

有没有实现此功能的思想呢? 或者有demo 代码最好了 ,谢谢~

4个回答

u013772876
u013772876   2016.03.16 16:25

首先需要在web.xml中设置项目中session超时时间,通常都是半小时:

 <session-config><session-timeout>30</session-timeout></session-config>;

之后设置监听器(Linstener),用来监听登录时候的用户名和密码session是否还存活,如果不存活的话,直接跳转到登录页面。
1、不变地址栏:request.getRequestDispatcher("url").forward(request, response);
2、改变地址栏:response.sendRedirect("url");

c0ol_jie
c0ol_jie 监听器内的方法并没有传递 request response 参数
接近 2 年之前 回复
c0ol_jie
c0ol_jie 监听器内的方法并没有传递 request response 参数
接近 2 年之前 回复
f445239051
f445239051   2016.03.16 16:27

用SpringSecurity试试

boy_vansun
boy_vansun   2016.03.16 17:20

这个不适合用监听器来做的,应该用过滤器或者springmvc的拦截器。
在过滤器或者拦截器里配置哪些url需要用户登录,然后当session已经过期(查询不到用户信息)的情况下,用户再访问这些页面的话,就给他重定向到登录页面。当然ajax请求服务端是没法重定向的,这时候要给前端返回一个状态码,指示由前端js进行重定向

fubo1990
fubo1990   2016.03.17 15:57

servlet或Struts2或springMVC的项目,并且已经学习了Filter。
思路:
首先在你登录的代码中,登录成功以后把该用户放到session中,然后编写filter,该过滤器功能是验证是否登录或者登录失效。
接下来配置过滤的地址。所有配了的地址访问资源以前都会先进过滤器。只有通过过滤器验证才可以正常访问,否则调到登录页面。
filter的实现步骤。
1.定义一个类实现javax.servlet.Filter类。并且重写doFilter().该方法中就是你要进行编写的核心代码(验证登录的代码)。
2.配置filter.及在web.xml中
配置如下:

LoginFilter 解释:LoginFilter是你给过滤器起的名字
com.shcce.core.fiter.LoginFilter 解释:com.shcce.core.fiter.LoginFilter为你定义的过滤器类的全名


LoginFilter 解释LoginFilter该名字必须与上面你定义的过滤器名字一致。
/user/* 解释:您配置的拦截路径,这个路基的意思是user包下的所有路径。
例如:www.baidu.com/user/index.html 就会被过滤。

希望对你有用,如果还想有更多了解可以私信我413159383(qq)

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!