在开发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);
}
}
分享到:
相关推荐
JSP内置对象来源于JSP引擎将JSP页面转换为Servlet的过程。当JSP页面被请求时,引擎会生成一个继承自HttpJspBase的Servlet类,并在这个类中创建JSP内置对象。内置对象共有9个:request、response、session、out、...
在本文中,我们将深入探讨JSP的核心概念、工作原理以及常用元素,帮助你巩固和提升对JSP的理解。 ### 1. JSP的运行机制 JSP文件首先被Web服务器转换成Servlet,然后编译为.class文件。当用户请求JSP页面时,服务器...
此外,描述中还提到了“几个教学常用例题”,这可能意味着除了论坛本身,资源包还包含了其他用于学习JSP的示例代码,比如数据库操作、会话管理、表单验证等常见应用场景。 【标签】“jsp论坛”和“简单jsp论坛”...
本文旨在探讨JSP安全编程的相关知识点,重点从脚本编程的角度出发,分析JSP页面可能存在的安全隐患及其防范措施。 #### 二、JSP安全编程基础 ##### 1. 理解JSP的工作原理 JSP页面本质上是一种动态页面技术,它与...
`<source>`标签用于指定音频文件的来源和类型,多个`<source>`可以为不同格式的音频提供支持。最后的文本是对于不支持`<audio>`标签的浏览器的备选内容。 **二、JSP与音乐** JSP页面中可以嵌入HTML代码,因此我们...
1. **数据结构**:在JavaScript中,可以使用对象和数组来表示树形结构,每个节点是一个对象,包含数据和指向子节点的引用。 2. **递归函数**:为了遍历或操作树形结构,递归函数是常用的方法,它能够处理任意深度的...
根据提供的文件信息,我们可以总结出以下关于JSP编程中常用JS技术的相关知识点: ### JSP与JavaScript集成 在Web开发中,JSP(JavaServer Pages)是一种常用的动态网页技术,而JavaScript则是前端脚本语言之一,...
JSP提供了多种预定义对象,简化了服务器端编程: - `request`:获取客户端请求的信息。 - `response`:发送响应到客户端。 - `session`:管理客户端的会话状态。 - `application`:提供对整个应用程序上下文的访问。...
论文首先介绍了管理系统的相关理论,包括面向对象分析与设计(OOA&D),这是现代软件开发中常用的方法论,通过识别和定义系统中的对象及其相互关系,为系统的结构和行为提供基础。在投资理财管理系统中,面向对象的...
ActionScript 3.0是Flash开发的常用版本,它基于ECMAScript,具备面向对象编程特性。 源码的学习通常包括以下几个步骤: 1. **分析结构**:查看项目目录结构,理解各个文件的作用。比如,JSP文件可能包含主页面和...
在设计过程中,论文深入探讨了面向对象分析与设计(OOA&D)的概念,这是软件工程中常用的一种方法,它将复杂的业务逻辑分解为一系列相互协作的对象,使得代码更易于理解和维护。此外,论文还强调了数据挖掘在理财...
而本书《搞定J2EE核心技术与企业应用:Ajax,JSP,Struts2,Spring,Hibernate》则是一本针对Java Web开发的专业书籍,它详细介绍了在现代企业级应用开发中常用的技术和框架。 书中首先对Java EE的来源、整体框架和...
在这个"jsp购物车niit"项目中,我们将深入探讨如何使用JSP来实现一个基本的在线购物车功能,同时结合J2EE(Java 2 Platform, Enterprise Edition)框架和SWPU(可能是指西南石油大学,这里假设是项目来源或参与者的...
例如,用户在JSP页面上输入数据,这些数据通过request对象传递到JavaBean,JavaBean处理数据并计算结果,然后将结果返回到JSP,由JSP展示给用户。这样,开发人员可以专注于各自领域的实现,提高开发效率,同时使得...
- **Java技术**:作为基础,Java提供了面向对象的编程能力,支持网络通信,是开发Web应用的常用语言。 - **JSP**:是Java Web开发的重要组成部分,允许在HTML页面中嵌入Java代码,实现动态网页生成。 - **Eclipse...
在Web开发领域,JSP(JavaServer Pages)和Servlet是常用的组件,用于构建动态、交互式的Web应用程序。在这个"JSP+Servlet注册登录系统"中,开发者利用这两者的技术,实现了用户注册和登录功能,并结合MySQL数据库...
总的来说,本论文详尽地阐述了一个基于JSP的图书销售系统的设计与实现过程,涵盖了从需求分析、技术选型、数据库设计到系统实现的全过程,对于理解和构建类似的Web应用具有很高的参考价值。关键词:图书销售、JSP、...