`
8366
  • 浏览: 812995 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

session会话跟踪的一个小例子

阅读更多

 

 

 内容包括:

 

 

  必备知识:

 

   会话跟踪实现主要有3种方式:

 

a. SSL 这种方式我们 先不研究

b. cookies

 

     会话跟踪 的实现 可以基于 会话cookie,这种cookie 是在浏览器内存中的 名字必须叫jsessionid, 如果浏览器禁用了cookie 那服务器端就不能跟踪会话了 ,就要采用url重写   

  

   如果客户端没禁止cookie ,也可以吧cookie 保存在客户端的硬盘上 ,这种cookie是持久cookie ,用户在每次访问一个url的时候 浏览器会吧这个url域下的cookie发到服务器上,服务器根据自己关心的cookie的名字来跟踪会话。迅雷看看记录播放历史就是这样干的

 

 

c. URL 重写

    就是在所有的页面跳转上加上 encodeURL() 或者 encodeRedirectURL(),之中方式是由于容器在处理动态页面或者action的时候会自动添加 ;jsessionid=?????? 的字符串 来标示会话,对于静态页面就无能为力了,不过我们可以吧静态页面改造成动态页面来解决 比如吧11.htm 改成tt.jsp

 

 

测试项目结构:

 

 

 

例子1:使用会话cookie 和URL重写 追踪会话 需要的3个servlet

LoginServlet  使用会话cookie 会话跟踪的servlet

GreetServlet  使用会话cookie 登陆后打印会话信息

LogoutServlet  使会话失效

 

结论:如果客户端没禁止cookie 会话跟踪成功,如果客户端禁止了cookie.则每次都是新的会话,会话跟踪失败

 

iE 禁止cookie

 

 

访问 登陆servlet 看到IE 下面的提示: 红色的部分标示IE拒绝了回话cookie

 

 

 

对于这种方式我们就只好用URL重写了 ,重写以后再访问登陆页面 发现后面已经有了服务器生成的 jsessionid, 浏览器和服务器就可以使用这个标识来传递会话了

 

 

例子2:使用持久cookie(保存在用户的硬盘上)追踪会话 需要的2个 servlet 

 

LoginServlet2

GreetServlet2 

 

 

 附件中试测试源码

 

 

 

分享到:
评论
1 楼 苹果超人 2010-10-18  
学习。。。压缩包的密码多少啊?

相关推荐

    JSP中会话跟踪的操作

    下面是一个简单的JSP会话跟踪示例: ```jsp ; charset=UTF-8" %> // 获取或创建会话 HttpSession session = request.getSession(); // 设置属性 session.setAttribute("username", "John"); // 从会话中...

    Java EJB中有、无状态SessionBean的两个例子.rar

    例如,如果一个购物车应用使用SSB,那么Bean可以跟踪用户的购物选择,直到用户完成购买。这种状态保留使得SSB适合处理复杂的业务流程,其中多个步骤涉及相同的数据。 2. 无状态SessionBean(Stateless Session Bean...

    Servlet会话小例子

    在这个“Servlet会话小例子”中,我们将深入探讨如何利用Servlet、RequestDispatcher和ServletContext接口来管理用户会话,并通过文件“HomeWork”进一步理解其实现。 首先,Servlet是Java EE规范的一部分,它提供...

    学习application(session)(cookie)聊天室小例子

    本教程将通过一个聊天室小例子,深入探讨这三个概念及其在ASP.NET中的具体应用。 首先,让我们了解这三者的基本含义: 1. **Application**:在ASP.NET中,`Application`对象代表了整个应用程序域的共享状态。它...

    SESSIONBEAN 和客户端相结合 的例子

    无状态SessionBean对每个请求都创建一个新的bean实例,不保留任何特定客户端的信息;而有状态SessionBean则可以保存客户端的状态信息,适用于需要跟踪用户会话的情况。 Oracle数据库是广泛使用的的关系型数据库管理...

    Java EJB中有、无状态SessionBean的两个例子.7z

    每个客户端会话都对应一个唯一的Session Bean实例,它能记住客户端的上下文信息,适合处理需要跟踪用户状态的情况,如购物车或在线游戏。 实现有状态Session Bean的步骤与无状态类似,但需要使用`@Stateful`注解,...

    session例子

    Session是ASP.NET中的一个关键概念,它允许开发者在用户浏览器的不同请求之间保持状态信息。以下是对"session例子"的详细解析: 1. **Session的基本概念** Session是一种服务器端的技术,用于跟踪用户的会话状态。...

    Java EJB中有、无状态SessionBean的两个例子

    例如,我们可以创建一个`ShoppingCartSFSB.java`,它包含一个`addItem`方法,每次调用都会将商品添加到用户的购物车中: ```java @Stateful public class ShoppingCartSFSB implements ShoppingCartSFSBLocal { ...

    java源码:Java EJB中有、无状态SessionBean的两个例子.zip

    例如,一个SSB可能实现一个货币转换服务。无论哪个用户请求汇率,SSB都只依赖于输入参数,而不会存储任何与特定用户相关的信息。 三、两者之间的区别 1. 状态维护:SFSB维护会话状态,而SSB不维护。 2. 性能:由于...

    cookie和session示例

    服务器为每个会话分配一个唯一的ID(session_id),并将这个ID通过Cookie返回给客户端。客户端在后续请求时将session_id带回去,服务器根据这个ID查找对应会话的数据。 2. 特点: - 存储位置:Session数据存储在...

    基于Java的EJB中有、无状态SessionBean的两个例子.zip

    - 生命周期:有状态SessionBean在客户端首次调用时创建一个实例,并在整个会话期间保持活动。当客户端完成所有操作并调用`remove()`方法时,或者达到预设的会话超时,Bean才会被销毁。 - 实现方式:实现`javax.ejb...

    Tomcat中实现Session小结

    Session的主要目的是跟踪用户在同一个会话中的活动。例如,购物车功能就需要使用Session来存储用户选择的商品,即使用户在页面之间跳转,购物车内容也能保持不变。此外,Session还可以用于实现用户登录状态的维持,...

    Java EJB中有、无状态SessionBean的两个例子.zip_1H1_Java EJB_UOL

    Session Bean是Java EE中的一个概念,它代表了一个业务逻辑组件,允许客户端通过远程接口与服务器进行交互。本教程将深入探讨有状态和无状态Session Bean的区别和使用场景,通过具体的例子来加深理解。 首先,让...

    基于Java的实例源码-EJB中有、无状态SessionBean的两个例子.zip

    在压缩包中的例子中,你可能会找到一个名为` StatelessExample `的类,它实现了无状态SessionBean的接口,并提供了一些业务方法。 接着,我们转向有状态SessionBean(Stateful Session Bean)。与无状态SessionBean...

    Cookie与Session的示例代码

    在Web开发中,Cookie和Session是两种非常重要的用户身份管理和会话跟踪技术。它们都是用来在客户端和服务器之间存储和传递信息的方式,但各有特点和适用场景。本篇将通过具体的示例代码来深入理解Cookie和Session的...

    6 jsp内建对象之session

    会话跟踪是Web应用程序中一个重要的概念,尤其是在需要保持用户状态的情况下,如购物车、在线注册或个性化用户体验等。`HttpSession`接口提供了创建和管理用户会话的功能,允许服务器存储和检索特定用户的数据。 **...

    关于ASP.NET网页中Cache, Session, and ViewState用法比较程序例子

    Session存储的数据存在于服务器端,因此安全性相对较高,但会占用服务器内存,且不适合大量用户并发的场景,因为每个用户都会创建一个独立的Session。 **ViewState**: ViewState是ASP.NET中用于保持页面控件状态的...

    基于Java的源码-EJB中有、无状态SessionBean的两个例子.zip

    总的来说,这个压缩包为Java开发者提供了一个学习EJB Session Bean的良好起点,无论是有状态还是无状态,都能帮助你更好地理解和应用这一强大的组件。在实践中,结合其他Java EE技术,如JPA(Java Persistence API)...

Global site tag (gtag.js) - Google Analytics