美文网首页
JSP内置对象的理解

JSP内置对象的理解

作者: exmexm | 来源:发表于2017-05-09 19:53 被阅读0次

    JSP包含九种内置对象,包含:(以下都是对象的引用,而不是类名。)
    1、request,请求对象
    2、response,响应对象
    3、pageContext,页面上下文对象
    4、session,会话对象
    5、application,应用程序对象
    6、out、输出对象
    7、config,配置对象
    8、page,页面对象
    9、exception,异常对象

    重点讲解:
    request ,请求对象
    session,会话对象
    application,应用程序对象


    request是javax.servlet.ServletRequest的子类 ,作用域是Request。
    response是javax.servlet.ServletResponse的子类,作用域是page。
    pageContext是javax.servlet.jsp.PageContext,作用域是page。
    session是javax.servlet.http.HttpSession ,作用域是session、、
    application是javax.servlet.jsp.PageContext,作用域是Application、、
    out是javax.servlet.jsp.JspWriter,作用域是page
    config是javax.servlet.SerletConfig,作用域是page、、
    Page 是java.lang.Object,作用域是Page、、
    exception是java.lang.Throwable,作用域是page、、


    1、request对象代表的是来自客户端的请求,例如我们在form表单中填写信息等,是最常用的对象。

    (1)最常用的方法是getParameter()和getParameterNames()和getParameterValues()。
    这三者的区别是:
    ---getParameter()是getParameterValues()的特例。表示请求参数值只有一个。如果请求参数值有多个请使用getParameterValues()方法。
    例如:在多选框的情况下,则是使用getParameterValues()方法来获取用户选择的多个复选框的值。

    <input type="checkbox" name="interest" > baskeetball <br>
    <input type="checkbox" name="interest" > volleyball <br>```
    
    (2)getAttribute(String name)和setAttribute(String name, Object o)这两个方法和session的一样,但是作用不一样。
    说明:getAttribute以对象的形式返回特定名称的属性值,这个方法允许Servlet引擎给出一个客户端请求的特定信息。
    如果所给名称的属性不存在将返回空值。
    返回值是:一个包含属性值的对象,当属性不存在时为空。
    通过getAttribute获取与该类型相对应的对象值(获取到之后一般要进行向下类型转换,将属性值转换为真正的对象)
    这两个方法一般是成对出现的,而且都是在服务器端内部执行的,客户端不知道服务器是否执行过这两个方法。  
    
    (3)  request的getParameter方法的作用是获取到客户端通过表单或URL请求参数所发送过来的参数值,是客户端与服务器端之间的交互。服务器端想获得客户端发过来的数据就要使用getParameter方法来获取。没有setParameter方法与之对应。
    
    (4)request对象内数据的存活范围就是在request对象的存活范围内,当客户端向服务器端发送一个请求,服务器想客户端返回一个响应后,该请求对象就被销毁了;之后再向服务器端发送新的请求时,服务器端会创建新的request对象,该request对象与之前的request对象有任何关系因此也无法获得之前的request对象所存放的任何数据。
    
    (5)session对象内的存活范围(先认为。。先认为只要服务器不关闭,session对象就一直存在,因此在同一个浏览器窗口中,无论向服务器端发送多少个请求,session对象只有一个)
    
    2、response
    response涉及的东西比较底层,所以一般输出东西都用out。
    方法有getOutputStream()等。
    
    3、pageContext
    pageContext对象直译时可以称作“页面上下文”对象,代表的是当前页面运行的一些属性,常用的方法包含findAttribute、getAttribute、getAttributesScope和getAttributeNamesInscope,
    一般情况下,“pageContext ”对象只有在项目所面临的情况比较复杂的情况下,才会利用页面属性来辅助处理。一般Servlet容器会用到该对象。
    
    4、session
    session对象代表服务器与客户端所建立额会话,当需要在不同的jsp页面中保留客户信息的情况下使用,比如在线购物,客户轨迹跟踪等。
    
    引用session的原因:
    HTTP是无状态(stateless)协议;
    Web Server对每一个客户端请求都没有历史记忆。
    Session用来保存客户端的状态信息。
    
    
    5、application
    application对象负责提供应用程序在服务器中运行的一些全局信息,常用的方法有getMimeType和getRealPath等。
    application也有getAttribute和setAttribute。
    只要服务器没有关闭,application对象中的数据就会一直存在。在整个服务器运行的过程中,application对象只有一个。
    
    总之request、session、application这三个对象的范围是逐个增加的:request只在一个请求范围内,?session?则是在浏览器窗口范围内,而application则是作用在整个服务器运行的范围之内。 
    
    6、out
    out对象代表了向客户端发送数据的对象,与response对象不同,通过out对象发送的内容,是文本一级的,可以通过out对象直接向客户端写一个由程序动态生成的HTML文件,常用的方法有print、println之外、还有clear、clearBUffer、flush、getBufferSize和getRemaining,这是因为out对象内部包含了一个缓冲区,所以需要一些对缓冲区进行操作的方法。
     
    7、config、page、exception
    config对象提供一些配置信息,常用的方法有getInitParameter和getIntparameterNames,以获得Servlet初始化时的参数。
    page对象代表了正在运行的由JSP文件产生的类对象。
    exception对象则代表了jsp文件运行时所产生的异常对象,此对象不能在在一般的jsp文件中直接使用,而只能在使用了<%@page isErrorPage="true"%>的jsp文件中使用。
    

    相关文章

      网友评论

          本文标题:JSP内置对象的理解

          本文链接:https://www.haomeiwen.com/subject/fnobtxtx.html