本文目录一览:
- 1、tomcat怎么编译jsp文件
- 2、jsp编译过程是什么样的
- 3、JSP 转译
- 4、jsp源代码的编译
tomcat怎么编译jsp文件
一、jsp执行过程图解
用户访问jsp页面时,jsp的处理过程如下图所示:
二、预处理阶段
客户第一次请求jsp页面时,jsp引擎会将jsp文件中的脚本代码(HTML)和代码片段(java代码)全部转换为java代码,转换过程非常直观:对于HTML文本只需要用简单的out.println方法包裹,对于java脚本只做保留或简单的处理。
三、编译阶段
预处理阶段把jsp文件解析为java代码,编译阶段jsp引擎把java代码编译成servlet类文件,对于Tomcat,生成的class文件默认情况下存放在Tomcat/work目录下。
四、响应阶段
编译后的class对象被加载到容器中,并根据用户的请求生成HTML格式的响应页面返回给客户端。
在执行jsp网页时,通常分为两个时期:转译时期和请求时期。转译时期jsp页面被翻译成Servlet类,然后编译成Class文件;用户请求时期,servlet类被执行,生成HTML响应至客户端。
五、jsp和servlet的执行速度
jsp的转译和请求都在在第一次访问时进行的,所以用户在第一次访问jsp页面时响应时间会比较长。在之后的请求中,这些工作已经完成,时间延长问题不存在了。在处理后续的访问时jsp和servlet的执行速度是一样的。
六、容器、jsp容器、jsp引擎
jsp要转译为servlet,但是servlet没有main()方法,servlet对象的创建、方法的调用由web容器来实现。以Tomcat为例,先看一下Tomcat的总体结构:
从图中可以看出,Tomcat的核心组建是connector和container,container就是容器。容器就是负责管理控制servlet的应用程序。图中的jasper就是解析jsp的jsp引擎。Tomcat既是servlet容器又是web服务器,也是jsp引擎。
jsp编译过程是什么样的
每一个JSP页面都会被Web容器编译成一个Java类,供web容器调用,并且生成HTML叶面回馈给用户。而了解其中的变异方法和规则,对我们学习JSP是非常有好处的,可以说学习好了这个编译原理,就已经学习好了大部分的JSP知识,剩下的工作就只剩下熟记一些tablib和反复应用以使自己更加熟练而已了JSP会被编译成.java放Tomcat/work/Catalina/localhost/***/org/apache/jsp/page
然后编译成.classjsp = java + html
servlet = java + out.print(html)
1.客户端发送请求给web容器
2.web容器将jsp首先转译成servlet源代码
3.web容器将servlet源代码编译成.class 文件
4.web容器执行.class 文件
5.web容器将结果响应给客户端
第二个问题,会.
参考资料:
JSP 转译
第一 jsp最终被服务器编译 就变成了servlet
第二 servlet 主要用于截获客户端请求 对请求响应服务器 然后将处理过的信息返回客户端
Server激活Servlet的service()方法,传递请求和响应对象作为参数
service()方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息
service()方法使用响应对象的方法,将响应传回Server,最终到达客户端。service()方法可能激活其它方法以处理请求,如doGet()或doPost()或程序员自己开发的新的方法。
当然 接触了struts 框架了 你就不需要这么麻烦了 配置一个struts-config。xml 就可以了 反正 基础就是servlet
jsp源代码的编译
任何工具都不能完成对java 文件和Jsp文件的编译,只能由Tomcat服务器利用JVM虚拟机才能完成对文件的编译。
无论你使用的是什么工具JSP的转义和编译都是由Tomcat服务器完成的。
jsp源代码中的关于html的部分最后会转译成Servlet文件,这也是个java文件最后又服务器编译成class 文件。你看一下这个文件夹下的文件就全明白了Tomcat\work\demo\org\apache\jsp
JSP页面上的所有HTML部分都会转换成Java文件存放在这个文件夹下,包括服务器编译完的生成的Class文件。
由Tomcat编译的。每次重起Tomcat服务器都要对服务器中的java文件编译,生成Class文件,存放在WEB-INF文件夹下classes文件下。JSP页面的内容会先转义成相应的Servlet形式文件,这些文件存放在Tomcat\work\demo\org\apache\jsp文件夹下,并且有相应界面的java文件,在第一次对相应的页面请求时服务器会自动对相应JSP页面的java文件进行编译,生成class文件。JSP的编译过程是先转义然后再编译,当第二次请求时就不需要再编译了。
所以JSP是一次编译多次使用。
但是如果你后台的Java类发生了改变,那么你必须重起启动服务器对Java类文件进行编译。
你看下关于JSP的生命周期。