考试首页 | 考试用书 | 培训课程 | 模拟考场 | 考试论坛  
全国  |             |          |          |          |          |         
  当前位置:计算机等级 > 二级考试 > Java语言程序设计 > 考试辅导 > 文章内容
  

全国计算机等级考试二级Java重点内容(30)

中华IT学院   【 】  [ 2016年10月29日 ]

  session技术

  (1)什么是session?

  浏览器访问服务器时,服务器会创建一个

  对象(该对象称为session对象,该对象有一个唯一

  的id号,称为sessionId),服务器在默认情况下,

  会将这个sessionId以set-cookie消息头的方式

  发送给浏览器(即使用cookie机制),浏览器会将

  sessionId保存到内存里。当浏览器再次访问服务

  器时,会将sessionId发送给服务器。服务器依据

  sessionId就可以找到之前创建的session对象。

  (2) 如何获得一个session对象?

  a, HttpSession session =

  request.getSession(boolean flag);

  当flag为true:

  服务器会检查请求中是否包含sessionId,

  如果没有,服务器会创建一个session对象;

  如果有,服务器依据sessionId去查找session

  对象,如果找到了,则返回,找不到,创建

  一个新的session对象。

  当flag为false:

  服务器会检查请求中是否包含sessionId,

  如果没有,返回null;

  如果有,服务器依据sessionId去查找session

  对象,如果找到了,则返回,找不到,返回

  null。

  b,HttpSession session =

  request.getSession();

  该方法完全等价与request.getSession(true)。

  (3) session的常用方法:

  String session.getId(); //返回sessionId。

  session.setAttribute(String name,

  Object obj);

  //name对应的值不存在,返回null。

  Object session.getAttribute(String name);

  session.removeAttribute(String name);

  (4)session的超时

  服务器会将空闲时间过长的session对象

  删除掉,称之为session超时。

  服务器会有一个缺省的超时限制(一般是

  30分钟),这个缺省时间可以修改。

  比如tomcat可以修改 conf/web.xml

  30

  该修改会影响到所有部署在这个服务器上的

  应用,一般不要修改。

  可以对某个应用,在web.xml文件中,添加

  30

  可以调用session.setMaxInactiveInterval(int

  seconds)设置超时限制。

  (5) session的删除

  session.invalidate();

  案例:

  session验证

  step1 在登录成功之后,向session对象里

  绑订数据:

  session.setAttribute("user",user);

  step2 对于需要保护的资源(即必须要登录之

  后才能访问的资源),添加验证代码:

  Object obj = session.getAttribute("user");

  if(obj == null){

  //没有登录

  response.sendRedirect("login.jsp");

  }else{

  //正常访问

  }

分享到:
本文纠错】【告诉好友】【打印此文】【返回顶部
将考试网添加到收藏夹 | 每次上网自动访问考试网 | 复制本页地址,传给QQ/MSN上的好友 | 申请链接 | 意见留言 TOP
关于本站  网站声明  广告服务  联系方式  站内导航  考试论坛
Copyright © 2006-2017 中华考试网(Examw.com) All Rights Reserved  营业执照