1.什么事JSP内置对象
JSP内置对象,就是在编写JSP页面时,不需要做任何声明就可以直接使用的对象。例如下面代码:
<%
int[] value = {60,70,80};
for (int i : value){
out.print(i);
}
%>
代码out.print( )可以直接实现页面的输出显示,但是在代码中并没有任何地方声明和创建这个out对象,没有创建就可以直接使用的原因是out对象是JSP内置对象之一。
除了out对象以外,在JSP中还有一些其他的内置对象,有:out session request application response。如图:
JSP内置对象 out
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上 |
JSP内置对象session
session:会话,指在一段时间内,一个用户与Web服务器的一串相关的交互过程,他可以包含浏览器与服务器之间的多次请求、响应过程。使用session可以保存当前每个用户的会话状态信息,一个用户对应一个信息。
每个session对象都与一个浏览器窗口对应 ,重新开启一个浏览器窗口,可以重新创建一个session对象(不同版本浏览器可能有所差别)
通过超链接打开的新窗口,新窗口的session与其父窗口的session相同
当浏览器关闭时,会话失效
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对应的对象 |
会话的失效
会话失效
三种方法:
- 通过session.setMaxInactiveInterval()方法设值,单位为秒
- 在项目的web.xml中设置,单位为分钟
- 在Tomcat服务器设置,/conf/web.xml中找到<session-config>元素,其中<session-timeout>元素中的30就是默认时间,单位是分钟,可以修改其值
手动设置会话失效
调用session.invalidate()方法,主要应用于用户注销的场合,该会话失效
若只想清空会话中绑定的某个数据对象,可以调用session.removeAttribute(String key)方法,将指定的对象从会话中清除,会话依然有效
include指令
JSP提供了文件引用指令include。我们可以将一些可以重用的内容写入一个单独的文件中,然后通过include指令引用改文件,缓解代码冗余的问题,并方便代码的修改
JSP内置对象application
application对象类似于系统的“全局变量”,用于同一个应用内的所有用户之间的数据共享
application对象的常用方法
方法名称 | 说明 |
---|---|
void setAttribute(String key,Object value) | 以key/value的形式将对象存储到application中 |
Object getAttribute(String key) | 通过key获取application中存储的对象 |
String getRealPath(String path) | 返回相对路径的真实路径 |
JSP常用内置对象
内置对象名称 | 说明 |
---|---|
out对象 | 用于向客户端输出数据 |
request对象 | 主要用于处理客户端请求的数据信息 |
response对象 | 用于响应客户端请求并向客户端输出信息 |
session对象 | 用于记录会话状态的相关信息 |
application对象 | 类似于全局变量,用于实现web应用中的资源共享 |
JSP的其他内置对象(了解)
pageContext:提供了在JSP运行时访问和其相关的环境信息的能力。通过pageContext对象可以访问和当前JSP页面相关联的所有作用域(当前页作用域),以及一些页面属性
pageContext常用方法 :
内置对象名称 | 说明 |
---|---|
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的页面)中才能够使用