关于java session 设置

关于java session 设置,第1张

看到这个问题就能想到你应该还没了解session的生命周期,session在一个会话创建时出现,

并生成唯一标识符sessionid,在一个会话关闭时session销毁。也就是说你在关闭浏览器时,存在于浏览器上的sessionid 消失了,但是服务器中存放的sessionid并没有立马销毁。

当你使用用户名跟密码登录成功的时候,把用户名跟密码放在范围内可以是requestsetAttribute("username",username);也可以是sessionsetAttribute("username",username);然后在jsp页面可以用EL表达式拿也可以直接用java代码拿${sessionScopeusername},<%=sessiongetAttribute("username")%>

只有在页面调用的servlet或者action中获取request对象。通过requestgetSession()getAttribute()获取。 再调用xxxxDao的时候作为参数传递。

session对象用于在会话范围内,记录每个客户端的访问状态,以便于跟踪每个客户端的 *** 作状态。在会话中存储的信息,在浏览器发出后续请求时可以获取这些会话的有效数据。

在jsp页面中可以直接使用session对象,也可以通过pageContextgetSession()或requestgetSession()方法重新获取session对象。

session对象可以保存用户的登录信息,实现购物车功能等。

>

从客户打开浏览器连接到服务器,到客户关闭浏览器离开这个服务器,称做一个会话。当客户访问服务器是,可能会反复连接这个服务器上的几个页面、反复刷新一个页面或不断地向一个页面提交信息等,服务器应当通过某种方法知道这是同一个客户,这时就需要session对象。

Jquery Json调用在日常工作中非常好用,只需要Json数据就可以了。

session的工作原理如下:

1客户首次访问服务器的一个页面时,服务器就会为该客户分配一个session对象,同时为该session对象指定一个唯一的ID,并且将该ID号发送到客户端并写入到cookie中,使得客户端与服务器端的session建立一一对应关系。

2当客户继续访问服务器上的其他资源时,服务器不再为该客户分配新的session对象,直到客户端浏览器关闭、超时或调用session的invalidate()方法使其失效,客户端与服务器的会话结束。

3当客户重新打开浏览器访问网站时,服务器会重新为客户分配一个session对象,并重新分配sessionID。

session对象主要用于属性 *** 作和会话管理,常用方法如下:

1public void setAttribute(Sting

name, Object

value),设定指定名字的属性的值,并将它添加到session会话范围内,如果这个属性是会话范围内存在,则更改该属性的值。

2public Object getAttribute(String

name),在会话范围内获取指定名字的属性的值,返回值类型为object,如果该属性不存在,则返回null。

3public void removeAttribute(String

name),删除指定名字的session属性,若该属性不存在,则出现异常。

4public void

invalidate(),使session失效。可以立即使当前会话失效,原来会话中存储的所有对象都不能再被访问。

5public String getId(

),获取当前的会话ID。每个会话在服务器端都存在一个唯一的标示sessionID,session对象发送到浏览器的唯一数据就是sessionID,它一般存储在cookie中。

6public void setMaxInactiveInterval(int interval),设置会话的最大持续时间,单位是秒,负数表明会话永不失效。

7public int getMaxInActiveInterval(),获取会话的最大持续时间。

8使用session对象的getCreationTime()和getLastAccessedTime()方法可以获取会话创建的时间和最后访问的时间,但其返回值是毫秒,一般需要使用下面的转换来获取具体日期和时间。

    

Date creationTime = new

Date(sessiongetCreationTime());

    Date accessedTime = new

Date(sessiongetLastAccessedTime());

<%@ page language="java" import="javautil" contentType="text/html;charset=GBK"%>

<%

String

path = requestgetContextPath();

String basePath =

requestgetScheme()+"://"+requestgetServerName()+":"+requestgetServerPort()+path+"/";

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 401

Transitional//EN">

<html>

 

<head>

    <base

href="<%=basePath%>">

   

   

<title>session对象方法</title>

   

 <meta

>

</head>

 

  <body>

   

<b>

    会话ID:<%=sessiongetId() %>

<br>

    是否新会话:<%=sessionisNew()

%><br>

    设置和获取属性对象:用户名 =

   

<%sessionsetAttribute("用户名","陈宁");

%>

    <%=sessiongetAttribute("用户名")

%><br>

    <%

    Date creationTime = new

Date(sessiongetCreationTime());

    Date accessedTime = new

Date(sessiongetLastAccessedTime());

    

%>

     会话创建时间:<%=creationTime

%><br>

     上次访问时间:<%=accessedTime

%><br>

     会话持续时间(s):<%=sessiongetMaxInactiveInterval()

%><br>

     <%sessionsetMaxInactiveInterval(12);

%>

    

修改后的会话持续时间(s):<%=sessiongetMaxInactiveInterval()

%><br>

     <%sessioninvalidate();

%>

     </b>

 

</body>

</html>

Jquery Json调用在日常工作中非常好用,只需要Json数据就可以。

第一种方式: 自己存储用户登录信息, 不要存储在session中。(用一个全局Map存储,或者Memcache)。

第二种方式:直接存储和维护session对象。(用一个全局Map存储,或者Memcache)

放弃这个方案吧,很多种情况下,都不能得到这个关闭信息的

但你的目标还是大致可以实现的,

可以通过 浏览器的关闭触发函数提交一个请求给服务器(不保险),

通过Session的有效期来控制状态也会存在服务异常终止时,不会触发session的销毁函数问题(较保险)

另外,再弄一个定时任务,来修正那些状态不正确的用户

第一步:登录,将用户对象或者id存放在session,你那个放的是loginid,那就loginid咯。

第二步:点击<a href="FindExamineeByIDActionexamineeid=${sessionloginid }">,跳转到一个action,这个action不干什么,就取得loginid,然后获取loginid所属对象,然后放在值栈,假设用户对象为User,那么就ActionContextgetContext()getValueStack()push(User);然后return到修改页面

举个例子,我现在已经点击了带有loginid参数的<a>标签,然后到一个UserAction中的GoToUpdatePage()方法中去,方法里面的代码为

User user = thisuserServicegetEntryById(loginid);//此处表示根据loginid获取对象,loginid怎么从前台传过来的你应该知道吧,如果不知道那建议你重新看一下struts2的教程。

ActionContextgetContext()getValueStack()push(user);

return updateUI;//updateUI的结果集值是跳转到修改页面的jsp。

在修改页面的jsp中,你应该知道怎么取值把,直接去$(name),$(age),等等,都是Use的属性,直接写就行了。

你可以采用传参数,将登陆后的sessionid放到session中 请问你是用struts2做的么如果是你可以参考这个代码<action name="login" class="loginAction"> <result type="redirectAction"> <param name="actionName">Home</param> <param name="ower">${#sessionusersessionId}</param> </result> <result name="input">/loginjsp</result> </action> jsp传参数 利用sessionsetAttribute("attributeName",attribute)或者requestsetAttribute("attributeName",attribute) 示例:User user=new User("shilei"); sessionsetAttribute("userName",user);

以上就是关于关于java session 设置全部的内容,包括:关于java session 设置、Java怎样获取当前登录用户的用户名,密码。。、在jsp页面中session.getattribute()方法来取得保存在session中的值,在xxxxDao.java中如何也能够获取到同等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10158854.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存