今日内容
? Request
? Response
? 域对象--request和ServletContext
? Cookie
? Seession
Response对象:
? 作用,设置相应的消息
○ 响应头 setHeader(String name, String value) "Content-type"
○ 响应行 http版本 状态码 setStatus(int code)
○ 响应体 getWriter() getOutputStream()---->write()
/*
内部转发和重定向的区别
1.内部转发地址栏不会发生改变而重定向地址栏会发生改变
2.重定向县东港与发送了两次请求,而内部转发只有一次请求
3.重定向(路径)相对于tomcat服务器,而内部转发是相对于web应用
4.重定向可以访问web服务器中的资源,而内部转发只能访问本服务器下面的资源
5.内部转发需要通过request对象来实现,而重定向需要通过response对象来实现
6.内部转发可以访问难道web应用中的安全目录信息(WEB-INF)(服务器行为),而重定向访问不到(浏览器客户端行为)
*/
域对象
request对象也是一个域对象,在这个域对象中存放一些数据
? 数据的存储,读取,删除
○ 向request对象中存储一些值"setAttribute(String key,Object obj)
○ 从request域对象中读取一些值:getAttribute(String key)
○ 从request域中删除指定的值:removeAttribute(String key)
? request域对象的生命周期
○ 创建:第一次访问该Servlet服务的时候就已经创建了
○ 销毁;一次请求结束后就自动销毁了
○ 重定向获取不到域对象的值
ServletContext域对象,
代表的是整个web应用对象,在这个对象内部封装了web应用的信息,注意:这个ServletContext对象,
不论何时何地获取的都是同一个对象.单例Servlet
? ServletContext对象的生命周期
○ 创建:web应用一启动,该对象就随之创建,随着服务器的启动而创建
○ 销毁:服务器关闭的时候,web应用从服务器移除的时候
? 如何获取ServletContext对象
○ 通过当前的Servlet对象来获取ServletContext对象 this.getServletContext()
○ 该对象在整个应用中始终是唯一的
? 常用的api方法
○ removeAttribute()//删除
○ getAttribute()//获取
○ setAttribute()//设置
? ServletContext作用
○ 配置web应用的参数信息,因为该对象是随着服务器的启动而创建
○ Spring框架 --->xml配置文件 ---> 对象管理容器
○ applicationContext.xml
○ 给对象中存储的值可以被整个应用所共享
会话技术
由于HTTP是无状态的协议的协议,就是每次客户端请求服务器端对于服务器端来说,都是新的,并不知道是谁来访问我,
如果需要保证服务器来识别到底是那个客户端访问我的,我们就需要会话技术来实现.
? 什么是会话
○ 从用户打开客户端访问我们应用开始到用户关闭客户端这个过程称之为一次会话.
○ 从客户端访问web应用开始,这时候就会在系统中开辟一个内存空间存储访问过程中产生的数据,直到用户关闭浏览器,内存中的数据才会被清除掉
? 会话技术的分类
○ Cookie:把数据存储到本地中,减少了服务器端存储数据的压力,安全性不高,客户端也可以手动清除掉Cookie值
○ Session:把数据存储到web应用服务器中,相同对于Cookie来说安全性较高,服务器压力较大,
? Cookie
○ 把数据存储到客户端本地中
○ 存储过程
§ 服务器端经常需要把程序中的数据放到Cookie中,通过响应头的形式发送给客户端,客户端收到头信息,就会将头信息中的数据保存起来
客户端再次请求服务器端将cookie信息放到请求头中,那么服务器端获取请求头,请求头中有cookie信息,这样就能区分不同的用户
? Session
○ 将数据保存在服务器端,他会给每一个客户端创建一块独自的内存空间,在用户第一次请求过来的时候通过响应头的形式将这块内存空间的编号
发送给客户端,客户端每次请求时会携带JESSIONID放到请求头中访问服务器.服务器会找对应的JESSIONID识别是哪一块的内存空间
○ 获取Session对象 getSession()
§ 两件事
1.获取当前会话的Session对象,如果服务器端没有session对象,服务器自动创建一个新的session的对象,如果有就获取它对应的session对象
2.并将Session中的JESSIONID放入cookie中,并设置的携带路径为当前的web应用,自动通过response对象返回
java Request Response 域对象--request和ServletContext Cookie Seession
原文:https://www.cnblogs.com/shangjinshuai/p/14274776.html