JSP为了简化开发,提供了一些内置对象,用来实现很多JSP的应用。
在JSP中一共预先定义了9个这样的内置对象,分别为,request,response,session,application,out,pageContext,config,exception和page
一、request对象:
1.访问请求参数:request对象用于处理HTTP请求中的各项参数,最常用的就是获取访问请求参数:request.getParameter("");如果指定参数不存在,将返回null,如果指定了参数名,但是未指定参数值,返回空字符串。
2.在作用域中管理属性:在进行请求转发时,需要把一些数据传递到转发后的页面处理,这就需要request.setAttribute(String name,Object object)将数据保存到request范围内的变量中。可以通过getAttribute(String name)获取该变量的值
3.获取cookie:在互联网中,cookie是一小段文本,在网络服务器中生成,并发送给浏览器,通过cookie,可以标识用户身份,记录用户名和密码,跟踪重复用户等,浏览器将cookie以key/value的形式保存到客户机的某个指定目录中,getCookies()方法,获取所有的cookie对象的集合;通过cookie对象的getName()方法可以获取到指定名称的cookie;通过getValue()方法获得cookie对象的值,使用response对象的addCookie()方法,可以将cookie对象发送到客户端保存cookie;在想cookie保存的信息中,若包括中文,则需调用java.net.URLEncode类的encode()方法进行编码。读取时调用该类的decode()方法解码。
4.解决中文乱码问题:所有的request请求都是ISO-8859-1的,通过String的构造方法使用指定的编码类型重新构造一个String 对象new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8");
5.获取客户端相关信息
6.显示国际化信息
二、response对象
1.重定向网页:response.sendRedirect(String Path);浏览器的地址栏路劲会改变,进行重定向操作后,request对象中的属性对象全部失效,并且开始了一个新的request对象。
2.处理HTTP文件头:禁用缓存:在默认情况下,浏览器会对显示的网页内容进行缓存,再次访问时,若网页没有变化,则会直接显示缓存中的内容,在一些安全性较高的网站,通常需要禁用缓存。例子:通过设置HTTP头部的方法禁用缓存:<%response.setHeader("Cache-Control","no-store");response.setDateHeader("Expires","0")%>
设置页面自动刷新:例子:每隔10秒自动刷新网页一次:<%response.setHeader("refresh","10")%>,设置输出缓冲:通常情况下,服务器要输出到客户端的内容不会直接写在客户端,而是先写到一个输出缓冲区。
三、session对象
会话。由于HTTP协议是一种无状态的协议,即服务器不保存任何关于请求的信息。为了弥补这一去电,通过session可以在应用程序的web页面间进行跳转时,保存用户状态,使整个会话一直存下去,直到关闭浏览器,但是,在会话中,若客户端长时间不向服务器发出请求,session就会自动消失,这个时间取决于服务器,可以通过编程进行修改
1.创建及获取客户的会话:setAttribute()和setAttribute()存储或读取客户相关的信息
2.从会话中移除指定的绑定对象:removeAttribute(String name);
3.销毁session:invalidate()
4.会话超时的管理
四、application对象
application对象用于保存所有应用程序中的共有数据,在服务器启动时自动创建,服务器关闭时自动销毁,没有被销毁时,所有用户都可以共享该application对象,生命周期长,类似于系统的全局变量。
1.访问应用程序初始化参数:应用初始化参数在web.xml文件中设置,通过<context-param>标记应用初始化参数
application.getInitParameter(String name):返回已命名的参数值
application.getAtrributeNames();返回已定义的应用程序初始化参数名的枚举
2.管理应用程序环境属性
五、out对象
用户在浏览器内输出信息,并且管理应用服务器上的输出缓冲区,数超高压完毕,要及时关闭输出流
1.向客户端输出数据:提供print()和printIn()两种向页面输出信息的方法,print()方法和使用JSP表达式输出信息相同
2.管理响应缓冲:clear():清除缓冲区中的内容;clearBuffer():清除当前缓冲区中的内容;flush():刷新流;getBufferSize():获取缓冲区的大小
六、pageContext对象
获取页面上下文,通过它可以获取JSP页面的request、response、session、application、exception等对象
七、config对象
主要用于取的服务器的配置信息
八、page对象
page对象代表jsp本身,可以看做this关键词的别名
九、exception对象
用来处理JSP文件执行时发生的所有错误和异常,只有在page指令中设置为isErrorPage属性值为true的页面才可以使用
exception.getMessage()返回exception对象的异常信息字符串
注:page、pageContext、config、exception对象在实际开发中不常用