jsp内置对象

在jsp中一共预先定义了9个内置对象,分别为request、response、session、application、out、pageContext、config、page和exception。在使用jsp内置对象时,不需要先定义这些对象,直接使用即可。
request对象:
request对象封装了由客户端生成的http请求的所有细节,主要包括http头信息、系统信息、请求方式和请求参数等。
1、访问请求参数
request对象用于处理http请求中的各项参数,最常用的就是获取访问请求参数,当通过超链接的形式发送请求时,可以为该请求传递参数,通过在超链接后面加上英文半角的“?”来实现,当指定了多个参数时,各参数间使用”&“分隔。
例如:《A href=“result.jsp?id=1”》tiaozhuan《/A》,然后使用request的getParameter()方法获取传递的参数值,如果指定的参数不存在,将返回null,如果指定了参数名,但没有指定参数值,将返回空的字符串。
2、在作用域管理属性
在进行请求转发时,需要把一些数据传递到转发后的页面进行处理,可以通过setAttribute()方法将数据保存在request范围内的变量中。通过getAttribute()方法可以获取request范围内的变量。
3、获取cookie
cookie指小段的文本信息,通过键-值的形式保存。通过使用cookie可以标识用户身份,记录用户名和密码,跟踪重复用户等。在向cookie中保存的信息中,如果包括中文,这需要调用java.net.URLEncoder类的encode()方法将要保存到cookie中的信息进行编码,读取cookie中的内容时,还需要用decode()方法进行解码。
4、获取客户端信息
通过request对象可以获取客户端的相关信息。例如getRealPath()可以获取当前请求文件的绝对路径,getServerName()可以获取服务器的名字等等。
5、信息国际化
浏览器可以通过accept-language的http报头向web服务器指明它所使用的本地语言,request对象的getLocale()和getLocales()方法可以获取这一信息。获取的信息属于java.util.Locale类型。
例如:String str=“”;
java.util.Locale locale=request.getLocale();
if(locale.equals(java.util.Locale.US)){
str="welcome to this web";
}
if(locale.equals(java.util.Locale.CHINA)){
str="欢迎来到这个网站";
}
6、解决中文乱码
因为所有的request请求都是ISO-8859-1编码的,所以如果请求中含有中文的话,会出现乱码。要解决这个问题,可以通过过滤器或者将获取到的数据通过String的构造方法使用指定的编码类型重新构造一个String对象。
例如:new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
response对象:
response对象用于响应内容请求,向客户端输出信息。它封装了jsp产生的响应,并发送到客户端以响应客户端的请求。
1、重定向网页
使用request对象提供的sendRedirect()方法可以将网页重定向到另一个页面,重定向操作支持将地址重定向到不同的主机上,这一点与请求转发不同。进行重定向操作后,request中的属性全部失效,并且开始一个新的request对象。
2、处理http文件头
通过response对象可以设置http响应报头,其中,最常用的是禁用缓存、设置页面自动刷新和定时跳转网页
2.1、禁用缓存
在默认的情况下,浏览器将会对显示的网页内容进行缓存,这样,当用户再次访问相关网页时,浏览器会判断网页是否有变化,如果没有变化则直接显示缓存的内容,这样可以通过提高网页速度,对于一些安全性要求较高的网页,通常需要禁用缓存
response.setHeader("Cache-Control","no-store");
response.setDateHeader("Expires",0);
2.2、设置页面自动刷新
response.setHeader("refresh","10");
2.3、定时跳转网页
response.setHeader("refresh","10;URL=result.jsp");
3、设置输出缓冲
通常情况下,服务器要输出到客户端的内容不会直接写到客户端,而是先写到一个输出缓冲区。
session对象:
session在网络中被称为会话。由于http协议是一种无状态的协议,也就是当一个客户向服务器发出请求,服务器接收请求,并返回响应后,该连接就结束了,而服务器不保存相关的信息。为了弥补这一缺点,http协议提供了session,通过session可以再应用程序的web页面进行跳转时,保存用户的状态,使这个会话一直存在下去,知道关闭浏览器,但是如果一个会话如果客户端长时间不向服务器发送请求,session对象会自动消失。
application对象:
application对象用于保存应用程序中的公有数据,他在服务器启动时自动创建,在服务器停止时销毁,类似于系统的“全局变量”。
out对象:
out所属的类是JspWriter,response.getWriter()所属的类是PrintWriter,JspWriter相当于一个带缓存功能的PrintWriter。他不是直接将数据输出到页面,而是将数据刷新到response的缓冲区再输出,而PrintWriter是直接输出到页面,当缓冲区溢出并且没有刷新时使用out.print()会报错,同时使用out.print()和response.getWriter.write()会先执行后者。
pageContext对象:
pageContext对象是指页面上下文,他是一个特殊的对象,通过它可以获取其他内置对象,但在实际开发中很少使用,因为其他内置对象可以直接使用,没有必要通过pageContext。
config对象:
config对象主要用于取得服务器的配置信息
page对象:
page对象代表jsp本身,只有在jsp页面内才是合法的。
exception对象:
exception对象用来处理jsp文件执行时发生的所有错误和异常,只有在page指令中设置isErrorPage属性为true的页面中才可以被使用,在一般的jsp文件中使用该对象将无法编译jsp文件。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值