什么是JSP内置对象
JSP内置对象,就是编写JSP页面时,不需要做任何声明就可以直接使用的对象,列如下面的代码片段。
<%
int [] value = { 60 , 70 , 80};
for(int i : value){
out.print(i);
}
%>
代码out.print()可以实现页面的输出显示,但是在代码中并没有任何地方声明和创建这个out对象,没有创建就可以直接使用的原因是out对象是JSP内置对象之一。
除了out对象以外,在JSP中还有一些其他的内置对象。如下图:
out内置对象是在JSP开发过程中使用最频繁的对象,同时使用起来也是最简单的。out对象用于向浏览器输出数据,其常用的方法就是print(),这个方法用于在页面中显示字符串信息。
<%
out.print("Hello JSP");
%>
JSP内置对象request
request是用于处理请求数据的。request对象也是最常用的JSP内置对象之一,其中包含啦有关浏览器请求的信息。其工作原理:
request对象常用方法
方法名称 | 说明 |
---|---|
String getParameter(Strring name) | 根据页面表单组件名称获取页面提交数据 |
String[] getParameterValues(String name) | 获取一组以相同名称命名的表单组件提交的数据 |
void setCharacterEncoding(String charset) | 指定每个请求的编码,在调用request.getParameter()方法之前进行设定,可以用于解决中文乱码问题 |
RequestDispatcher getRequestDispatcher(String path) | 返回一个java.servlet.RequestDispatcher对象,该对象的forward()方法用于转发请求 |
JSP内置对象response
与request对象相对应的对象是response对象,response对象可用于设置响应参数及取得响应流等,其工作原理:
于request对象一样,response对象也提供啦多个方法用于处理HTTP响应。
response对象的常用方法
方法名称 | 说明 |
---|---|
void addCookie(Cookie cookie) | 向客户端添加Cookie |
void setContentType(String type) | 设置HTTP响应的contentType类型 |
void setCharacterEncoding(String charset) | 设置响应所采用的字符编码类型 |
void sendRedirect(String location) | 将请求重新定位到一个新的URL上 |
内置对象session
方法名称 | 说明 |
---|---|
String getId() | 获取sessionid |
void setMaxInactiveInterval(int interval) | 设置session过期时间,单位为秒 |
int getMaxInactiveInterval() | 获取session过期时间,单位为秒 |
void invalidate() | 设置session对象失效 |
void setAttribute(String key,Object value) | 以key/value的形式将对象保存到session中 |
Object getAttribute(String key) | 通过key获取session中保存的对象 |
void removeAttribute(String key) | 从session中删除指定key对应的对象 |
内置对象application
方法名称 | 说明 |
---|---|
void setAttribute(String key,Object value) | 以key/value的形式将对象存储到application中 |
Object getAttribute(String key) | 通过key获取application中存储的对象 |
String getRealPath(String path) | 返回相对路径的真实路径 |
application对象类似于系统的“全局变量”,用于同一个应用内的所有用户之间的数据共享。
JAVA内置对象
内置对象名称 | 说明 |
---|---|
out对象 | 用于向客户端输出数据 |
request对象 | 主要用于处理客户端请求的数据信息 |
response对象 | 用于响应客户端请求并向客户端输出信息 |
session对象 | 用于记录会话状态的相关信息 |
application对象 | 类似于全局变量,用于实现web应用中的资源共享 |
JSP的其他内置对象
pageContext:提供了在JSP运行时访问和其相关的环境信息的能力。通过pageContext对象可以访问和当前JSP页面相关联的所有作用域(当前页作用域),以及一些页面属性
常用方法:
ServletRequest getRequest():获得request对象
ServletResponse getResponse():获得response对象
HttpSession getSession:获得session对象
JspWriter getOut():获得out对象
void setAttribute():保存属性
Object getAttribute():获得属性
void include():请求指定的资源,并将目标资源的响应结果包含在调用页面的响应中
page:表示当前页面,类似于Java中的this。在JSP页面中,很少使用page对象
config:用于存放JSP编译后的初始数据。与page对象一样,在JSP页面中很少使用
exception:表示JSP页面运行时产生的异常和错误信息,该对象只有在错误页面(page指令中设定isErrorPage为true的页面)中才能够使用
对象的作用域
在JSP中,提供了四种作用域,分别是page作用域、request作用域、session作用域和application作用域
page作用域
page作用域指单一JSP页面的范围,page作用域内的对象只能在创建该对象的页面中访问。page作用域可以使用pageContext对象的setAttribute()和getAttribute()方法进行访问。page作用域在客户端每次请求jsp页面时创建,在服务器发送响应或请求转发到其他页面或资源后失效。
request作用域
request作用域:一次请求,与客户端的请求绑定在一起。其作用域范围比page大,可以通过调用request对象的setAttribute()和getAttribute()方法进行访问。request作用域在页面转发中同样有效,通过调用RequestDispatcher的forward()方法进行转发,或调用其include()方法将页面包含,都可以共享request作用域。
每次新请求都会创建一个新的request作用域,请求结束时该作用域失效。
session作用域
session作用域:一次会话,即浏览器打开到关闭。在会话有效期内,只要将数据绑定到session作用域中,则该数据可以被本次会话中的其他页面所访问。可以通过session.setAttribute() 和session.getAttribute()方法进行访问其作用域。
application作用域
application作用域:整个web应用,即从tomcat启动到停止,被该应用下的所有用户共享。通过application.setAttribute() 和application.getAttribute()方法进行访问