jsp的9大内置对象详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsp的9大内置对象详解相关的知识,希望对你有一定的参考价值。

一:内置对象相关解释以及种类

1.
内置对象,顾名思义,就是在jsp中不用new的对象,jsp中自带的,可以直接使用的
2.
jsp中有9大内置对象,分别是:
请求对象:request
输出对象:out
响应对象:response
应用程序对象:application
会话对象:session
页面上下文对象:pageContext
页面对象:page
配置对象:config
异常对象:exception




二:详解其中几个重要的事内置对象

(一)request
(1)request:作用域:仅限于一次请求,请求对象,存储客户端向服务端发送的请求信息
技术图片


(2)request对象常见方法:
string getParameter(Stringname):根据请求字段名Key,返回字段值value
string [ ]getParameterValues(String name):根据请求字段名Key,返回多个字段值value
void setCharacter Encoding:设置请求编码(编码格式“utf-8”)
getRequestDispatcher(“b.jsp”).forward(request,response):请求转发的方式条状页面A->B
getServerContext(); 获取项目的ServerContext对象


(3)页面跳转之——请求转发和重定向的区别
转发和重定向都可以实现页面的跳转:
转发:request.getRequestDispatcher("url").forward(request, response)
重定向:response.sendRedirect("url")

请求转发

技术图片

重定向

技术图片


(4)请求转发与重定向的区别
1、转发使用的是request.getRequestDispatcher()方法;重定向使用的是response.sendRedirect();
2、转发:浏览器URL的地址栏不变。重定向:浏览器URL的地址栏改变;
3、转发是服务器内部行为,重定向是客户端行为;
4、转发是浏览器只做了一次访问请求。重定向是浏览器做了至少两次的访问请求;
5、转发可以携带数据,信息不会丢失;重定向不能携带参数,信息会丢失(request范围)。
6、转发只能在服务器内部转发;重定向没有限制


(二)session(会话)
(1)session的解释

Session:会话技术,从客户端打开浏览器访问服务器,到最后客户端关闭浏览器,整个过程称为一次会话。
在这个会话的过程中,服务器会针对每个客户端创建一个和客户端相关的唯一的临时容器,这个容器用于保存当前客户的所有信息。
并且在给客户端响应数据的时候,会给客户端回送一个唯一标识当前客户端相关的临时容器的id,在客户端下次访问服务器的时候,会携带这个id信息,在服务器端就可以找到和客户端相关的临时戎, 继续使用这个临时容器。
如果获取这个Session对象,为每个客户端服务:在servlet可以通过Request对象获取和当前客户端相关的唯一Session对象。在jsp中可以直接使用


(2)session的销毁时间
1、一般在web服务器中Session有默认的存活时间,一般是半小时。如果在30分钟内,用户一直没有做任何操作,这时服务器会当前这个Session自动的销毁。
2、不正常关闭服务器。正常关闭服务器,服务器会把这个Session对象使用io流中的序列化技术保存在tomcat/work目录下
3、在Servlet程序中手动的销毁Session对象。session.invalidate();
Session的存活时间可以在web.xml中配置也可以通过方法指定:
setMaxInactiveInterval(int interval); //单位是秒,一般是在存储值的时候进行设置。


(3)session和cookie之间的联系(例子讲解)
技术图片

技术图片
技术图片


(3)cookie的介绍
1.
Cookie技术主要需要依赖于给用户响应数据时,给用户的本地写数据。
创建一个 cookie,cookie 是 servlet 发送到 Web 浏览器的少量信息,这些信息由浏览器保存,然后发送回服务器。cookie 的值可以唯一地标识客户端,因此 cookie 常用于会话管理。
Cookie技术主要解决的是在客户端和服务器进行交互的过程中,保存用户的数据,这些数据主要是通过服务器使用Cookie对象写到客户端的浏览器中。然后在浏览器中保存这些数据。Cookie对象可以保存用户和服务器的交互数据,但是需要保存在客户端。

2
获取cookie
需要使用HttpServletRequest对象中的getCookies方法,会得到一个Cookie数组,这是因为一个站点可能会存放多个Cookie数据
例如:Cookie[] cookies = request.getCookies();
得到Cookie数组之后,判断cookies数组是否存在 cookies == null,如果cookies存在,根据cookie的name去查找指定cookie

3.
发送cookie
创建好Cookie对象之后,需要使用HttpServletResponse中的addCookie方法,将Cookie对象添加到响应中,然后发给客户端。
例如:response.addCookie(cookie);
在Cookie对象中提供了getName可以获取Cookie的key值,提供的getValue可以获取key对应的value值,同时也可以使用setValue给当前的Cookie对象设置value值。
SetPsth设置cookie可以访问资源路径
SetMaxAge() - 设置cookie的生存时间


(4)
session和cookie的区别

注意:cookie不是9大内置对象

因为cookie 不是9大内置对象之一,所以使用cookie时,必须要new
一个cookie的对象
技术图片


(三)application

全局变量:整个项目运行期间 都有效(切换浏览器,仍然有效),但是关闭服务器或者访问其他项目都不行
技术图片


(四)三个对象的对比

技术图片

以上是关于jsp的9大内置对象详解的主要内容,如果未能解决你的问题,请参考以下文章

JSP核心-9大内置对象

探索JSP中的 "9大内置对象!"

Jsp--9大内置对象

JSP - 9大内置对象及其API

JSP的9大内置对象和4打作用域对象

jsp 常用9大内置对象