精华内容
下载资源
问答
  • JSP中9个内置对象

    2013-01-25 10:46:42
    JSP提供9内置对象在JSP页面可以直接使用这九个对象。   内置对象:   对象名 类 说明 request javax.servlet.http.HttpServletRequest 客户端请求 response javax.servlet....

    JSP提供了9个内置对象,在JSP页面中可以直接使用这九个对象。

     

    内置对象:

     

    对象名 说明
    request javax.servlet.http.HttpServletRequest 客户端请求
    response javax.servlet.http.HttpServletResponse 客户端响应
    page java.lang.Object JSP页面
    pageContext javax.servlet.jsp.PageContext 页面上下文,管理页面范围内的对象
    session javax.servlet.http.HttpSession 管理session范围内的对象
    application javax.servlet.ServletContext 管理应用范围内的对象
    out javax.servlet.jsp.JspWriter 向客户端输出信息
    config javax.servlet.ServletConfig 取得在web.xml中定义的初始化参数
    exception java.lang.Throwable 异常

     

    下面是对应的java代码:

     

    public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
            throws java.io.IOException, javax.servlet.ServletException {
    
        final javax.servlet.jsp.PageContext pageContext;
        javax.servlet.http.HttpSession session = null;
        java.lang.Throwable exception = org.apache.jasper.runtime.JspRuntimeLibrary.getThrowable(request);
        if (exception != null) {
          response.setStatus(javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
        }
        final javax.servlet.ServletContext application;
        final javax.servlet.ServletConfig config;
        javax.servlet.jsp.JspWriter out = null;
        final java.lang.Object page = this;
        javax.servlet.jsp.JspWriter _jspx_out = null;
        javax.servlet.jsp.PageContext _jspx_page_context = null;
    
    
        try {
          response.setContentType("text/html;charset=utf-8");
          pageContext = _jspxFactory.getPageContext(this, request, response,
          			null, true, 8192, true);
          _jspx_page_context = pageContext;
          application = pageContext.getServletContext();
          config = pageContext.getServletConfig();
          session = pageContext.getSession();
          out = pageContext.getOut();
          _jspx_out = out;

     

    注意:exception对象只有在JSP页面中指定 <%@ page isErrorPage="true"%> 才会创建。

    展开全文
  • JSP中九个内置对象

    2015-03-20 15:20:49
    JSP中九个内置对象 一、JSP运行原理  每个JSP 页面第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理。JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet) ,然后按照...

    http://www.cnblogs.com/xdp-gacl/p/3779872.html

    JSP中的九个内置对象

    一、JSP运行原理

      每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理。JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet) ,然后按照servlet的调用方式进行调用。
      由于JSP第一次访问时会翻译成servlet,所以第一次访问通常会比较慢,但第二次访问,JSP引擎如果发现JSP没有变化,就不再翻译,而是直接调用,所以程序的执行效率不会受到影响。
      JSP引擎在调用JSP对应的_jspServlet时,会传递或创建9个与web开发相关的对象供_jspServlet使用。JSP技术的设计者为便于开发人员在编写JSP页面时获得这些web对象的引用,特意定义了9个相应的变量,开发人员在JSP页面中通过这些变量就可以快速获得这9大对象的引用。

    二、认识九个内置对象

    NO. 内置对象 类型
    1 pageContext javax.servlet.jsp.PageContext
    2 request javax.servlet.http.HttpServletRequest
    3 response javax.servlet.http.HttpServletResponse
    4 session javax.servlet.http.HttpSession
    5 application javax.servlet.ServletContext
    6 config javax.servlet.ServletConfig
    7 out javax.servlet.jsp.JspWriter
    8 page java.lang.Object
    9 exception java.lang.Throwable

     

     

     

     

     

     

     

     

     

       

      request,response,session,application,config这些对象在前面都已经作了详细的介绍,这里重点介绍一下剩下的pageContext对象,out对象,page对象。

    三、内置对象使用说明

    3.1、page对象

      page对象表示当前一个JSP页面,可以理解为一个对象本身,即:把一个JSP当作一个对象来看待。page对象在开发中几乎不用,了解一下即可

    3.2、out对象

      out对象用于向客户端发送文本数据。 
      out对象是通过调用pageContext对象的getOut方法返回的,其作用和用法与ServletResponse.getWriter方法返回的PrintWriter对象非常相似。 
      JSP页面中的out对象的类型为JspWriter,JspWriter相当于一种带缓存功能的PrintWriter,设置JSP页面的page指令的buffer属性可以调整它的缓存大小,甚至关闭它的缓存。 
      只有向out对象中写入了内容,且满足如下任何一个条件时,out对象才去调用ServletResponse.getWriter方法,并通过该方法返回的PrintWriter对象将out对象的缓冲区中的内容真正写入到Servlet引擎提供的缓冲区中:

    • 设置page指令的buffer属性关闭了out对象的缓存功能
    • out对象的缓冲区已满
    • 整个JSP页面结束

    out对象的工作原理图

      

    3.3、pageContext对象

      pageContext对象是JSP技术中最重要的一个对象,它代表JSP页面的运行环境,这个对象不仅封装了对其它8大隐式对象的引用,它自身还是一个域对象(容器),可以用来保存数据。并且,这个对象还封装了web开发中经常涉及到的一些常用操作,例如引入和跳转其它资源、检索其它域对象中的属性等。

    3.4、通过pageContext获得其他对象

    • getException方法返回exception隐式对象
    • getPage方法返回page隐式对象
    • getRequest方法返回request隐式对象
    • getResponse方法返回response隐式对象
    • getServletConfig方法返回config隐式对象
    • getServletContext方法返回application隐式对象
    • getSession方法返回session隐式对象
    • getOut方法返回out隐式对象

    3.5、pageContext封装其它8大内置对象的意义

      如果在编程过程中,把pageContext对象传递给一个普通java对象,那么这个java对象将可以获取8大隐式对象,此时这个java对象就可以和浏览器交互了,此时这个java对象就成为了一个动态web资源了,这就是pageContext封装其它8大内置对象的意义,把pageContext传递给谁,谁就能成为一个动态web资源,那么什么情况下需要把pageContext传递给另外一个java类呢,什么情况下需要使用这种技术呢,在比较正规的开发中,jsp页面是不允许出现java代码的,如果jsp页面出现了java代码,那么就应该想办法把java代码移除掉,我们可以开发一个自定义标签来移除jsp页面上的java代码,首先围绕自定义标签写一个java类,jsp引擎在执行自定义标签的时候就会调用围绕自定义标签写的那个java类,在调用java类的时候就会把pageContext对象传递给这个java类,由于pageContext对象封装了对其它8大隐式对象的引用,因此在这个java类中就可以使用jsp页面中的8大隐式对象(request,response,config,application,exception,Session,page,out)了,pageContext对象在jsp自定义标签开发中特别重要。

    3.6、pageContext作为域对象

      pageContext对象可以作为容器来使用,因此可以将一些数据存储在pageContext对象中。

      pageContext对象的常用方法

    1 public void setAttribute(java.lang.String name,java.lang.Object value)
    2 public java.lang.Object getAttribute(java.lang.String name)
    3 public void removeAttribute(java.lang.String name)
    4 public java.lang.Object findAttribute(java.lang.String name)

      重点介绍一下findAttribute方法,这个方法是用来查找各个域中的属性的,查看这个方法的API可以看到关于这个方法的描述:
      Searches for the named attribute in page, request, session (if valid), and application scope(s) in order and returns the value associated or null.

      当要查找某个属性时,findAttribute方法按照查找顺序"page→request→session→application"在这四个对象中去查找,只要找到了就返回属性值,如果四个对象都没有找到要查找的属性,则返回一个null。

    范例:使用pageContext的findAttribute方法查找属性值

    复制代码
     1 <%@page contentType="text/html;charset=UTF-8"%>
     2 <%@page import="java.util.*"%>
     3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     4 <head>
     5     <title>pageContext的findAttribute方法查找属性值</title>
     6 </head>
     7 <%
     8     pageContext.setAttribute("name1", "孤傲苍狼");
     9     request.setAttribute("name2", "白虎神皇");
    10     session.setAttribute("name3", "玄天邪帝");
    11     application.setAttribute("name4", "灭世魔尊");
    12 %>
    13 <%
    14     //使用pageContext的findAttribute方法查找属性,由于取得的值为Object类型,因此必须使用String强制向下转型,转换成String类型
    15     //查找name1属性,按照顺序"page→request→session→application"在这四个对象中去查找
    16     String refName1 = (String)pageContext.findAttribute("name1");
    17     String refName2 = (String)pageContext.findAttribute("name2");
    18     String refName3 = (String)pageContext.findAttribute("name3");
    19     String refName4 = (String)pageContext.findAttribute("name4");
    20     String refName5 = (String)pageContext.findAttribute("name5");//查找一个不存在的属性
    21 %>
    22 <h1>pageContext.findAttribute方法查找到的属性值:</h1>
    23 <h3>pageContext对象的name1属性:<%=refName1%></h3>
    24 <h3>request对象的name2属性:<%=refName2%></h3>
    25 <h3>session对象的name3属性:<%=refName3%></h3>
    26 <h3>application对象的name4属性:<%=refName4%></h3>
    27 <h3>查找不存在的name5属性:<%=refName5%></h3>
    28 <hr/>
    29 <h1>使用EL表达式进行输出:</h1>
    30 <h3>pageContext对象的name1属性:${name1}</h3>
    31 <h3>request对象的name2属性:${name2}</h3>
    32 <h3>session对象的name3属性:${name3}</h3>
    33 <h3>application对象的name4属性:${name4}</h3>
    34 <h3>不存在的name5属性:${name5}</h3>
    复制代码

    运行结果:

      

      EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、request、 session、application四个域中查找相应的对象,找到则返回相应对象,找不到则返回”” (注意,不是null,而是空字符串)。

    pageContext对象中封装了访问其它域的方法

    1 public java.lang.Object getAttribute(java.lang.String name,int scope)
    2 public void setAttribute(java.lang.String name, java.lang.Object value,int scope)
    3 public void removeAttribute(java.lang.String name,int scope)

    代表各个域的常量

    1 PageContext.APPLICATION_SCOPE
    2 PageContext.SESSION_SCOPE
    3 PageContext.REQUEST_SCOPE
    4 PageContext.PAGE_SCOPE 

    范例:pageContext访问其它域

    复制代码
     1 <%@page contentType="text/html;charset=UTF-8"%>
     2 <%@page import="java.util.*"%>
     3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     4 <head>
     5     <title>pageContext访问其它域</title>
     6 </head>
     7 <%
     8     //此时相当于往session对象中存放了一个name属性,等价于 session.setAttribute("name","孤傲苍狼");
     9     pageContext.setAttribute("name","孤傲苍狼",PageContext.SESSION_SCOPE);
    10 %>
    11 <%
    12     //取得session对象的属性,使用pageContext对象获取
    13     String refName1 = (String)pageContext.getAttribute("name",PageContext.SESSION_SCOPE);  
    14     //由于取得的值为Object类型,因此必须使用String强制向下转型,转换成String类型
    15      String refName2 = (String)session.getAttribute("name");  
    16 %>
    17 <h1>取出存放在session对象中的属性值:</h1>
    18 <p>第一种做法:使用pageContext.getAttribute("attributeName",PageContext.SESSION_SCOPE);去取出session对象中值</p>
    19 <h3>姓名:<%=refName1%></h3>
    20 <p>第二种做法:使用session.getAttribute("attributeName");去取出session对象中值</p>
    21 <h3>姓名:<%=refName2%></h3>
    复制代码

      

    3.7、PageContext引入和跳转到其他资源

      PageContext类中定义了一个forward方法(用来跳转页面)和两个include方法(用来引入页面)来分别简化和替代RequestDispatcher.forward方法和include方法。
      方法接收的资源如果以“/”开头, “/”代表当前web应用。

    范例:使用pageContext的forward方法跳转到其他页面

    复制代码
     1 <%@page contentType="text/html;charset=UTF-8"%>
     2 <%@page import="java.util.*"%>
     3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     4 <head>
     5     <title>使用pageContext的forward方法跳转页面</title>
     6 </head>
     7 <%
     8     //使用pageContext的forward方法跳转到pageContextDemo05.jsp页面,/代表了当前的web应用
     9     pageContext.forward("/pageContextDemo05.jsp");
    10     //使用pageContext.forward(relativeUrlPath)替代RequestDispatcher.forward(relativeUrlPath)
    11     //使用RequestDispatcher的forward方法实现的跳转方式
    12     //pageContext.getRequest().getRequestDispatcher("/pageContextDemo05.jsp").forward(request, response);
    13 %>
    复制代码

    运行结果如下:
      

    1 pageContext.forward("/pageContextDemo05.jsp");

      这种写法是用来简化和替代pageContext.getRequest().getRequestDispatcher("/pageContextDemo05.jsp").forward(request, response);这种写法的。在实际开发中,使用pageContext.forward(relativeUrlPath)方法跳转页面用得不多,主要是因为要在Jsp页面中嵌套java代码,所以这种做法简单了解一下即可,在开发中,要想从一个Jsp页面采用服务器端跳转的方式跳转到另一个Jsp页面,那么一般会使用<jsp:forward>标签,<jsp:forward>标签用于把请求转发给另外一个资源。

    范例:使用pageContext的include方法引入资源

    复制代码
     1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     3 <head>
     4     <title>使用pageContext的include方法引入资源</title>
     5 </head>
     6 <%
     7     pageContext.include("/jspfragments/head.jsp");
     8 %>
     9     使用pageContext的include方法引入资源
    10 <%
    11     pageContext.include("/jspfragments/foot.jsp");
    12 %>
    13 <hr/>
    14 <%--
    15 <jsp:include page="/jspfragments/head.jsp"/>
    16 使用jsp:include标签引入资源
    17 <jsp:include page="/jspfragments/foot.jsp"/>
    18 --%>
    复制代码

    运行结果:

      

       在实际开发中,使用pageContext的include方法引入页面这种做法也很少用,一般都使用jsp:include标签引入资源,因此这种做法了解一下即可。


    展开全文
  • jsp 九个内置对象

    2017-02-17 11:11:09
    jsp 九个内置对象
    jsp 里面有九个内置对象

    application:   javax.servlet.ServletContext 的实例        web 的本身
    config:       javax.servlet.ServletConfig                jsp配置
    exception:    java.lang.Throwable                        errorPage   发生错误的时候才使用
    out:          javax.servlet.jsp.JspWriter                jsp输出流
    page:                                                    表示页面本身,可以用this代替
    pageContext:  javax.servlet.jsp.PageContext              jsp页面可以共享的数据
    request:      javax.serlvet.http.HttpRequest             一次请求
    response:     javax.servelt.http.HttpResponse            服务器对客户端的回应
    session:      javax.servelt.http.HttpSession             一次会话



    application:      setAttribute()    getAttribute()    getInitParamter()
    config:          getInitParamter()   getInitParamternames()
    exception:       getMessage()   printStackTrace()
    out:            
    page:              
    pageContext:     getServletContext()  getServeltConfig()
    request:         getParamter()   getParamterValues()   setAttribute()  getAttribute()  setCharacterEncoding()
    一般使用out响应除非字符外
    response:        getOutStream()  sendRedirect()
    session:         setAttribute()    getAttribute()

    request:  response:  是传入的参数  其他是局部变量,当调用这两个是,jsp才会初始化


    展开全文
  • jsp中9个内置对象

    2019-11-07 15:22:59
    在jsp页面不需要创建,直接使用的对象 一共有9个: 变量名 真实类型 作用 pageContext PageContext 当前页面共享数据,还可以获取其他八个内置对象 request HttpServletRequest 一次请求访问的多资源...

    在jsp页面中不需要创建,直接使用的对象
    一共有9个:(其中前4个为域对象)

    变量名 真实类型 作用
    pageContext PageContext 当前页面共享数据,还可以获取其他八个内置对象
    request HttpServletRequest 一次请求访问的多个资源(转发)
    session HttpSession 一次会话的多个请求间
    application ServletContext 所有用户间共享数据
    response HttpServletResponse 响应对象
    page Object 当前页面(Servlet)的对象 this
    out JspWriter 输出对象,数据输出到页面上
    config ServletConfig Servlet的配置对象
    exception Throwable 异常对象
    展开全文
  • 直接上代码,代码有解释说明 ; charset=utf-8" pageEncoding="utf-8"%> jsp中9大内置对象演示(内置对象又叫隐藏对象,隐含对象,隐式对象,9个内置对象... //jsp内置对象不需要使用者声明创建,由容器维护和管理
  • JSP中内置对象

    千次阅读 2016-06-23 08:45:40
    JSP隐含对象(又称内置对象),是指可以不加声明和创建就可以在JSP页面脚本(Java程序片和Java表达式)使用的成员变量。 在JSP中一共预先定义了九个隐含对象,分别为request, response, pageContext, session, ...
  • JSP九内置对象

    万次阅读 多人点赞 2019-02-28 15:52:26
    JSP提供了由容器实现和管理的内置对象,也可以称之为隐含对象,由于JSP使用Java作为脚本语言,所以JSP将具有强大的对象处理...使用JSP内置对象时,不需要先定义这些对象,直接使用即可。 JSP一共预先定义了...
  • JSP脚本包含9个内置对象,这9个内置对象都是Servlet API接口的实例,只是JSP规范将它们完成了默认初始化(由JSP页面对应Servlet的_jspService()方法来创建这些实例)。也就是说,它们已经是对象,可以直接使用。 ...
  • jsp页面包含9个内置对象,这9个内置对象都是Servlet API的类或者接口的实例,只是jsp规范将它们完成了默认初始化,即它们已经是对象,可以直接使用。 Application:javax.servlet.ServletContext的实例,该实例...
  • jsp脚本包含9个内置对象:这9个内置对象都是servletAPI接口的实例,只是jsp规范对它们进行了默认初始化(由jsp页面对应的——jspService()方法来创建这些实例),也就是说,它们已经是对象,可以直接使用 jsp...
  • JSP内置对象:JSP一共预先定义了9个这样的对象,分别为:request、response、session、application、out、pagecontext、config、page、exception。   1、Request对象:对该对象封装了用户提交的信息,通过调用该...
  • 在jsp中一共有内置对象: request,response,out,session,application,pageContext,page,config,exception api的使用介绍: (由于中文版的api也不好查看,所以最好用英文版api。通过类名来查找,因为out
  • jsp中的几个内置对象

    2015-10-07 15:17:26
    jsp中的几重要内置对象及作用域 页面之间进行对象的传递 如果希望不同的页面传递对象,可以通过xx.setAttribute(“xx”,sss)完成设置,可以通过xx.getAttribute(“xx”)来获取对象, 可以传递对象的几...
  • Jsp中九个内置对象在jsp开发,会频繁使用到一些对象。如果我们每次要使用这些对象都去创建这些对象就显示非常麻烦。所以Sun公司设计Jsp时,在jsp页面加载完毕之后就会自动帮开发者创建好这些对象,而开发者只...
  • JSP脚本包含九个内置对象,这九个内置对象都是Servlet API接口的实例,只是JSP规范对它们进行了默认初始化(由JSP页面对应的Servlet的_jspService()方法来创建这些实例)。 内置对象名称 所属类型 有效...
  • 为了简化Web应用程序的开发,JSP2.0 规范中提供9个隐式(内置对象,它们是JSP默认创建的,可以直接在JSP页面使用。 JSP隐式对象: 名称 类型 描述 out javax.servlet.jsp.JspWriter ...
  • JSP九个内置对象及四个作用域
  • JSP九个内置对象

    2019-06-06 16:41:19
    jsp(java server pages)的九个内置对象 域对象(从上到下,范围逐渐扩大): PageContext pageContext 作用于所在页面内共享数据,且可获取其他八个内置对象 ->pageScope HttpServletRequest r...
  • JSP9个内置对象

    2014-03-02 19:43:27
    JSP内置对象:我们使用JSP进行页面编程时可以直接使用而不需自己创建的一些Web容器已为用户创建好的JSP内置对象。如request,session,response,out等。 下面就JSP2.0给出的9个内置对象:   内置对象 ...
  • jsp9个内置对象

    2016-09-19 21:04:21
    jsp9个内置对象在JSP的 和可以直接使用的对象 pageContext(重要) 1、本身也是一域对象:它可以操作其它三域对象(request session application)的数据 void setAttribute(String name,Object o)...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 63,240
精华内容 25,296
关键字:

在jsp中提供了9个内置对象