`

JSP学习笔记之JSP运行原理

    博客分类:
  • JSP
 
阅读更多

在学习Servlet时,我们知道Tomcat能够从客户端的请求URL中提取出Web应用程序目录(/ServletStudy)和Servlet匹配的URL(/firstServlet)。

 

如果我们使用如下URL访问jsp文件,Tomcat会如何处理呢?

http://localhost:8080/JspStudy/JspFile/first.jsp

 Tomcat同样可以从以上URL中提取出Web应用程序目录(/JspStudy)和jsp文件所在的目录(/JspFile/first.jsp),这样Tomcat就能准确定位jsp文件的位置,即

<Tomcat安装目录>\webapps\JspStudy\JspFile\first.jsp

 既然Tomcat找到了即将被访问的jsp文件,那么它会如何处理这个jsp文件呢?

 

先让我们来看下面一段配置片段:

<!--这段代码来自<Tomcat安装目录>\conf\web.xml-->
<servlet>
        <servlet-name>jsp</servlet-name>
        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
        <init-param>
            <param-name>fork</param-name>
            <param-value>false</param-value>
        </init-param>
        <init-param>
            <param-name>xpoweredBy</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
        <servlet-name>jsp</servlet-name>
        <url-pattern>*.jsp</url-pattern>
        <url-pattern>*.jspx</url-pattern>
</servlet-mapping>

 

很明显,这是配置了一个Servlet,该Servlet的名字是jsp,对应的Servlet类是JspServlet,匹配的url是“*.jsp、*.jspx”,即所有以“.jsp、*.jspx”结尾的请求全部交给JspServlet。

 

(我们假定这是首次访问first.jsp)

1、把jsp文件编译成Servlet源文件
JspServlet把first.jsp编译成一个名为first_jsp.java的Java源文件。
2、把Servlet源文件编译成class文件
Servlet引擎调用Java编译器把first_jsp.java编译成first_jsp.class文件
3、装载first_jsp.class文件并作出响应
//first_jsp.java和first_jsp.class文件所在的目录
<Tomcat安装目录>/work/Catalina/localhost/JspStudy/org/apache/jsp
 
 (我们假定这是第n次访问first.jsp,n >= 2)
因为不是首次访问,所以first_jsp.java和first_jsp.class已存在。
1、检查first.jsp是否被修改
如果被修改过,则重新编译、生成first_jsp.java和first_jsp.class,再执行下一步。
否则,直接执行下一步。
2、装载first_jsp.class,并作出响应。
 
补充:
1、总是检测jsp文件是否被修改而造成性能下降
解决方式:
<!--这段代码来自<Tomcat安装目录>\conf\web.xml-->
<servlet>
        <servlet-name>jsp</servlet-name>
        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
        <!--添加如下参数-->
        <init-param>
            <param-name>development</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>3</load-on-startup>
</servlet>
 
2、Tomcat如何判断jsp文件是否被修改过?
待更新。。。。。。
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    JSP&Servlet学习笔记.pdf

    由于这部分内容是电子书中的学习笔记,电子书的内容并未直接给出,因此只能根据电子书的标题“JSP&Servlet学习笔记”和描述来推测可能涉及的知识点,而没有具体的电子书内容可以分析。如需进一步学习,建议查阅相关...

    Servlet&JSP学习笔记源代码

    在"Servlet&JSP学习笔记源代码"中,林信良教授通过实例讲解了这两项技术的基础和进阶知识。这些源代码是在Eclipse集成开发环境中创建的,Eclipse是Java开发的主流工具,支持丰富的插件,使得开发、调试和部署Servlet...

    JSP Servlet 学习笔记源码

    本学习笔记源码提供了全面的学习资源,涵盖了这两个技术的基础到高级应用,旨在帮助开发者深入理解并熟练掌握JSP和Servlet。 1. **JSP基础**: JSP是一种服务器端的脚本语言,它将HTML、CSS、JavaScript与Java代码...

    jsp学习笔记——初学者的选择

    【JSP学习笔记——初学者的选择】 JSP(JavaServer Pages)是JavaEE平台中用于构建动态网页的应用技术。作为初学者,理解JSP的基本概念和技术特性至关重要。 1. **为何选择JSP?** JSP的出现主要是为了解决...

    jsp学习笔记

    【JSP学习笔记】 在Java Web开发中,JavaServer Pages(JSP)是用于创建动态网页的一种技术。JSP结合了HTML和Java代码,使得开发者可以在网页中嵌入Java表达式和脚本来处理服务器端逻辑。JSP与Servlet密切相关,...

    JSP_学习笔记

    【JSP 学习笔记】 JSP(Java Server Pages)是一种基于Java技术的服务器端脚本语言,用于创建动态Web内容。它属于Java EE(Java Platform, Enterprise Edition)组件,核心在于将静态HTML与动态Java代码相结合,...

    jsp学习笔记初级.pdf

    jsp学习笔记初级.pdf 本资源摘要信息介绍了JSP(Java Server Pages)学习笔记的初级阶段,涵盖了MVC模式、Java基础知识、JSP、Servlet、Javabean、JDBC、Spring、Struts2、Hibernate等关键技术。 MVC模式 MVC模式...

    jsp&servlet;学习笔记_第2版_光盘(看评论酌情下载)

    学习笔记"及提供的源码,开发者可以全面了解JSP和Servlet的工作原理,学会如何创建动态Web应用,同时提升解决问题和实际开发的能力。结合实际项目练习,能够更好地将理论知识转化为实践经验,从而在Java Web开发领域...

    JSP学习笔记

    ### JSP学习笔记知识点梳理 #### 一、JSP的工作原理 JSP(Java Server Pages)是一种基于Java的服务器端动态网页技术标准。它通过在HTML文档中嵌入Java代码来实现动态内容的生成。JSP的核心优势在于它可以提供丰富...

    jsp笔记各种资源包

    【笔记.txt】文件可能包含了关于JSP的详细学习笔记,涵盖了基础概念、语法、生命周期、内置对象、EL(Expression Language)、JSTL(JavaServer Pages Standard Tag Library)以及MVC(Model-View-Controller)设计...

    head_first_servlet&jsp学习笔记

    【Servlet&JSP基础知识】 ...以上是`head_first_servlet&jsp`学习笔记的主要知识点,涵盖了Servlet和JSP的基础、Web应用架构、MVC模式、会话管理和JSP编程等多个方面,为深入理解和实践Servlet与JSP开发奠定了基础。

    Servlet&JSP学习笔记

    ### Servlet&JSP 学习笔记精要 #### 一、Servlet 基础 ##### 1.1 Web 容器 - **概念**: Web 容器是支持 Servlet 和 JSP 运行的基础环境,主要功能是加载和管理 Servlet 实例,处理客户端请求并返回响应。常见的 ...

    web学习笔记 —— jsp基础语法

    本文将深入探讨"Web学习笔记——jsp基础语法"这一主题,重点关注JSP(JavaServer Pages)的基础知识。JSP是Java平台上的动态网页技术,它允许开发者将HTML、XML或其他标记语言与Java代码结合,以创建交互式的Web应用...

    JSP&Serlet;学习笔记2

    本学习笔记主要聚焦于这两个技术的深度理解和实践应用。** **一、JSP简介** JSP是Java平台上的一个服务器端脚本语言,用于创建动态网页。它允许开发者在HTML、XML或其他标记语言中嵌入Java代码,将静态内容与动态...

    jsp详细整理笔记

    ### JSP基础知识与应用详解 #### 一、JSP概述 JSP(JavaServer Pages)是一种...通过以上内容的学习,我们不仅可以更好地理解JSP的基本原理和使用方法,还能掌握如何在实际开发中高效地运用JSP技术来构建动态网站。

    jsp概述(我自己的学习笔记)

    3. **平台无关性**:作为Java的一部分,JSP运行在任何支持Java的平台上。 4. **强大的Java生态系统**:可以利用丰富的Java类库和框架来扩展功能。 **JSP的缺点** 1. **过度使用脚本元素**:如果在JSP中过多地使用...

    jsp第七章学习笔记

    ### jsp第七章学习笔记 #### 一、Servlet概述与生命周期 Servlet是一种运行在服务器端的Java程序,主要用于处理客户端的HTTP请求,并做出相应的响应。Servlet技术是Java Web开发的基础,它提供了一种通用、可扩展...

Global site tag (gtag.js) - Google Analytics