1.JSP 9大内置对象
JSP内置对象:不需要做任何声明就可以直接使用的对象。
request、response、session、application、out、pageContext、config、page和exception
内置对象名 | 说明 |
request | 该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据 |
response | 实现用户响应 并向客户端输出信息 |
session | 用于记录会话状态的相关信息 |
application | 对象类似于系统的“全局变量”,用于同一个应用内的所有用户之间的数据共享。 |
out | 用于向客户端输出数据 |
pageContext | 封装了WEB开发中经常涉及到的一些常用操作,例如包含和跳转到其他资源,检索其他域对象中保存的值等等 |
config | 配置替换 |
page | page作用域在客户端每次请求jsp页面时创建,在服务器发送响应或请求转发到其他页面或资源后失效 |
exception | 代表异常,代表Java程序在正常运行期间发生并意图捕获的场景(或者说条件) |
2.四大对象的作用域
在JSP中,提供了四种作用域,分别是page作用域、request作用域、session作用域和application作用域
(1). page作用域
page作用域指单一JSP页面的范围,page作用域内的对象只能在创建该对象的页面中访问。page作用域可以使用pageContext对象的setAttribute()和getAttribute()方法进行访问。page作用域在客户端每次请求jsp页面时创建,在服务器发送响应或请求转发到其他页面或资源后失效。
page作用域常用方法:
方法名称 | 说明 |
---|---|
String getParameter(String name) | 根据页面变淡组件名称获取页面提交数据 |
String[] getParameterValues(String name) | 获取一组以相同名称命名的表单组件提交的数据 |
void setCharacterEncoding(String charset) | 指定每个请求的编码,在调用request.getParameter()方法之前进行设定,可以解决中文乱码问题 |
RequestDispatcher getRequestDispatcher(String path) | 返回一个javax.servlet.RequestDispatcher对象,该对象的forword()方法用于转发请求 |
(2).request作用域
request作用域:一次请求,与客户端的请求绑定在一起。其作用域范围比page大,可以通过调用request对象的setAttribute()和getAttribute()方法进行访问。request作用域在页面转发中同样有效,通过调用RequestDispatcher的forward()方法进行转发,或调用其include()方法将页面包含,都可以共享request作用域。
每次新请求都会创建一个新的request作用域,请求结束时该作用域失效。
request作用域常用方法:
方法名称 | 说明 |
---|---|
void addCookie(Cookie cookie) | 向客户端添加Cookie |
void setContentType(String type) | 设置HTTP响应的contentType类型 |
void setCharacterEncoding(String charset) | 设置响应所采用的字符编码类型 |
void sendRedirect(String location) | 将请求重新定位到一个新的URL上(重定向) |
(3).session作用域
session作用域:一次会话,即浏览器打开到关闭。在会话有效期内,只要将数据绑定到session作用域中,则该数据可以被本次会话中的其他页面所访问。可以通过session.setAttribute() 和session.getAttribute()方法进行访问其作用域。
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对应的对象 |
(4).application作用域
application作用域:整个web应用,即从tomcat启动到停止,被该应用下的所有用户共享。通过application.setAttribute() 和application.getAttribute()方法进行访问
application作用域常用方法:
方法名称 | 说明 |
---|---|
void setAttribute(String key,Object value) | 以key/value的形式将对象存储到application中 |
Object getAttribute(String key) | 通过key获取application中存储的对象 |
String getRealPath(String path) | 返回相对路径的真实路径 |