1. session如何在java代码中判断是否过期
系统框架使用的springmvc 。。。。
在controller层上做了拦截器,添加了自定义标签,使用了该标签则需要校验session是否过期,过期则跳转至登录页面,但是系统用到了shiro,请问在java代码中如何判断seesion已经过期
Subject currentUser = SecurityUtils.getSubject();
Session session = currentUser.getSession();
//过期,则跳转登录页面重新登录
if () { //就是这里不知道如何写!!!!!!!!!!!!!!!!!!!!!
dosomething;。。。。
}
shiro配置如下:
<!-- 会话DAO -->
<bean id="sessionDAO" class="org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO">
<property name="activeSessionsCacheName" value="shiro-activeSessionCache"/>
<property name="sessionIdGenerator" ref="sessionIdGenerator"/>
</bean>
<!-- 会话验证调度器 -->
<bean id="sessionValidationScheler" class="org.apache.shiro.session.mgt.quartz.">
<property name="sessionValidationInterval" value="1800000"/>
<property name="sessionManager" ref="sessionManager"/>
</bean>
<!-- 会话管理器 -->
<bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
<property name="globalSessionTimeout" value="1800000"/><!-- 回话有效时间30分钟 -->
<property name="deleteInvalidSessions" value="true"/>
<property name="" value="true"/>
<property name="sessionValidationScheler" ref="sessionValidationScheler"/>
<property name="sessionDAO" ref="sessionDAO"/>
<property name="sessionIdCookieEnabled" value="true"/>
<property name="sessionIdCookie" ref="sessionIdCookie"/>
</bean>
希望能帮到楼主, 谢谢
2. java开发 一般后台是怎么进行验证的 token cookie session
JWT只通过算法实现对Token合法性的验证,不依赖数据库,Memcached的等存储系统,因此可以做到跨服务器验证,只要密钥和算法相同,不同服务器程序生成的Token可以互相验证。
3. Java 服务器中,如何根据两个参数(用户名和密码)判断这个用户的session 是否存在即这个
直接再session里面取这个用户不就行了
没得表示没有登陆
有表示在登陆
4. java 将验证码存放在session是否安全,会不会被截取
session是在服务端的,所以不用担心会被截取。
为当前请求创建一个会话(session),将验证码按照你们的安全策略放到session中,例如,记录当前请求的IP地址,记录当前手机号码和发送验证码次数。每次请求时,获取当前会话中的信息,进行逻辑判断;
另外一种思路是将手机号码等信息放到redis缓存,或者你们DB中,这样就不会因为关闭浏览器(会话丢失)而导致之前记录的手机号等信息丢失
5. java web中生成的验证码为什么不放在session
java web中session是服务端机制,是占服务器的内存的,一个用户可能会提取多个验证码那上千个用户差点的服务器就高压了,一般都是一次传递,没必要用session这个贵重的东西,session是在万不得已的情况下存储一些重要的用户信息。
验证码只需要存放在客户端,每次重新验证即可。
6. java 如何实现同一账户登录验证
今天继续讨论?-0-#这个只需要session和application就好了,用户登录时,这样写:User
user
=
.login(userName,
password);//
数据库中判断用户名和密码if
(null
!=
user)
{//
表示用户存在
session.setAttribute("user",
user);//
把用户放进session中
application.setAttribute(userName,
session.getId());/*
把用户所在的sessionId放进application中,首先要明白一点,一个session对应一个浏览器,其次要注意一点,userName必须是唯一的*/}当用户访问到其他url的时候,可以在过滤器或你的拦截器中这样写:User
user
=
(User)
session.getAttribute("user");//
从session中取出用户if
(null
==
user)
{//
未登录或者登录已经过期
response.sendRedirect(request.getContextPath());//
跳转到首页或登录页面}String
sessionId
=
(String)
application.getAttribute(user.getUserName());if
(null
==
sessionId
||
!sessionId.equals(session.getId()))
{/*这说明用户已经在其他电脑或其它浏览器登录了,那么之前登录的session就无效了,自动被后面的登录给踢掉*/
response.sendRedirect(request.getContextPath());//
跳转到首页或登录页面}chain.doFilter(request,
response);//
通过验证,放行用户进入目标url这种方式是我的一个前辈想到的,我们公司的所有项目都采纳了这种方式,确保一个账号只能在一个浏览器中使用
7. java jsp页面如何接收保存在类中session的验证码
1、在图形验证码程序的生成过程中(一般中servlet中生成),使用session.setAttribute("code",yourCode);
2、在jsp页面接收是用session.getAttribute("code")即可
希望能够帮到你,
如若你有不清楚的,欢迎探讨。
淘宝会员:宜人家园
8. java的session和request
最典型的区别是,request传送到下一个页面之后,里面的属性就没掉了不能再传递到下一个页面 ,做叶面的数据显示用
而session会把这个attribute,hold住一段时间 然后时间到了以后释放 ,可以用来验证用户登录,购物车等
下面定义的是request有效
<action name="ConcenjudgeActionForm"
type="com.qh.rmms.web.struts.action.concenpara.EditGDAction"
input="/docmanager/modifyGDMuster.jsp" scope="request"
path="/EditGD-t4" validate="false">
<forward name="go" path="/docmanager/modifyGDMuster.jsp" />
</action>
9. 我是Java小白 我用web写了一个登录的网页,请问怎么在web里用session来验证有没有登陆
后台判断登陆成功后,获得Httprequest request,然后再用request.getSession.setAttribute("name",name);前一个“name”就是key,后一个name就是登陆人的用户名value,在前段通过${name}的值判断是否为空来校验是否登陆,如果为空或为null说明没有登陆,如果不是说明登陆了
有不明白的可以追问
10. JSP中怎样用session保存并验证用户登录信息
1、实现session中是键值对的方法代码。
注意事项:
JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。