jsp九大内置对象常用方法及四个作用域
九大内置对象
jsp中的九大内置对象是自带的,不需要new 也能使用的对象
out:
print(),println( )方法
输出对象,向客户端输出内容
request:
请求对象,存储“客户端向服务端发送的请求信息”
request对象的常见方法:
- String getParameter(String name) :根据请求的字段名key (input标签的name属性值) ,返回字段值value (input标签的value属性值)
- String[] getParameterValues(String name):根据请求的字段名key ,返回多个字段值value (checkbox)
- void setCharacterEncoding("编码格式utf-8") :设置post方式的请求编码 (tomcat7以前默认iso-8859-1,tomcat8以后改为了utf-8)
- getRequestDispatcher("B.jsp").forward(request,response) :请求转发 的方式跳转页面 A - > B
- ServletContext getServerContext():获取项目的ServletContext对象
- Cookie getCookies():获取一个cookie对象
- void setAttribute(String name,Object obj):设置属性值(新增,修改)
- Object getAttribute(String name):根据属性名,查找属性值
response:
响应对象
response对象的常见方法:
- void addCookie( Cookie cookie ), 服务端向客户端增加cookie对象
- void sendRedirect(String location ) throws IOException :页面跳转的一种方式(重定向)
- void setContetType(String type):设置服务端响应的编码(设置服务端的contentType类型)
session:
会话对象,session存储在服务端
实现机制:客户端第一次请求服务端时,服务端会产生一个session对象(用于保存该客户的信息),并且每个session对象 都会有一个唯一的 sessionId( 用于区分其他session),且产生一个cookie,并且该cookie的name=JSESSIONID ,value=服务端sessionId的值;然后服务端会在响应客户端的同时将该cookie发送给客户端
客户端第二次请求服务端时,服务端会先用客户端cookie种的JSESSIONID 去服务端的session中匹配sessionid,如果匹配成功(cookie jsessionid和sesion sessionid),说明此用户 不是第一次访问,无需登录;
session对象的常见方法:
- String getId() :获取sessionId
- boolean isNew() :判断是否是 新用户(第一次访问)
- void invalidate():使session失效 (退出登录、注销)
- void setAttribute(String name,Object obj):设置属性值(新增,修改)
- Object getAttribute(String name):根据属性名,查找属性值
- void setMaxInactiveInterval(秒) :设置最大有效 非活动时间
- int getMaxInactiveInterval():获取最大有效 非活动时间
application:
全局对象
application对象的常见方法:
- String getContextPath() :虚拟路径
- String getRealPath(String name):绝对路径(虚拟路径 相对的绝对路径)
- void setAttribute(String name,Object obj):设置属性值(新增,修改)
- Object getAttribute(String name):根据属性名,查找属性值
pagecontext:
JSP页面容器
- void setAttribute(String name,Object obj):设置属性值(新增,修改)
- Object getAttribute(String name):根据属性名,查找属性值
config:
配置对象(服务器配置信息)
page:
当前JSP页面对象(相当于java中的this)
exception:
异常对象
四个作用域
四种范围对象 | 作用域 | |
---|---|---|
pageContext | (page对象) | 请求数据当前页面有效 |
request | 请求对象 | 请求数据同一次请求有效,(重定向后无效) |
session | 会话对象 | 请求数据同一次会话有效 |
appliation | 全局对象 | 请求数据全局有效(整个项目有效) |
以上4个对象共有的方法:
-
Object getAttribute(String name):根据属性名,查找属性值
-
void setAttribute(String name,Object obj) :设置属性值(新增,修改)
-
setAttribute("a","b") ;//如果a对象之前不存在,则新建一个a对象 ;如果a之前已经存在,则将a的值改为b
-
void removeAttribute(String name):根据属性名,删除对象
注意:尽量使用最小的范围。因为对象的范围越大,造成的性能损耗越大。