- 浏览: 119904 次
- 性别:
- 来自: 深圳
文章分类
最新评论
当客户端浏览器第一次访问时,会在服务器的Servlet中产生一个sessionid,并且生成一个cookie。将sessionid放入cookie中,放入客户端浏览器。在下一次客户端浏览器访问服务器时,服务器会通过request取出客户端浏览器cookie中的sessionid与服务端中的sessionid比较,如有相同,则取出相应的session。
三个购物车互不干扰。
session.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <html> <body> session: <%=session.getId() %> </body> </html>
输入session.jsp 页面在IE,FireFox,Chrom三个浏览器中测试,在不同浏览器中session id是不同的,但同一种浏览器的多个页签,或多个程序,session id都是相同的。但如把同一种浏览器程序全关闭,再打开一个新的窗口,则session id会发生变化。如打开一个 firefox,其session id是aaaa,再打开一个firefox程序,其session id仍是aaaa,但如果把这两个firefox程序都关闭,再打开一个新的firefox程序,则session id 会发生变化。
invalidate方法用于解除session 与任务对象的绑定。
invalidate.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <html> <body> session: <%= session.getId() %> <% session.invalidate(); %> </body> </html>
invalidate.jsp每刷新一次,session id都会发生改变。
因为每次显示完后,session id都会被解除绑定,再次刷新时,会在服务器中生成一个新的session id 。
J2EE API说明文档对isNew方法的说明
Returns true if the client does not yet know about the session or if the client chooses not to join the session. For example, if the server used only cookie-based sessions, and the client had disabled the use of cookies, then a session would be new on each request.
setMaxInactiveInterval方法用于指定最大间隔时间(单位是秒)
所谓间隔是指上一次请求与下一次请求之间的间隔时间
maxInterval.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <html> <body> session: <%= session.getId() %> <% session.setMaxInactiveInterval(10); %> </body> </html>
maxInterval.jsp指定最大间隔时间是10秒。第一次请求过10秒后,再刷新页面,session id会发生变化。
如果不设置最大间隔,默认是30分钟失效。
此值在web.xml文件可配置
由于客户端的session id 是放在浏览器的会话cookie中的,浏览器关闭后,进程中的会话cookie也会被关闭,客户端的seesion id就会丢失,导致再次打开浏览器时,就无法得到服务器的与之间session id绑定的session对象,但服务器上的session对象仍然存在。
maillogin.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <html> <body> <% String sessionid = session.getId(); String username = ""; if(!session.isNew()){ username = (String)session.getAttribute("username"); } %> sessionid:<%=sessionid %> <form action="mailcheck.jsp"> 用户名:<input type="text" name="username" value="<%=username%>"/> <input type="submit"> </form> </body> </html>
mailcheck.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <html> <body> <% String username = request.getParameter("username"); session.setAttribute("username",username); %> 欢迎你 :<%=username %><br> <a href="maillogin.jsp">邮箱登录</a><br> <a href="maillogout.jsp">邮箱登出</a><br> 您有10封新邮件! </body> </html>
maillogout.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <html> <body> <% String username = (String)session.getAttribute("username"); session.invalidate(); %> <%=username%>再见! <a href="maillogin.jsp">重新登录</a> </body> </html>
在maillogout.jsp页面会将session注销。
发表评论
-
深入研究Servlet线程安全性问题(转)
2012-11-21 00:13 658http://www.yesky.com/334/195133 ... -
Web开发20:Http详解
2011-07-31 02:01 1067所谓无状态是指你发 ... -
Web开发19:自定义标签库
2011-07-24 21:55 624所谓上层标签就如下面的bbb标签 ... -
Web开发18:EL表达式
2011-07-24 19:38 634f -
Web开发17:Servlet监听器
2011-07-24 00:01 1348写了一个MyServletContextList ... -
WEB开发 16:Servlet Filter
2011-07-23 16:37 1272doFilter方法中有一个Fil ... -
Web开发15:Session在实际项目中的应用
2011-07-22 23:50 1116写一个登录例子: 用户在login.jsp页面登录,如果用户 ... -
Web开发13:Cookie
2011-07-17 23:31 817下面是个简单的例子,演示在客户端添加Coo ... -
Web开发12:Servlet多线程同步问题详细探寻
2011-07-17 22:50 1091下面看一个具体的 ... -
Web开发11:Servlet
2011-07-17 02:08 766我们编写的Servlet一般继承HttpServ ... -
Web开发10:对复杂表单进行客户端服务端验证
2011-07-16 19:27 944对上面这个用户基本信息页面进行客户端与服务器端的验证,下面 ... -
Web开发9:JavaBean
2011-07-16 00:05 405具体实例: 写一个JAV ... -
Web开发8:使用JavaScript与Servlet实现客户端与服务器端验证
2011-07-14 23:30 1074下面写一个注册页面 register.jsp,主 ... -
Web开发7:请求转发与重定向的区别
2011-07-13 22:11 1032需注意的是:所谓重 ... -
Web开发6:JSP内置对象比较与分析2
2011-07-11 21:25 935先看个小例子: request1.jsp <%@ p ... -
Web开发5:JSP内置对象比较与分析
2011-06-24 00:21 881内置对象与J2EE类的映射 以下是reques ... -
Web开发4:JSP转换为Servlet源代码深度解析
2011-06-22 00:20 1435JSP的注释写法是:<% ... -
Web开发3:Tomcat根据JSP生成Servlet机制深度剖析及核心源代码详解
2011-06-21 00:10 16651:什么是JSP(Java Server Pages): 在 ... -
Web开发2:第一个Servlet程序深度剖析,Web.xml文件深入详解
2011-06-19 14:28 24011,新建一个WEB工程:servletTest 在工程目录下 ... -
Web开发1:Tomcat环境配置
2011-06-15 23:40 789从http://tomcat.apache.org/获取T ...
相关推荐
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
在web开发中,session是个非常重要的概念。在许多动态网站的开发者看来,session就是一个变量,而且其表现像个黑洞,他只需要将东西在合适的时机放进这个洞里,等需要的时候再把东西取出来。这是开发者对session最...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
WEB开发 之 ASP Session 对象(2).docx
WEB开发 之 ASP Session 对象(1).docx
(2) 创建用户信息修改页面userEdit.jsp,该页面包含修改信息的表单,初始化要把用户对象从session中取出来,如果对象不存在,说明用户没有登录,或者session过期了,提示用户登录,回到首页。如果用户对象不为空,把...
点击“清空购物车”,将购物车从session里删除。 2 思路 (1) 购物车页面的表格是购物车对象cart的展示结果,表格中的每一行就是购物车cart中的一个元素,两者的内容和顺序是完全一样的。 (2) 购物车页面的表格是放在...
android获取web服务器端session并验证登陆
WEB开发 之 Session的使用.docx
购物车对象存储在session对象的“_CART_”属性中。 (5) 添加商品到购物车的业务逻辑(假设用户已经登录) 取得请求中的id,name,price,加入数量默认为1,用这些数据创建一个CartGoods对象 将待加入商品对象加入...
Web后端开发-使用Session会话跟踪技术,实现用户登录、注销
HTML等web开发文档,含jquery等,有缺失部分,欢迎补充。 现收取一个积分,后续取消。
用户退出 1 目标 ... 2 思路 (1) 在successLogin.jsp页面中补充一行, 放一个超链接“退出...将 “user”属性从session中移除。 在request中保存属性message,值为“成功退出登录”。 跳转回商品展示首页。 请自行完成。
【下载说明】 《深入体验Java Web开发内幕——核心基础》一书在网上评价极高,非常适合广大Java Web开发人员。本资料是该书PDF格式的高清晰电子版,可用Adobe Reader7.0或兼容阅读工具打开,推荐Java爱好者...
如果已经登录,取出session中的购物车对象,遍历购物车,以表格形式显示购物车中的每件商品信息。 (2) 商品数量用文本框显示,方便用户修改。 (3) 每行的总金额为:单价 × 数量 (4) 合计总金额为每种商品总金额之和...
介绍在Web开发中运用一般应用程序处理Ajax时如何获取Session的方法。
提供典型应用案例,剖析JSP/Servret技术与Struts 2技术在Web开发中的不同 提供完整的应用案例,使读者可以深入体会SSH开发模式的精髓 所有开发工具和框架均使用目前的最新版本,紧跟技术发展的趋势 提供230个实例...