zoukankan      html  css  js  c++  java
  • 《JSP2.0 技术手册》读书笔记二HttpSession

    Internet通讯协议分为两类:Stateful与Stateless,根据连接状态是否持续来区分。Telnet与FTP属于stateful协议,客户端与服务端保持一个持续性的联机来传达各种操作。Http是stateless协议,客户端发出一次请求,服务端建立一个连接,请求得到响应后,连接中断。

    通常的应用都是利用http协议来进行通信,服务端要想把用户的状态或者其他信息与一个客户端联系起来,即确定是这次请求依然是哪个客户端传过来的,如要实现购物车功能,那么就需要进行会话追踪了。会话追踪有如下办法:

    (1). 在页面中建立含有数据的隐藏表单字段。如<input type="hidden" name="username" value="Jack" />。但不安全,可以通过查看页面源代码的方法看到具体数据。

    (2). 重写URL,即在URL后加额外的参数。如http://www.test.com/hello.jsp?userid=123&pwd=123,不安全而且url长度是有限制的。

    (3). 使用持续cookie。服务端生成,发送给客户端,客户端以key/value的形式将信息存在本地的一个小文本文件中即cookie,下次请求同一网站时将该cookie发送给服务端。但隐私问题、广告等,也容易被客户限制使用。

    (4). HttpSession,会话对象。javax.servlet.http.HttpSession。用于对无状态的http协议下越过多个请求页面来维持状态和识别用户。它是内置的隐含对象,在jsp中可以直接使用session对象。

    生命周期:当用户向服务端发送第一个请求时,建立一个HttpSession对象session,当session超时或者用户显式结束时销毁。一般session在一段时间没有作用就会自动失效。对于同一个应用,有多少个不同的用户连接,servlet容器就会产生多个httpsession对象,即一个用户对应一个session。也可在web.xml中手动设置session的过期时间。

     

    另外还可以用HttpSession的方法来控制session的销毁。如下:

     

    session使用:

    1. 获得HttpSession对象。在jsp页面中直接使用session;servlet中从请求中提取HttpSession对象-HttpServletRequest.getSession()或HttpServletRequest.getSession(boolean create),效果都是返回与这个请求关联的当前有效的session。没有参数,那么当没有有效session时就会新建一个session。带布尔参数时,若为true,当没有有效session时建立session;若为false,没有有效session时返回空值。

    2. 存取属性。各方法的作用正如其名字所述。

     

  • 相关阅读:
    ORM模型框架(使用mysql)
    Python操作Mysql
    Jmeter操作数据库
    .NetCore+OpenSSL实现Https
    深入理解Https如何保证通信安全
    关于数据库事务和锁的一些分析
    C# Task.Run与Task.Factory.StartNew
    WPF 元素代理解决MVVM模式下DataGridColumn绑定无效问题
    WPF DataGrid行拖拽
    C#集合Clear()和new的性能差异
  • 原文地址:https://www.cnblogs.com/whuqin/p/4982130.html
Copyright © 2011-2022 走看看