jsp的九大内置对象定义及作用

1.什么叫做内置对象?

答:在jsp中,有一些对象即开发者不需要自己去创建对象(全部由系统创建好),就可以直接使用对象调用相应的方法,这些由系统创建的对象称为内置对象。

2.九大内置对象分别是哪些?

内置对象名 类型 对象名 作用域

四大作用域对象:

request javax.servlet.http.HttpServletRequest 请求对象 Request

session javax.servlet.http.HttpSession 会话对象 Session

application javax.servlet.ServletContext 应用程序对象 Application

pageContext javax.servlet.jsp.PageContext 页面上下文对象 Page

两个输出

out javax.servlet.jsp.JspWriter 输出对象 Page

扫描二维码关注公众号,回复: 12409268 查看本文章

response javax.servlet.http.HttpServletResponse 响应对象 Page

三个打酱油

page java.lang.Object 页面对象 Page

config javax.servlet.ServletConfig 配置对象 Page

exception java.lang.Throwable 例外对象 Page

对作用域的解释:

Page域:只能在当前jsp页面使用(当前页面)。

Request域:只能在同一请求中使用(转发)。

Session域:只能在同一会话(session会话)中使用(私有的)。

Context(Application)域:只能在一个web应用中使用(全局)。

3.一一解析各个内置对象

3.1 request 对象

该对象代表客户端的请求信息,主要用于接收通过HTTP协议传送到服务器的数据(包括请求头信息,系统信息,请求方法以及请求参数等)。request对象的作用域为一次请求。

3.1.1 常用方法:

getParameter(String name) :返回指定参数名称的数值,如果没有相对应的数值则返回null。

getParameterValues(String name):返回具有相同参数名称的数值的集合,返回String类型的数组。

getRequestDispatcher(String uripath):页面的转发,地址不会发生改变,因为针对客户端来说只发送一次请求。

3.2 session 对象

session对象是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。session对象内部使用Map类来保存数据的,因此保存数据的格式为“key/value”。

session对象的value可以使用复杂的对象类型,不仅仅局限于字符串类型。

3.2.1 session对象就做会话:即每次浏览器访问网站,服务器就会给这个请求创建一个会话,存储到服务器端,服务器根据每一个会话的ID区别每一个请求的用户。

3.2.2 常用方法:

setAttribute(String key,Object obj):以key/value形式保存数据。

getAttribute(String key:通过key获取数据。

getId:获取session id。

invalidate():设置session对象失效。

setMaxInactiveInterval(int interval):设置session对象的有效期。

removeAttribute(String key):移除session中的属性。

3.2.3 Session过期时间的三种设置方式:

a. 在tomcat服务器的web.xml文件中进行设置,tomcat默认时间为30分钟。

web.xml文件在conf文件夹下,具体设置如下:(单位为分钟)

30

b. 在项目中的web.xml文件中进行设置:

设置方法如a,优先顺序b>a,也就是说b设置了,a就无效了。

c. 在代码中设置:通过setMaxInactiveInterval()方法设置。

3.2.4 session 的销毁

a. 设置的时长到了以后自动销毁,常见的情况就是你在一个页面长时间不进行操作就要重新登录。

b. 调用invalidate()方法摧毁,常见的情况是注销登录。

3.2.5 注意事项

Session的存储类型可以是任意类型。存储位置在服务器端,安全性比较高。

在同一台电脑中,不同的浏览器也认为是不同的用户,也会分配一个session id。

session也会随着浏览器的关闭而失效。但请注意,session还会保留在服务器端,一直到设定的时间,才真正的被销毁。

3.3 application对象

application对象可以将信息保存在服务器中,知道服务器关闭,否则application对象中保存的信息会在整个应用中都有效。与session对象相比,application对象的生命周期更长,类似于系统的“全局变量”。

整个应用程序中只有一个,所有的用户都可以访问到,安全性较高。随应用程序启动就产生,一直保存在服务器端,通常用于存储一些所有用户都需要的数据。

3.4 pageContext 对象

pageContext对象的作用是取得任何范围的参数,通过它可以获取jsp页面的out,request,response,session,application等对象。pageContext对象的创建和初始化都是由容器来完成的,在jsp页面中可以直接使用pageContext对象。

3.4.1 使用场景:在自定义标签时会频繁的使用pageContext对象;或者是定义一个方法需要用到多个对象时,传一个pageContext对象

就能解决问题。

3.5 out对象

out对象用于在web浏览器内输出信息,并管理应用服务器上的输出缓存区。在使用out对象输出数据时,可以对数据缓存区进行操作,及时清理缓存区中的残余数据,为其他的输出让出缓存空间。待数据输出完毕后,要及时关闭输出流。

PrintWriter:writer(“内容”); 直接向浏览器输出内容

JspWriter:writer(“内容”); 向jsp缓存区写出内容

JspWriter当满足一下条件之一时,缓存区的内容写出:

a. 缓存区满了

b. 刷新缓存区

c. 关闭缓存区

d. jsp页面执行完毕

3.6 response 对象

response对象代表对客户端的响应,主要是将jsp容器处理过对象传回到客户端。response对象也有作用域,它只是在jsp页面内有效。

Response对象叫做响应,服务器端对客户端的请求作出响应。

常用方法:

response.sendRedirect (“index.jsp”);

页面的重定向,地址会改变,因为针对客户端来说,一共发生了两次请求。

3.7 page 对象

page对象代表jsp本身,只有在jsp页面内才合法。page隐含对象本质上包含当前servlet接口引用的变量,类似于Java编程中的this指针。

3.8 config 对象

confige对象的主要作用于取得服务器的配置信息。通过pageContext对象的getServletConfig()方法可以获取一个

config对象。当一个Servlet初始化时,容器把某些信息通过config对象传达给这个servlet。开发者可以在web.xml文件中为应用程序环境中的servlet程序和jsp页面提供初始化参数。

3.9 exception 对象

exception对象的作用是显示异常信息,只有在包含isErrorPage="true"的页面中才可以使用的,一般的jsp页面中使用该对象将无法编译jsp文件。exception对象和Java的所有对象一样,都具有系统提供的继承结构。exception对象几乎定义了所有异常情况。在Java程序中,可以使用try/catch关键字来处理异常情况;如果在jsp页面中出现没有捕获到的异常,就会生成exception对象,并把exception对象传送到page指令中设定的错误页面中,然后在错误的页面中处理相应的exception对象。

猜你喜欢

转载自blog.csdn.net/weixin_45856580/article/details/103112371