《JSP2.0 技术手册》读书笔记五-隐含对象

何为隐含对象呢?就是指在jsp网页中,不需要做任何的声明和实例化,就可以直接使用的对象。它们有9个:request(HttpServletRequest), response(HttpServletResponse), pageContext, session, application(ServletContext),out(JspWriter), config(当前jsp页面的servletconfig),page(Object,如同java的this), exception(java.lang.Throwable)。其中request, session, application和pageContext均有方法setAttribute()/getAttribute()来设定和取得属性,以此达到数据传递。

在了解隐含对象的具体作用前,我们先了解JSP的作用域 ,为正确使用隐含对象做准备。

Page: 指的是单单一页jsp网页的范围。若数据设为page范围,则数据只能在同一个jsp网页上取得,其他网页无法获得该数据。

Request:指在从一jsp网页发出请求到另一个jsp网页之间,随后属性失效。

Session:作用范围为用户持续与服务器连接的时间,与服务器断开后,属性失效。

Application:作用范围在服务器一开始执行到关闭为止。

 

 

下面我们来了解各隐含对象的使用

与servlet有关的隐含对象:

page代表JSP网页本身,准确说是代表jsp转译后的servlet,因此可以使用servlet接口的方法。很少使用。

config存放servlet初始化的数据,实现了javax.servlet.servletconfig,因此可以使用getInitParameter(name)等方法。很少使用。

与Input/output有关的隐含对象:

request 包含请求的信息,除了存取属性的方法外,还可以使用javax.servlet.http.HttpServletRequest接口的其他方法如下:

获得jsp页面传来的参数(jsp标签定义的参数,如<input type="text" name="user"/>):String getParameter(name)/Enumeration getParameterNames()/String[] getParameterValues(String name)。其他方法不常用了,如获得http标头,请求的url/ip/session ID等。

 

response主要将jsp处理后的数据传回客户端。是javax.servlet.http.HttpServletResponse接口的对象。常用方法有:

设定响应状态-sendError(int 状态码)、sendError(int 状态码, string msg)、setStatus(int 状态码);

重写URL-String encodeRedirectURL(string url)、String encodeURL(String url)。

举下response的有意思的用法如下:

        

 

out对象能把结果输出到网页,主要有out.println(string)/out.print(string)。

 

与Context有关的隐含对象

session对象可以让服务器辨别用户。方法可以参考笔记HttpSession。需要注意的是,如果在jsp网页中指定:<%@page session="false" %>则该页面不能使用session对象。

 

application提供服务端的上下文,说明哪些资源可用,哪些信息可取,具有Application范围作用域,即从服务器启动到服务器关闭均有效。具体方法可以参考api,参考笔记中的ServletContext介绍。

 

pageContext能存取其他隐含对象,如果隐含对象支持存取属性(如session等),pageContext可以直接操作它们中的属性。

获取各隐含对象的方法有:getException()/getOut()/getRequest()等。

 

与Error有关的隐含对象

当jsp网页有错误时会产生异常,exception就针对这个异常做处理。若要在该页面使用exception对象必须指定

<%@ page isErrorPage="true" %>,一般这个页面就专门作为错误页面使用。方法有getMessage(),printStackTrace(Print
Writer)等。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值