存档

文章标签 ‘cookie’

(七)JSP基本语法–session对象

2008年2月2日

session对象

  • session对象主要用于保存用户的各种信息,知道它的生命周期(一般是900S)超时或者被人为释放为止
  • 可以通过session对象来判断此用户是否是合法用户
  • 在服务器上通过session来区分每一个上网用户
  • session对象属于javax.servlet.http.HttpSession接口的实例化对象
    • session属于HTTP协议范畴之内的对象,所以只有唯一的一个http包下有此接口,没有任何继承关系
    • 用户只要一连接服务器则立刻分配一个session给用户

session的主要方法

  1. 服务器上通过session来分别不同的用户–>sessionID:任何连接到服务器上的用户,服务器都会为之分配唯一一个不会重复的sessionID
    • sessionID是由服务器同意管理的,人为不能控制
    • 方法:session.getId()
    • sessionID的长度为32位
  2. 判断是不是新的session
    • Public boolean isNew(),判断当前的session是否是新建立的session
  3. session的属性设置
    • 设置属性setAttribute()
    • 取得属性getAttribute()
    • 删除属性removeAttribute()
    • 通过session能够对用户是否登陆做出验证
  4. 用户注销:让用户的session失效
    • 若用户的session失效,则在session所保留的全部操作也会消失
    • 方法:Public Void invalidate()使session失效(需手工操作)
    • 若session长时间不被使用,也会自动失效
  5. 得到session的创建时间
    • 方法:Public long getCreationTime(),此方法返回一个long类型,通过Date类可以取得一个完整的时间
  6. 取得用户最后一次操作的时间
    • 方法:Public long getLastAccessedTime()
    • 用户在线时间=session最后一次操作时间-session创建时间

session与Cookie区别:

  • session将信息保存在服务器上而Cookie保存在客户端上
  • session比Cookie更安全,session比Cookie更占资源
  • 开发原则:
    • sessiom要尽量少使用–尽量少向session中保存信息
    • session使用Cookie机制,若Cookie被禁用,则session也无法使用

alex Java , , ,

(六)JSP基本语法E–response对象

2008年1月31日

response对象:服务器端回应客户端的请求

  • 所属接口:javax.servlet.http.HttpServletResponse,其父接口是ServletResponse,而且ServletResponse也现在只有唯一一个HttpServletResponse子接口,主要原因是,现在的J2EE的WEB程序主要以HTTP协议为主要通讯协议。

response对象的功能:

  1. 设置头信息:response.setHeader("头信息内容","头信息参数");
    • 常用的刷新refresh,例如:response.setHeader("refresh","1");
      • 几秒后跳转:response.setHeader("refresh","2:URL=XXX");
  2. 重定向–response跳转response.sendRedirect("跳转地址");
    • 此语句执行后,页面地址也变为跳转后的地址
    • 面试中常见问题:两种跳转的区别:
      • <jsp:forward page="xxx" />:
        1. 地址栏不改变–属于服务器端跳转
        2. 执行到跳转语句后无条件立刻跳转–之后的代码将不再执行
          • 注意:若使用forward跳转则一定要在跳转前释放掉全部资源;
          • 使用forward时,request设置的属性(setAttribute)依然能保留到下一个页面
        3. 通过<jsp:Param name="" value="" />传递参数
      • response.sendRedirect("跳转地址"):
        1. 地址栏改变–属于客户端跳转
        2. 页面的所有代码执行完毕之后再跳转
          • 不能保存request属性,地址栏改变了,客户端跳转
        3. 通过对URL地址的重写传递参数
  3. 设置Cookie
    • Cookie是服务器端保存在客户端的一组资源
    • 通过Cookie实现保存密码或者多长时间无需再输入密码等功能
    • 设置Cookie的方法:Public Void addCookie(Cookie cookie)
    • Cookie是通过服务器端设置到客户端上去的–response
      • 如果要在服务器端取得Cookie–request
      • 在request对象中有Public Cookie[] getCookies()方法
      • 在使用request对象取得全部Cookie时会出现JSESSIONID,表示唯一的客户端在服务器上的编号,这个值在客户端第一次访问服务器端之后设置
    • 默认情况下Cookie只针对当前浏览器有效,如果需要长留在计算机上,可以设置Cookie的保存时间,通过设置Cookie最大保留时间方法:setMaxAge()

alex Java , , , ,