- 浏览: 124550 次
- 性别:
- 来自: 深圳
文章分类
最新评论
当客户端浏览器第一次访问时,会在服务器的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 710http://www.yesky.com/334/195133 ... -
Web开发20:Http详解
2011-07-31 02:01 1108所谓无状态是指你发 ... -
Web开发19:自定义标签库
2011-07-24 21:55 673所谓上层标签就如下面的bbb标签 ... -
Web开发18:EL表达式
2011-07-24 19:38 687f -
Web开发17:Servlet监听器
2011-07-24 00:01 1395写了一个MyServletContextList ... -
WEB开发 16:Servlet Filter
2011-07-23 16:37 1310doFilter方法中有一个Fil ... -
Web开发15:Session在实际项目中的应用
2011-07-22 23:50 1149写一个登录例子: 用户在login.jsp页面登录,如果用户 ... -
Web开发13:Cookie
2011-07-17 23:31 846下面是个简单的例子,演示在客户端添加Coo ... -
Web开发12:Servlet多线程同步问题详细探寻
2011-07-17 22:50 1118下面看一个具体的 ... -
Web开发11:Servlet
2011-07-17 02:08 804我们编写的Servlet一般继承HttpServ ... -
Web开发10:对复杂表单进行客户端服务端验证
2011-07-16 19:27 976对上面这个用户基本信息页面进行客户端与服务器端的验证,下面 ... -
Web开发9:JavaBean
2011-07-16 00:05 441具体实例: 写一个JAV ... -
Web开发8:使用JavaScript与Servlet实现客户端与服务器端验证
2011-07-14 23:30 1107下面写一个注册页面 register.jsp,主 ... -
Web开发7:请求转发与重定向的区别
2011-07-13 22:11 1068需注意的是:所谓重 ... -
Web开发6:JSP内置对象比较与分析2
2011-07-11 21:25 969先看个小例子: request1.jsp <%@ p ... -
Web开发5:JSP内置对象比较与分析
2011-06-24 00:21 943内置对象与J2EE类的映射 以下是reques ... -
Web开发4:JSP转换为Servlet源代码深度解析
2011-06-22 00:20 1463JSP的注释写法是:<% ... -
Web开发3:Tomcat根据JSP生成Servlet机制深度剖析及核心源代码详解
2011-06-21 00:10 16951:什么是JSP(Java Server Pages): 在 ... -
Web开发2:第一个Servlet程序深度剖析,Web.xml文件深入详解
2011-06-19 14:28 24391,新建一个WEB工程:servletTest 在工程目录下 ... -
Web开发1:Tomcat环境配置
2011-06-15 23:40 831从http://tomcat.apache.org/获取T ...
相关推荐
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
**Flask Web开发:基于Python的Web应用开发实战** Flask是Python编程语言中的一个轻量级Web应用程序框架,以其简洁、灵活的特性受到了开发者们的广泛欢迎。它遵循"微框架"理念,允许开发者自由选择如何组织项目和...
在Web开发中,Session是一个至关重要的概念,尤其对于构建动态网站而言。Session通常被比喻为一个黑洞,开发者可以在适当的时候将数据放入其中,需要时再取出。然而,这个“黑洞”内部的工作机制并不那么直观。本文...
在开发过程中,尤其是在多服务或分布式系统中,有时我们需要在不同的服务器或应用之间共享Session来实现用户状态的保持。这通常发生在需要进行联合登录、单点登录(SSO)或者跨域资源共享(CORS)的场景。标题"开发...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
在Android开发中,获取Web服务器端的Session并进行登录验证是一项常见的任务,特别是在构建混合式应用或者需要与Web服务紧密交互的应用中。本篇将详细阐述这个过程中的关键知识点。 一、理解Session Session是Web...
### Java Web应用开发:个人信息修改 #### 一、概述与目标 在Java Web应用程序中,实现用户能够修改个人信息是一项常见的需求。本篇文章将详细介绍如何在Java Web应用中实现这一功能,包括用户登录后如何访问个人...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
Session对象在JSP开发中扮演着关键角色,帮助开发者处理用户会话的持久性问题。通过正确使用Session对象,可以有效地跟踪用户行为,实现用户状态的保持,提升Web应用的功能和用户体验。但需要注意,过多使用Session...
### j2ee实验二:学习使用Session和Cookie #### 实验背景与目标 ...这些技能对于从事Web开发工作来说是非常宝贵的。此外,通过实践操作加深了对B/S架构的理解,为将来进一步探索复杂的Web应用程序打下了坚实的基础。
在Web开发中,Session和Cookie是两种常用的技术来管理用户会话状态。它们都是用来跟踪用户状态,但工作方式有所不同。 1. **Session**: - Session是服务器端存储用户信息的一种机制。当用户登录后,服务器会在...
在Web后端开发中,会话(Session)跟踪技术是一种常用的方法,用于在客户端与服务器之间维护用户状态,尤其在用户登录和注销过程中扮演着重要角色。本文将深入探讨Session的工作原理、如何实现用户登录与注销,以及...
**WEB开发中的Session使用详解** 在WEB开发中,由于HTTP协议本身的无状态特性,服务器无法在用户的不同请求之间保持状态信息。为了解决这个问题,开发者引入了Session技术,以跟踪和管理用户的状态。Session主要在...
在Java Web开发中,可以通过调用`HttpSession`接口中的`setMaxInactiveInterval()`方法来设定Session的最大非活动间隔。具体而言: 1. **默认值与配置文件**: 当未显式调用`setMaxInactiveInterval()`方法时,默认...
ASP中的Session对象是Web开发中一个关键的概念,它主要用于跟踪用户的状态和信息。在HTTP协议无状态的特性下,服务器无法直接识别出同一用户在不同页面间的交互,而Session对象通过创建唯一标识的Cookie来解决这个...
ASP Session对象是Web开发中一个核心的概念,尤其是在经典ASP(Active Server Pages)环境中,它扮演着维护用户状态的关键角色。Session对象允许开发者在用户浏览网站的整个过程中存储和检索特定用户的数据,即使...
### Session页面之间传值 ...综上所述,Session作为一种重要的会话管理技术,在现代Web开发中发挥着至关重要的作用。正确理解和使用Session不仅可以提高用户体验,还能有效提升应用的安全性和性能。
总的来说,实现Tomcat服务器上不同Web项目的session共享是一个涉及多方面技术的问题,需要对Java Web开发、Tomcat服务器配置以及安全性有深入理解。根据项目的规模和复杂性,选择合适的方法可以有效地提升用户体验并...