• jsp九个内置对象


         在开发java web项目的时候我们经常需要在servlet和jsp之间进行传值,之前介绍了传值的几种方式,详见:jsp与Servlet之间传值 有时候我们在jsp和Servlet之间传值的时候,需要在Servlet中创建对象传值,但是在jsp页面中不需要创建对象,因为在jsp页面中,已经内置了九个对象分别是:request,response,application,session、out、pagecontext、config、page、exception,我们只需要拿来直接用即可。下面我们简单说一下这九个对象的特点:

    • 九个对象有jsp规范提供,用户不需要实例化
    • 这九个对象有web容器实现和管理
    • 在所有的jsp页面均可以使用
    • 只有在脚本元素的表达式中才可以使用(<%=内置对象%>,<%内置对象%>)

    我们在tomcat目录下打开workCatalinalocalhost打开任意一个我们写的web项目,在orgapachejsp目录下打开任意一个有jsp编译的java文件,

    我们看到request和response对象是_jspService()方法的形参,剩下的都是方法中的局部变量,在方法中初始化。

    一、request

    request是一个非常重要的内置对象,该对象代表了客户端的请求信息,用到的也是最多的,经常用到在jsp和Servlet之间传值。每个request对象都是用户的一次请求,所有的参数都被封装在了request对象中,一次请求可以是点击一个超链接,点击一个提交按钮等等,对于第二次请求,就会是另外一个request对象了。对于转发有效,重定向是两次请求。


    二、response

    response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。作为jsp页面处理结果返回给用户。我们可以利用response对象设置cookie


    三、session

    session 对象是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。session对象内部使用Map类来保存数据,因此保存数据的格式为 “Key/value”,键值对。 session对象的value可以使复杂的对象类型,而不仅仅局限于字符串类型。

    四、application

    applocation对象是将信息保存到服务器中,在服务器运行期间一直有效,我们可以在此项目中的任意jsp和Servlet中获取到,直到服务器关闭,信息失效。application对象的有效时间相比于以上三种长。

    以上对象我们经常使用,在一个web项目中,经常要传值,接收值,处理。下面的几种对象只能说用处很少

    五、out

    out对象代表jsp页面的输出流,可以用在浏览器页面输出信息,注意这是个流对象,最后要有关闭操作,另外还要有清空缓冲区操作。

    六、pageContext

    pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。pageContext对象的创建和初始化都是由容器来完成的。

    七、config

    该对象代表jsp的配置信息,通常jsp页面无需进行配置,也就不存在配置信息。

    八、page

    page对象代表页面本身,其实就是Servlet中的this,类型是生成的Sevlet类,可以用page的地方就可以用this。

    九、exception

    exception代表异常,只有当前页面定义为错误页面的时候,该对象才可以使用。只有在包含 page的isErrorPage="true" 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。excepation对象和Java的所有对象一样,都具有系统提供的继承结构。exception 对象几乎定义了所有异常情况。在Java程序中,可以使用try/catch关键字来处理异常情况; 如果在JSP页面中出现没有捕获到的异常,就会生成 exception 对象,并把 exception 对象传送到在page指令中设定的错误页面中,然后在错误页面中处理相应的 exception 对象。


    参考:《深入理解JavaWeb开发技术》--谭贞军

                http://www.cnblogs.com/leirenyuan/p/6016063.html

  • 相关阅读:
    【leetcode_easy_greedy】1403. Minimum Subsequence in Non-Increasing Order
    【leetcode_easy_sort】1030. Matrix Cells in Distance Order
    word2010 标题编号
    WORD2013中如何使用多级列表自动编号(转)
    Javaweb权限管理设计思路 (转)
    前后端分离模式下的权限设计方案 (转)
    Axure rp8.1.0.3381 3382 激活码(2019-07-26 亲测可用) 转
    通达OA开发网址
    C# Winform 跨线程更新UI控件常用方法汇总 (转)
    C#中的Invoke
  • 原文地址:https://www.cnblogs.com/duzhentong/p/7816554.html
Copyright © 2020-2023  润新知