JSP脚本中的9大内置对象

JSP脚本中包含9个内置对象
request,response,application,session,page, pagecontext, exception,config,out),这9个内置对象都是servlet API接口的实例,只是JSP规范对他们进行了默认初始化(由JSP页面对应的servlet的_jspService方法来创建这些实例)。也就是说,他们已经是对象,可以直接使用。(注:由于JSP内置对象都是在_jspService方法中完成初始化的,因此只能在JSP脚本、JSP输出表达式中使用这些内置对象。如果在JSP声明中使用它们,系统会提示找不到这些变量

在介绍这些几个内置对象之前,我们先来分析一下,web 应用的一个工作流程:

启动线程————>客户端数据通过iO流的方式被读取到服务端——>服务端解析客服端传过来的参数————–>服 务处理用户请求————->生成数据响应————->使用IO流向客户端发送处理的结果(返回视图)。

在上述过程中,我们通常使用request来封装用户的请求参数,request是HttpServletRequest接口的实例,他提供了一系列的获取请求参数的方法其中比较常用的是getParameter(String paramName)方法。当然,由于客户端发起请求参数的多样性。因此,request可以接收Map、Enumeration、字符串数组等类型的数据。更厉害的是,他也封装了获取请求头的方法,这个没用过,就不多言了。

在利用request获取参数的时候,一般会利用setCharacterEncoding(”utf-8”)来设置request的字符集编码。

在request中还有两个比较重要的方法setAttribute(String name,Object attrValue) , getAttribute(String name)分别对应设置参数和获取参数,因为request属性只在当前的请求中有效,利用上面方法我们可以验证动作指令forward的特性;

除此之外,request还可以封装处理结果,通过request.getRequestDispatcher(String path).forward(request, response)显示结果在path路径下的页面,path是要forward的目标页面的地址。除了转发页面响应,request还可以执行include,和上面的方法相似:request.getRequestDispatcher(String path).include(request, response)这时path路径下的JSP页面将会包含在目标页面中。

与request相对应的,我们在响应用户请求时使用的比较多的是response对象,他有两个常用的方法 getOutputStream和sendRedirect(String path)。大部分的时候,程序无需使用response来响应用户的请求,因为有更简单的对象—-out,它代表页面输出流,直接使用out输出响应更简单。但是out是基于字符流的,因此在涉及到一些字节数据的操作时,只能采用response来完成响应输出。除此之外我们还可以使用response来从定向网页,以及用于向客户端添加cookie。

  1. application:Javax.servlet.ServletContext的实例,该实例代表JSP所属的web应用本身,可用于JSP页面,或者在servlet之间交换信息。常用的方法有getAttribute(String attName)setAttrbute(String attName,attrvalue)getInitParameter(String paramName)等。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值