`
liebaorun
  • 浏览: 22789 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

JSP常用对象来源分析

    博客分类:
  • jsp
阅读更多
在开发JSP程序时,我们可以直接用out对象进行输出,用request对象获取属性值,session保持会话状态等,那这些对象是从何而来的呢?

当浏览器请求一个xx.jsp文件时,web服务器首先会把jsp文件编译成HttpJspBase的子类xx_jsp,然后调用其_jspService方法(如果已编译则跳过编译这一步,xx_jsp的_jspService方法包括了我们书写的所有jsp代码。在此方法的前面部分,此方法已帮我们把out、session、application等对象初始化好,而jsp代码放于后面部分,所以我们在jsp中就可以很方便的使用out、session、application等对象)

如果使用Tomcat,可以在\work\Catalina\localhost\web模块\org\apache\jsp下查看jsp编译后的Java文件

_jspServie方法示例:
public void _jspService(HttpServletRequest request, HttpServletResponse response)
        throws java.io.IOException, ServletException {

    //jsp页面默认可以使用的对象(还包括方法参数中的request、response对象)
    JspFactory _jspxFactory = null;
    PageContext pageContext = null;
    HttpSession session = null;
    Throwable exception = org.apache.jasper.runtime.JspRuntimeLibrary.getThrowable(request);
    if (exception != null) {
      response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
    }
    ServletContext application = null;
    ServletConfig config = null;
    JspWriter out = null;
    Object page = this;
    JspWriter _jspx_out = null;
    PageContext _jspx_page_context = null;

    
    try {
      _jspxFactory = JspFactory.getDefaultFactory();
      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;
      
      //jsp 页面编译后的代码
      out.write("\r\n");
      out.write("\r\n");
      out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n");
      out.write("<html>\r\n");
      out.write("  <head>\r\n");
      out.write("    <title>Error</title>\r\n");
      out.write("  </head>\r\n");
      out.write("  \r\n");
      out.write("  <body>\r\n");
      out.write("      Bussiness logic exception, please try later...\r\n");
      out.write("  </body>\r\n");
      out.write("</html>\r\n");
    } catch (Throwable t) {
      if (!(t instanceof SkipPageException)){
        out = _jspx_out;
        if (out != null && out.getBufferSize() != 0)
          out.clearBuffer();
        if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
      }
    } finally {
      if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);
    }
  }



0
0
分享到:
评论

相关推荐

    第章JSP内置对象2022优秀文档.ppt

    JSP内置对象来源于JSP引擎将JSP页面转换为Servlet的过程。当JSP页面被请求时,引擎会生成一个继承自HttpJspBase的Servlet类,并在这个类中创建JSP内置对象。内置对象共有9个:request、response、session、out、...

    jsp学习总结

    在本文中,我们将深入探讨JSP的核心概念、工作原理以及常用元素,帮助你巩固和提升对JSP的理解。 ### 1. JSP的运行机制 JSP文件首先被Web服务器转换成Servlet,然后编译为.class文件。当用户请求JSP页面时,服务器...

    jsp.rar_jsp论坛_简单JSP论坛

    此外,描述中还提到了“几个教学常用例题”,这可能意味着除了论坛本身,资源包还包含了其他用于学习JSP的示例代码,比如数据库操作、会话管理、表单验证等常见应用场景。 【标签】“jsp论坛”和“简单jsp论坛”...

    JSP安全编程实例浅析

    本文旨在探讨JSP安全编程的相关知识点,重点从脚本编程的角度出发,分析JSP页面可能存在的安全隐患及其防范措施。 #### 二、JSP安全编程基础 ##### 1. 理解JSP的工作原理 JSP页面本质上是一种动态页面技术,它与...

    JSP页面音乐

    `&lt;source&gt;`标签用于指定音频文件的来源和类型,多个`&lt;source&gt;`可以为不同格式的音频提供支持。最后的文本是对于不支持`&lt;audio&gt;`标签的浏览器的备选内容。 **二、JSP与音乐** JSP页面中可以嵌入HTML代码,因此我们...

    tree.jsp集结

    1. **数据结构**:在JavaScript中,可以使用对象和数组来表示树形结构,每个节点是一个对象,包含数据和指向子节点的引用。 2. **递归函数**:为了遍历或操作树形结构,递归函数是常用的方法,它能够处理任意深度的...

    1JSP编程中常用的js技术.txt

    根据提供的文件信息,我们可以总结出以下关于JSP编程中常用JS技术的相关知识点: ### JSP与JavaScript集成 在Web开发中,JSP(JavaServer Pages)是一种常用的动态网页技术,而JavaScript则是前端脚本语言之一,...

    JSP课件WORD版

    JSP提供了多种预定义对象,简化了服务器端编程: - `request`:获取客户端请求的信息。 - `response`:发送响应到客户端。 - `session`:管理客户端的会话状态。 - `application`:提供对整个应用程序上下文的访问。...

    基于jsp的投资理财管理系统源码数据库论文.doc

    论文首先介绍了管理系统的相关理论,包括面向对象分析与设计(OOA&D),这是现代软件开发中常用的方法论,通过识别和定义系统中的对象及其相互关系,为系统的结构和行为提供基础。在投资理财管理系统中,面向对象的...

    JSP版Flash小游戏小偷 -源码.zip

    ActionScript 3.0是Flash开发的常用版本,它基于ECMAScript,具备面向对象编程特性。 源码的学习通常包括以下几个步骤: 1. **分析结构**:查看项目目录结构,理解各个文件的作用。比如,JSP文件可能包含主页面和...

    基于jsp的个人理财管理系统源码数据库论文.doc

    在设计过程中,论文深入探讨了面向对象分析与设计(OOA&D)的概念,这是软件工程中常用的一种方法,它将复杂的业务逻辑分解为一系列相互协作的对象,使得代码更易于理解和维护。此外,论文还强调了数据挖掘在理财...

    搞定J2EE核心技术与企业应用:Ajax,JSP,Struts2,Spring,Hibernate,完整扫描版

    而本书《搞定J2EE核心技术与企业应用:Ajax,JSP,Struts2,Spring,Hibernate》则是一本针对Java Web开发的专业书籍,它详细介绍了在现代企业级应用开发中常用的技术和框架。 书中首先对Java EE的来源、整体框架和...

    jsp 购物车 niit

    在这个"jsp购物车niit"项目中,我们将深入探讨如何使用JSP来实现一个基本的在线购物车功能,同时结合J2EE(Java 2 Platform, Enterprise Edition)框架和SWPU(可能是指西南石油大学,这里假设是项目来源或参与者的...

    第章JSP与JavaBean2022优秀文档.ppt

    例如,用户在JSP页面上输入数据,这些数据通过request对象传递到JavaBean,JavaBean处理数据并计算结果,然后将结果返回到JSP,由JSP展示给用户。这样,开发人员可以专注于各自领域的实现,提高开发效率,同时使得...

    (推荐下载)JSP人事管理系统的设计与实现.pdf

    - **Java技术**:作为基础,Java提供了面向对象的编程能力,支持网络通信,是开发Web应用的常用语言。 - **JSP**:是Java Web开发的重要组成部分,允许在HTML页面中嵌入Java代码,实现动态网页生成。 - **Eclipse...

    JSP+Sevlet注册登录系统

    在Web开发领域,JSP(JavaServer Pages)和Servlet是常用的组件,用于构建动态、交互式的Web应用程序。在这个"JSP+Servlet注册登录系统"中,开发者利用这两者的技术,实现了用户注册和登录功能,并结合MySQL数据库...

    毕业论文jsp1864图书销售mysql.doc

    总的来说,本论文详尽地阐述了一个基于JSP的图书销售系统的设计与实现过程,涵盖了从需求分析、技术选型、数据库设计到系统实现的全过程,对于理解和构建类似的Web应用具有很高的参考价值。关键词:图书销售、JSP、...

Global site tag (gtag.js) - Google Analytics