
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数据就可以。
你可以采用传参数,将登陆后的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);
放弃这个方案吧,很多种情况下,都不能得到这个关闭信息的
但你的目标还是大致可以实现的,
可以通过 浏览器的关闭触发函数提交一个请求给服务器(不保险),
通过Session的有效期来控制状态也会存在服务异常终止时,不会触发session的销毁函数问题(较保险)
另外,再弄一个定时任务,来修正那些状态不正确的用户
第一种方式: 自己存储用户登录信息, 不要存储在session中。(用一个全局Map存储,或者Memcache)。
第二种方式:直接存储和维护session对象。(用一个全局Map存储,或者Memcache)
只能根据用户请求带过来的sessionID所匹配的ip地址 而且只可以通过request获得ip 反正你能得到session 那得到request是一样简单的不是吗
得到request后命令为:
String ip = requestgetRemoteAddr();
这个ip字符串就是了
app登录服务器Session的保持实现方式:
1 ) 使用Cookie来实现
服务器给每个Session分配一个唯一的JSESSIONID,并通过Cookie发送给客户端。
当客户端发起新的请求的时候,将在Cookie头中携带这个JSESSIONID。这样服务器能够找到这个客户端对应的Session。
2 )使用URL回显来实现
URL回写是指服务器在发送给浏览器页面的所有链接中都携带JSESSIONID的参数,这样客户端点击任何一个链接都会把JSESSIONID带给服务器。
如果直接在浏览器中输入url来请求资源,Session是匹配不到的。
Tomcat对 Session的实现,是一开始同时使用Cookie和URL回写机制,如果发现客户端支持Cookie,就继续使用Cookie,停止使用URL回写。如果发现Cookie被禁用,就一直使用URL回写。jsp开发处理到Session的时候,对页面中的链接记得使用 responseencodeURL() 。
一般手机端与服务器交互没有实现在同一session下:
因为手机端在访问web服务器时,没有给>
requestgetParameter("用户名或者ID");
sessionsetAtrribute("key",value);
然后在别的页面可以通过sessiongetAttribute("key");得到用户名或者ID。不过这时得到的是一个Object类型的,你需要进行强制转换。。。
以上就是关于jquery 如何调用java中的session 或者request全部的内容,包括:jquery 如何调用java中的session 或者request、java 后台如何打开指定sessionid的网页谢谢了,大神帮忙啊、java中怎么获取浏览器关闭的信息,然后修改登录用户的状态等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)