01 介绍
- jsp内置对象是web容器创建的一组对象,不使用new关键字就可以使用内置对象
- 语法:
<%
int value[]={1,2,3,4,5};
for(int i : value){
out.println(i);//out即内置对象,可以直接使用
}
%>
常用的五大内置对象:out,request,response,session,application
不太常用的内置对象:page,pageContext,exception,config
02 常用内置对象的介绍
2.1 out对象
- jspWriter类的实例,是向客户端输出内容常用的对象
- 常用的方法:
- void println()向客户端打印字符串
- void clear()清除缓存区的内容,在flush方法之后调用会异常
- void clearBuffer()清除缓存区的内容,在flush方法之后调用不会异常
- void flush()将缓冲区内容输出到客户端
- int getBufferSize()返回缓冲区以字节数的大小
- int getRemaining()返回缓冲区还剩余多少可用
- boolean isAutoFlush()返回缓冲区满时,时自动清空还是抛出异常
- void close()关闭输出流
2.2 request对象
- 客户端的请求信息封装在request对象中,通过它才能了解客户的需求,然后做出响应,
- request对象具有请求域,在完成客户端的请求之前,该对象一直有效。
- 常用方法:
- String getParameter(String name)返回name指定参数的参数值
- String getParameterValues(String name)返回包含参数name的所有值的数组,在页面中常用checkbox
- void setAtrribute(String name,Object object)存储此请求中的属性
- object getAttribute(String name)返回指定属性的属性值
- request方法在获取页面的信息时,出现乱码要加语句:
request.setCharacterEncoding("utf-8");
2.3 response对象
- response对象包含了响应客户端请求的有关信息,但在jsp中很少直接用到,
- response对象具有页面作用域,即访问一个页面时,该页面的response对象只能对这次访问有效,其他页面的response对象对当前页面无效。
- 常用方法:
- String getCharacterEncoding()返回响应应用的时何种字符编码
- void setContentType(String type)设置响应的mime类型
- PrintWriter getWriter()返回可以向客户端输出字符的一个对象(即向客户端输出)
- sendRedirect(java.lang.String location)重新定向客户端的请求
- 注意比较priterwriter与内置out对象的区别:当同时用priterwriter对象和out对象,无论二者的先后,最终显示都是先输出out对象的内容,除非先调用out对象的flush方法,强制输出缓存区的内容
2.4 session对象
- 表示客户端与服务器的一次会话,
- 具体到web中的session指的就是用户在浏览一个网站时,从进入网站到浏览器关闭所经历的这段时间
- session是保存在服务器的内存中,同时一个用户对应一个session,客户与session是一一对应的
- session对象是jsp的内置对象,在用户打开第一个jsp页面时自动创建,完成会话期管理
- 服务器通过session对象来确定在不同页面切换的是否是同一个用户
常用方法:
- long getCreationTime() 返回session创建的时间(毫秒)
- public String getId() 返回session创建时jsp引擎为他设定的唯一id号
- Public Object setAttribute(String name,Object value) 使用指定名称将对象绑定到此会话
- Public Object getAttribute(String name) 返回与此会话中指定名称绑定在一起的对象,没有返回null
- String[] getValueNames() 返回一个包含session所有可用属性的数组
- int getMaxInactiveInterval() 返回两次请求间隔多长时间此session被取消
- void setMaxInactiveInterval()通过此方法设定session最长生存周期,单位是秒
如果想从毫秒转换成时分秒,使用Java自带类就可以,先在page的include属性中导入java.text.*包,之后
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date date = new Date(sesson.getCreateTime());
sdf.format(date);
2.5 application对象
- application对象实现了用户间的数据共享,可存放全局变量
- application开始于服务器的启动,终止于服务器的关闭
- 在用户的前后连接或不同用户之间的连接中,可以对application对象的同一属性进行操作
- 在任何地方对application对象属性的操作,都将影响到其他用户对此的访问
- 常用方法:
- public void setAttribution(String name,Object object)使用指定名称将对象绑定到此会话
- public Object getAttribution(String name)返回与此会话指定名称绑定在一起的对象,没有则返回null
- Enumeration getAtrributeNames()返回所有可用属性名的枚举
/**
*利用Java中自带的枚举类来遍历属性,这里要注意,
*application自带很多属性,所有枚举打印之后不仅仅有用户设定的
*/
Enumeration values =application.getAttributeNames();
while(values.hasMoreElements()){
out.println(values.nextElement()+" ");
}
03 不常用内置对象
3.1 pageContext对象
- pageContext对象提供了对jsp页面内所有对象及命名空间的访问
- pageContext对象可以访问到本页所在的session,也可以获取本页面所在的application的某一属性值
- pageContext对象相当于页面中所有功能的集大成者
- 常用方法
- void setAttribute(String name,Object object)设置属性及属性值
- int getAttributeScope(String name)返回某属性的作用范围
- Object getAtrribute(String name,int Scope)在指定范围内取属性的值
- void forward(String relativeURLpath)跳转到另一个页面
- void include(String relativeURLpath)在当前位置包含另一个文件,在当前位置会显示包含页面的全部内容
3.1 Config对象
- config对象是一个在servlet初始化时,jsp引擎向他传递信息用的,此信息包括servlet初始化时所要用到的参数(键值对的形式)以及服务器有关的信息
3.2 Exception对象
- exception对象是一个异常对象,当一个页面在运行过程中发生了异常,就产生这个对象,
- 如果一个jsp页面要应用此对象,就必须把i**sErrorPage设置为true**(isErrorPage是page的一个属性,默认是false),否则无法编译。
- 流程:
A.jsp的page属性errorPage是用来设定发生异常时要跳转到的页面的url,假设是B.jsp,B.jsp的page属性的isErrorPage要设定为true,这样B.jsp就是作为异常处理的页面,显示异常信息 - 常用方法
- String getMessage()返回描述异常的消息
- String toString()返回关于异常简短描述消息
接下来请学习:
JSP学习笔记(三)之状态管理与参数传递