zoukankan      html  css  js  c++  java
  • 《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)等。

  • 相关阅读:
    TP5 中通过Request获取到的 Action不同的环境,大小写不一样
    正则符号
    ubuntu mysql卸载重装
    ubuntu 多域名配置
    微信小程序-开发入门(一)
    Maven通过profiles多环境配置打包
    GitLab多机备份与恢复操作
    动态增加linux目录大小
    MQ队列及常见操作
    ②将SVN迁移到GitLab-多分支多标签迁移
  • 原文地址:https://www.cnblogs.com/whuqin/p/4982123.html
Copyright © 2011-2022 走看看