自己总结一些会话跟踪的知识点,希望对大家有帮助!
1. 什么是会话跟踪
对同一个用户对服务器的连续的请求和接受响应的监视
2.举例阐述四种会话跟踪技术的特点,应用场景
会话跟踪常用的方法:
① URL重写:URL(统一资源定位符)是Web上特定页面的地址,URL重写的技术就是在URL结尾添加一个附加数据以标识该会话,把会话ID通过URL的信息传递过去,以便在服务器端进行识别不同的用户
url?参数名=值&参数名=值··········
例如:
<div class="menu_title"> <a href="oneArticle.jsp?id=<%=rs.getInt("id")%>"> <%=rs.getString("articletitle")%></a> <%=rs.getString("articletime")%> <a href="lanmu.jsp"> <%=rs.getString("menuname")%></a> </div>
rs.getInt("id")这是通过数据库查询出来的,这个ID它是标识了唯一一条用户资料的信息,并且将这个ID数据传给oneArticle.jsp这个jsp页面。
②隐藏表单域:将会话ID添加到HTML表单元素中提交到服务器,此表单元素并不在客户端显示
<form action="updateinfoChat.jsp" method="post"> <input type="hidden"name="userid"value="<%=userid%>"/> 帐号:<%=rs.getString("username") %><br/> 密码:<input type="password" name="userpwd" value="<%=rs.getString("userpwd")%>" /><br/> 确认密码:<input type="password" name="userpwd2"/><br/> Email:<input type="text" name="email" value="<%=rs.getString("useremail")%>"/><br/> 电话:<input type="text" name="tel" value="<%=rs.getString("usertel")%>"/><br/> 个性签名:<input type="text" name="userdesc" value="<%=rs.getString("userdesc")%>"/><br/> <input type="submit" value="确认修改"/> </form>
<input type="hidden"name="userid"value="<%=userid%>"/>
这个就是通过隐藏表单域来实现会话跟踪。
③ Cookie:Cookie是Web服务器发送给客户端的一小段信息,客户端请求时可以读取该信息发送到服务器端,进而进行用户的识别。对于客户端的每次请求,服务器都会将Cookie发送到客户端,在客户端可以进行保存,以便下次使用。
客户端可以采用两种方式来保存这个Cookie对象,一种方式是保存在客户端内存中,称为临时Cookie,浏览器关闭后这个Cookie对象将消失。另外一种方式是保存在客户机的磁盘上,称为永久Cookie。以后客户端只要访问该网站,就会将这个Cookie再次发送到服务器上,前提是这个Cookie在有效期内。这样就实现了对客户的跟踪。
Cookie是可以被禁止的。
//创建Cookie对象
Cookie cookieName = new Cookie("userName",userName);
cookieName.setMaxAge(60*60);
//将cookie对象响应给客户端
response.addCookie(cookieName);
//创建Cookie对象
Cookie cookiePwd = new Cookie("userPwd",userPwd);
cookiePwd.setMaxAge(60*60);
//将cookie对象响应给客户端
response.addCookie(cookiePwd);
将用户的账号和密码存到cookie里面,组成一个cookie数组,通过cookie数组可以随时获得用户的账号和密码。
④ session:
每一个用户都有一个不同的session,各个用户之间是不能共享的,是每个用户所独享的,在session中可以存放信息。
在服务器端会创建一个session对象,产生一个sessionID来标识这个session对象,然后将这个sessionID放入到Cookie中发送到客户端,下一次访问时,sessionID会发送到服务器,在服务器端进行识别不同的用户
Session是依赖Cookie的,如果Cookie被禁用,那么session也将失效
session.setAttribute("user", userName);
session.setAttribute("userid", userid);
将用户的账号和密码存到session对象里面,通过session对象随时可以获得用户的账号和密码。
3.cookie和session的共同之处在于:
cookie和session都是用来跟踪浏览器用户身份的会话方式
Cookie与Session的区别:
两个都可以用来存私密的东西,同样也都有有效期的说法,区别在于session是放在服务器上的,过期与否取决于服务期的设定,cookie是存在客户端的,过去与否可以在cookie生成的时候设置进去。
(1)cookie数据存放在客户的浏览器上,session数据放在服务器上
(2)cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,如果主要考虑到安全应当使用session
(3)session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,如果主要考虑到减轻服务器性能方面,应当使用COOKIE
(4)单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能超过3K。
(5)所以:将登陆信息等重要信息存放为SESSION;其他信息如果需要保留,可以放在COOKIE中
4.session对象的创建
HttpSession session=request.getSession();
HttpSession session=request.getSession(true);
上面二种创建session的方法效果是一样的。首先获取传递进来的在Cookie中存放的sessionID,再根据sessionID查找session对象,如果没有找到将创建一个新的session对象,并保存到Cookie中发送到客户端。如果找到了,就将session对象赋予给引用
HttpSession session=request.getSession(false);
如果不存在会话的时候不想创建新的会话
这种方式创建过程: 首先获取传递进来的在Cookie中存放的sessionID,再根据sessionID查找session对象,如果没有找到将返回null,如果找到了,就将session对象赋予给引用
5.访问与会话相关联的信息
HttpSession 对象存在于服务器上,他们并不在网络上传输,它们只是通过某种后台运作机制比如cookie或url重写自动与客户关联起来。Session对象拥有内建的数据结构散列表,存储任意数量的键与键值的对。
Session指的是服务器端为客户端所开辟的存储空间,在其中保存的信息就是用于保持状态
相关推荐
下面是一个简单的JSP会话跟踪示例: ```jsp ; charset=UTF-8" %> // 获取或创建会话 HttpSession session = request.getSession(); // 设置属性 session.setAttribute("username", "John"); // 从会话中...
本文通过三个部分来介绍JSP的基础知识: 第一部分为Servlet技术,包括Servelt入门,会话跟踪,JavaMal和Servlet. 第二部分就是Jsp技术,包括:jsp简介,...•3 会话跟踪技术总结 •4 构建实体Bean的原则 •5 MVC实现数据封装
总结,会话跟踪是Web开发中不可或缺的部分,它确保了用户在网站上的体验连续性。通过掌握各种跟踪技术,开发者能够创建更健壮和安全的Web应用程序,提供定制化服务,并确保用户数据的安全。对于Java JSP web开发者来...
本教程将深入探讨"登录超时完整实例",包括如何进行`session超时设置`以及在`JSP页面`中处理会话超时的问题。 首先,我们需要理解什么是登录超时。登录超时是指用户在一定时间内未进行任何操作,系统自动判断该用户...
### JSP脚本小总结 #### 一、指令元素 指令元素是JSP页面中用于控制JSP容器行为的关键组成部分,这些指令告诉JSP引擎如何处理特定页面。 1. **page指令** - `import`:指定在当前JSP页面中可以使用的类或包。 `...
以上是对JSP初级学习的总结,涵盖了从处理HTTP请求和响应到管理用户会话的关键概念。对于初学者来说,这些都是构建动态Web应用的基础。随着技能的提升,还将涉及到更高级的主题,如EL(Expression Language)、JSTL...
**JSP 学习总结** JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML中嵌入Java代码,以实现服务器端的程序逻辑。对于初学者来说,掌握JSP的基础知识和核心概念至关重要。 ### JSP 开发Web应用系统 ...
### Servlet与JSP知识点总结 #### 一、Servlet概述及基本使用 - **Servlet定义**:Servlet是一种服务器端的小程序,用于处理来自Web浏览器或其他HTTP客户端的请求,并返回响应。Servlet通常作为MVC架构模式中的...
**index.jsp** 页面包含了用于跟踪用户离开页面或关闭浏览器窗口的JavaScript代码。当检测到这些动作时,会触发一个名为`SessionInvalidate`的Servlet,该Servlet用于销毁当前用户的会话。 ```html window....
3. session:处理会话数据,用于跟踪用户状态。 4. application:全局应用范围变量,所有用户共享。 5. out:负责将内容写入响应流。 6. pageContext:提供对JSP上下文的访问,可以获取其他对象。 7. page:当前JSP...
总结,"JSP开发的项目跟踪系统"涉及到的IT知识点包括但不限于JSP基础、Servlet-JSP协作、MVC模式、JavaBean、JSTL与EL、数据库操作、Session与Cookie管理、权限控制以及响应式设计等。这些技术共同构建了一个功能...
在本文中,我们将深入探讨如何使用JSP实现一个简单的登录会话系统。首先,我们要了解JSP(JavaServer Pages)是Java技术的一部分,用于创建动态网页。它允许开发者在HTML中嵌入Java代码,以便与服务器进行交互。 **...
会话跟踪是Web应用程序中的一项重要技术,用于保持用户的会话状态,使用户在多个页面间跳转时能够维持状态。 - **四种主要的会话跟踪方式:** 1. **Session:** 使用`HttpSession`对象来存储和管理用户的会话数据...
在 `02.jsp` 中,通过 `session.getAttribute()` 可以获取到在 `01.jsp` 中设置的属性,因为它们处于同一个会话中。 - 如果在 `02.jsp` 中使用 `request.setAttribute()` 设置属性,并且使用超链接跳转到 `03.jsp`,...
总结来说,"JSP_jsp_application实例"是一个综合性的JSP学习资源,涵盖了JSP的基本要素和实际应用技巧。通过分析和实践这个实例,开发者能够提升自己在JSP领域的技能,更好地理解Web开发中的动态内容生成和交互流程...
HTTP协议、请求方式(GET和POST)、会话跟踪、JDBC高级特性、JSP标准动作以及EL表达式的运用,都是开发过程中需要熟练掌握的关键知识点。通过学习和实践,开发者可以构建出高效、可维护的企业级应用。
在JavaServer Pages (JSP) 技术中,内置对象是预定义的、可以直接在页面上使用的对象,无需显式创建。这些对象极大地简化了开发过程,提供了与Servlet API的直接交互。本篇文章将深入探讨JSP中的9个内置对象及其常用...
总结来说,Session和JSP是JavaWeb开发中用于处理会话状态的重要工具。掌握它们的使用和管理,对于构建高效、稳定的Web应用程序至关重要。在实际开发中,我们需要根据具体需求,灵活运用这两种技术,同时注意性能优化...
3. **session**:用于跟踪用户会话,存储用户信息。 4. **application**:全局应用对象,跨所有用户共享数据。 5. **pageContext**:提供对请求、响应、session、application等对象的访问。 6. **out**:输出流,...