l每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理。JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet) ,然后按照servlet的调用方式进行调用。
l由于JSP第一次访问时会翻译成servlet,所以第一次访问通常会比较慢,但第二次访问,JSP引擎如果发现JSP没有变化,就不再翻译,而是直接调用,所以程序的执行效率不会受到影响。
lJSP引擎在调用JSP对应的_jspServlet时,会传递或创建9个与web开发相关的对象供_jspServlet使用。JSP技术的设计者为便于开发人员在编写JSP页面时获得这些web对象的引用,特意定义了9个相应的变量,开发人员在JSP页面中通过这些变量就可以快速获得这9大对象的引用。
这9个对象分别是哪些,以及作用也是笔试经常考察的知识点
---------------------------------------------------------------------------------------
lRequest
lResponse
lSession
lApplication //统计首页访问次数
lConfig
lPage
lexception
lOut
lpageContext
==================================================
lout隐式对象用于向客户端发送文本数据。
lout对象是通过调用pageContext对象的getOut方法返回的,其作用和用法与ServletResponse.getWriter方法返回的PrintWriter对象非常相似。
lJSP页面中的out隐式对象的类型为JspWriter,JspWriter相当于一种带缓存功能的PrintWriter,设置JSP页面的page指令的buffer属性可以调整它的缓存大小,甚至关闭它的缓存。
l只有向out对象中写入了内容,且满足如下任何一个条件时,out对象才去调用ServletResponse.getWriter方法,并通过该方法返回的PrintWriter对象将out对象的缓冲区中的内容真正写入到Servlet引擎提供的缓冲区中:
ü设置page指令的buffer属性关闭了out对象的缓存功能
üout对象的缓冲区已满
ü整个JSP页面结束
lpageContext对象是JSP技术中最重要的一个对象,它代表JSP页面的运行环境,这个对象不仅封装了对其它8大隐式对象的引用,它自身还是一个域对象,可以用来保存数据。并且,这个对象还封装了web开发中经常涉及到的一些常用操作,例如引入和跳转其它资源、检索其它域对象中的属性等。
lgetException方法返回exception隐式对象
lgetPage方法返回page隐式对象
lgetRequest方法返回request隐式对象
lgetResponse方法返回response隐式对象
lgetServletConfig方法返回config隐式对象
lgetServletContext方法返回application隐式对象
lgetSession方法返回session隐式对象
lgetOut方法返回out隐式对象
lpageContext封装其它8大内置对象的意义,思考:如果在编程过程中,把pageContext对象传递给一个普通java对象,那么这个java对象将具有什么功能?
lpageContext对象的方法
üpublic void setAttribute(java.lang.Stringname,java.lang.Objectvalue)
üpublic java.lang.ObjectgetAttribute(java.lang.Stringname)
üpublic voidremoveAttribute(java.lang.Stringname)
lpageContext对象中还封装了访问其它域的方法
üpublic java.lang.ObjectgetAttribute(java.lang.Stringname,intscope)
üpublic void setAttribute(java.lang.Stringname,java.lang.Objectvalue,intscope)
üpublic voidremoveAttribute(java.lang.Stringname,intscope)
l代表各个域的常量
üPageContext.APPLICATION_SCOPE
üPageContext.SESSION_SCOPE
üPageContext.REQUEST_SCOPE
üPageContext.PAGE_SCOPE
lfindAttribute方法 (*重点,查找各个域中的属性)
lPageContext类中定义了一个forward方法和两个include方法来分别简化和替代RequestDispatcher.forward方法和include方法。
l方法接收的资源如果以“/”开头, “/”代表当前web应用。
JSP标签也称之为JspAction(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护
分享到:
相关推荐
JSP运行原理和九大隐式对象说明,需要的朋友可以参考一下
- **隐式对象**:JSP提供了多个预定义的隐式对象,这些对象无需显式声明即可直接使用。常见的隐式对象包括: - `out`:用于向客户端输出数据。 - `request`:封装了HTTP请求的信息。 - `response`:用于构建HTTP...
2.jsp运行原理-----jsp本质就是servlet(面试) 3.jsp指令(3个) 4.jsp内置/隐式对象(9个)----- 笔试 5.jsp标签(动作) 1.EL 表达式概述 2.EL从域中取出数据(EL最重要的作用) 3.EL的内置对象11个 4.EL...
JSP可以通过内建的隐式对象如request、response和session来处理这些表单数据。 5. 数据库连接和查询:JSP可以使用JDBC(Java Database Connectivity)API来与Access数据库建立连接,执行SQL查询和更新操作。这包括...
5. **配置JSP服务器:**详细介绍了配置JSP运行环境的方法。 6. **处理JSP错误:**提供了处理JSP开发过程中常见错误的策略。 7. **使用include指令:**解释了如何使用include指令优化代码结构。 8. **JSP与继承:**...
6.1 Servlet在JSP中的应用:隐式对象jsp:useBean。 6.2 JSP到Servlet的转发与重定向。 6.3 JSP和Servlet的协作模式:Model1和Model2(MVC架构)。 **第7章:JSP表单处理** 7.1 HTML表单的创建与提交。 7.2 JSP中...
1. **Servlet的工作原理** Servlet是一种运行在Web服务器或应用服务器上的Java程序,它们充当客户端(如Web浏览器或其他HTTP客户端)与服务器端的数据库或应用之间的中间层。主要任务如下: 1.1 **读取客户端显式...
1. JSP语法和生命周期,包括脚本元素、指令元素和隐式对象。 2. Servlet技术,因为JSP本质是Servlet的简化版本,理解两者的关系有助于深入理解JSP的工作原理。 3. 数据库设计,包括ER模型、关系模型、索引优化等,以...
1. **JSP基本概念**:讲解了JSP的起源、工作原理以及它在Web开发中的角色,解释了如何创建和运行一个简单的JSP页面。 2. **JSP语法**:包括指令(directives)、脚本元素(scriptlets)、表达式(expressions)、...
4. **隐式对象**:JSP提供了若干预定义的对象,如`request`、`response`、`session`、`application`等,简化了Web开发。例如,`request`对象用于获取HTTP请求的数据,`response`对象用于构建HTTP响应。 5. **EL...
《宿舍卫生管理系统》课程设计是基于JSP和SQL Server 2000的实践项目,旨在帮助初学者理解和掌握前后台交互的基本原理和技术。在这个项目中,JSP(JavaServer Pages)作为前端展示层,负责用户界面的呈现和数据的...
3. **数据传递**:学习如何在JSP中使用隐式对象(如request, session, application)进行数据共享。 4. **标签库**:了解自定义标签和标准JSTL(JavaServer Pages Standard Tag Library)的使用。 通过这次实验,...
JSP的运行原理是这样的:当客户端首次请求一个JSP文件时,服务器会将其转换为一个Servlet类,并编译成字节码,然后加载到内存中执行。之后的请求会直接调用这个已经编译好的Servlet,从而提高效率。 JSP中的注释有...
- **隐式对象**:JSP页面自动提供的内置对象,如`request`、`response`、`session`等,用于处理客户端请求和响应。 - **标准动作**:如`<jsp:include>`用于包含其他页面,`<jsp:forward>`用于转发请求等。 - **...
3. **JSP隐式对象:** JSP提供了一些内置对象(如request、response、session等),它们可以直接使用,与Servlet中对应的对象相呼应。 **四、学习资源** 1. **教程书籍:** 《Head First Servlets & JSP》、《Core ...
同时,JSP提供了一系列隐式对象,如request、response、session、application等,它们封装了HTTP请求和响应的信息,极大地简化了Web开发的复杂度。 #### 利用JSP组件构建复杂应用 JSP不仅支持基础的脚本和动作,还...