9大内置对象及其API

时间:2021-07-12 00:45:47

内置对象:不需要预先声明就可以在脚本代码和表达式中随意使用,有以下特点

1.由JSP规范提供,不用编写者实例化

2.提供Web容器实现和管理

3.所有JSP页面均可用

4.只有在脚本元素的表达式或者代码中才可使用(<%=使用内置对象%>或<%使用内置对象%>)

输入输出对象:request,response,out

通信控制对象:pageContext,session,application

Servlet对象:page,config

错误处理对象:exception

1. request - 请求对象 javax.servlet.httpServletRequest

request 对象是 javax.servlet.httpServletRequest类的实例,该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。

request对象的作用域为一次请求,发送请求时,该对象创建,一次请求结束后即销毁(一次请求,产生一个request对象)

该对象封装了用户提交信息,通过调用该对象相应的方法以获取封装的信息,使用该对象,可以获取用户提交的信息。

1 String getParameter(String name)返回name指定参数的参数值

2 Enumeration getParameterNames()返回可用参数名的枚举

3 String[] getParameterValues(String name) 返回包含参数name的所有值的数组

4 void setAttribute(String key,Object obj) 设置属性的属性值

5 object getAttribute(String name) 返回指定属性的属性值(即setAttribute中参数key的值)

6 Enumeration getAttributeNames() 返回所有可用属性名的枚举 

7 String getProtocol() 返回请求用的协议类型及版本号

8 String getServerName() 返回接受请求的服务器?*? 

9 int getServerPort() 返回服务器接受此请求所用的端口号 

10 BufferedReader getReader() 返回解码过了的请求体 

11 String getRemoteAddr() 返回发送此请求的客户端IP地址 

12 String getRemoteHost() 返回发送此请求的客户端?*? 

13 String getScheme() 返回请求用的计划名,如:http.https及ftp等 

14 String getRealPath(String path) 返回一虚拟路径的真实路径

15 String getCharacterEncoding() 返回字符编码方式

16 int getContentLength() 返回请求体的长度(以字节数)

17 String getContentType() 得到请求体的MIME类型

18 ServletInputStream getInputStream() 得到请求体中一行的二进制流

2. response - 响应对象 javax.servlet.http.HttpServletResponse

response代表的是对客户端的响应,主要是将JSP容器处理过的对象传回给客户端

对客户端请求做出动态响应,向客户端发送数据,响应客户端请求时建立,响应结束时销毁(一次响应,产生一个response对象)

动态响应contentType属性:

当一个用户访问了一个jsp页面时,如果该页面用page指令设置页面的contentType属性为text/html,那么jsp引擎将按照这个属性值做出反应。如果要动态改变这个属性值来响应客户,就需要使用Response对象

1 String getCharacterEncoding() 返回响应用的是何种字符编码 

2 ServletOutputStream getOutputStream() 返回响应的一个二进制输出流 

3 PrintWriter getWriter() 返回可以向客户端输出字符的一个对象 

4 void setContentLength(int len) 设置响应头长度 

5 void setContentType(String type) 设置响应的MIME类型 

6 sendRedirect(Java.lang.String location) 重新定向客户端的请求

3. session - 会话对象 javax.servlet.http.HttpSession

在页面的page指令加上session="true" 或缺省 情况下以及在servlet中使用request.getSession();的方式进行创建。超时或服务停止时,session结束。(一个用户对应一个session对象)

什么是session对象?——它是一个jsp内置对象,它在第一个jsp被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离   开这个服务器结束(或者超时),被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要创建session对象

session对象的ID——当一个客户首次访问服务器上的一个jsp页面时,jsp引擎会产生一个session对象,同时分配一个String类型的的ID号,jsp引擎同时将这个ID号发送到客户端,存放在cookie中,这样,,session对象直到客户关闭浏览器后,服务器端,该客户的session对象才会消失,会并,和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象

1 long getCreationTime() 返回Session创建时间 

2 public String getId() 返回Session创建时,JSP引擎为它分配的惟一id号 

3 long getLastAccessedTime() 返回此Session里客户端最近一次请求时间 

4 int getMaxInactiveInterval() 返回两次请求间隔多长时间此Session被取消(ms) 

5 String[] getValueNames() 返回一个包含此Session中所有可用属性的数组 

6 void invalidate() 取消Session,使Session不可用 

7 boolean isNew() 返回服务器创建的一个Session,客户端是否已经加入 

8 void removeValue(String name) 删除Session中指定的属性 

9 void setMaxInactiveInterval() 设置两次请求间隔多长时间此Session被取消(ms)

4. application - 应用程序对象 javax.servlet.ServletContext