一、Session对象
1.session的介绍和基本使用流程
a.对session对的理解及其作用?
Session由服务器进行创建,作用域在一次会话,解决了同一用户不同请求的资源共享问题
b.如何保证不同请求获取到同一个session对象?
2.session机制代码实现
session学习:
问题:
用户不同的请求在处理的时候需要使用其他请求中的其他数据该怎么办?
解决:
session技术
使用:
创建session对象
HttpSession session = req.getSesssion();
存储数据到session对象中
session.setAttribute(String name,Object value);
获取session对象(有新的调用,无新的创建 )
HttpSession session = req.getSession();
获取Session中的数据
session.getAttribute("String name");注意返回的是Object类型,需要强制转化
删除Session中的数据
session.removeAttribute("String name"); 注意:如果有数据则删除,没有则什么都不做
流程:
1、浏览器发起请求到Aservlet,在Aservlet中使用req.getSession()获取Sesssion对象,
如果此次请求中没有SessionID则创建一个新的Session对象,如果有SessionID则将其对应的
Session对象返回(前提是该session对象没有到期)如果session对象到期销毁了,就算有sessionID
也会创建一个新的session。
2、校验session是否失效,存储数据到session对象中或者获取session中的数据或者删除session中的数据
特点:
session解决了同一个用户不同请求的数据共享问题
session作用域:浏览器不关闭session不失效,则同一用户的任意请求获取的都是同一个session
一次会话
servlet代码编写流程Aservlet
//设置请求编码格式
req.setCharacterEncoding("utf-8");
//设置响应编码格式
resp.setContentType("text/html;charset=utf-8");
//获取请求信息
String uname = req.getParameter("uname");
//处理请求信息
System.out.println("SessionServletA.service()"+uname);
//创建Session对象
HttpSession session = req.getSession();
//存储数据到session对象中
session.setAttribute("uname", uname);
System.out.println("SessionServlet.service():"+session.getId());
//响应处理结果
//重定向
resp.sendRedirect("b");
servlet代码编写流程Bservlet
//设置请求编码格式
req.setCharacterEncoding("utf-8");
//设置响应编码格式
resp.setContentType("text/html;charset=utf-8");
//获取请求信息
//获取session对象(有新的调用,无新的创建 )
HttpSession session = req.getSession();
//获取A的处理结果(流转)数据
String uname = (String) session.getAttribute("uname");
//处理请求信息
//打印A的流转数据
System.out.println("SessionServletB.service():"+uname);
//响应处理结果
3.session的有效期设置和强制销毁
session的设置:
sess ion默认有效时间为30分钟,可以在tomcat下的web. xm1中进行配置
注意:此种配置方式是所有的tomcat下的项目默认为30分钟也可以在代码中使用
session. setMaxInactiveInterval(int seconds);
//设置sess ion的有效时间,参数为整数型的秒
session. invalidate();
//强制销毁session
二、ServletContext对象
1.ServletContext对象的作用
解决了不同用户之间的数据共享问题
2.获取ServletContext对象的三种方式是
1.ServletContext sc1 = this.getServletContext();
2.ServletContext sc2 =this.getServletConfig().getServletContext();
3.ServletContext sc3=req.getSession().getServletContext();
3.ServletContext对象存储和获取共享数据
存储用户共享数据
sc.setAttribute(String name,Object value);
获取用户共享数据
sc.getAttribute(String name);
删除用户共享数据
sc.removeAttribute(String name)
6.ServletContext对象的特点
服务器创建
所有用户共享
7.生命周期
服务器开启到服务器关闭
8.web.xml中的全局属性数据的配置方式
三、ServletConfig对象
1.作用:
获取servletweb.xml配置文件中本身的的配置信息
2. ServletConfig对象中方法
servletConfig.getInitParameter("name");//获取web . xml中配置文件信息
3.ServletConfig对象web.xml中的全局属性数据的配置方式
< param-name> name