Tomcat怎么处理JSP页面
1个回答
展开全部
而未定义的其他扩展名的URL所指的Web资源就直接由Tomcat按原样返回给客户端(实际上,也是通过Tomcat自带的一个DefaultServlet类来处理的)。如果不将html映射成JSP的扩展名,那么扩展名为html的URL就会被交给DefaultSerlvlet类来处理。因此,html也就变成了静态的Web资源了。
JSP引擎分两步JSP页面进行处理。首先将JSP页面生成一个Servlet源程序文件,然后再调用java编译器将这个Servlet源程序文件编译成.class文件,并由Servlet引擎来装载并执行这个.class文件。如果在IE地址栏中输入如下的URL,servertime.jsp页面就会生成两个文件:servertime_jsp.java和servertime_jsp.class。
为了提高JSP的执行效率,并不是每次访问JSP时都进行翻译。只有在第一次访问JSP页面时才会执行这个翻译过程。当再次访问这个JSP页面时,Servlet引擎会将茶JSP页面是否被更新,如果已经被更新,会再次翻译这个JSP页面,然后执行它。如果未被更新,Servlet引擎会直接装载并执行由这个SJP页面翻译生成的.class文件。、
也就是说,JSP页面只有在第一次被访问时才被翻译成.class文件,对于该JSP页面的后续访问,除非这个JSP页面被修改,否则Web容器将直接调用被翻译好的.class文件。因此,JSP页面从运行原理上看就是在运行Servlet程序。所以习惯上将同时执行JSP和Servlet的程序成为Servlet容器,而不是分别叫JSP容器和Servlet容器。
由于JSP在第一次访问是要经过JSP引擎翻译成Servlet才能运行。因此,在第一次访问JSP页面是比较慢。在Tomcat的文档中提供了一种通过ant将JSP页面翻译成.class文件再发布的方法,通过这种方法就可以有效地解决这个问题。l
JSP生成Servlet代码
1,
所有的JSP页面生成的Servlet类的类名由JSP文件名加上“_jsp”组成,如果random_jsp。
2,
JSP静态部分的转换
JSP的静态部分就是在客户端运行的代码,如:HTML,JavaScript等。在random.jsp中除了用<%...%括起来的内容
(包括<%=…%和<@page…%)外,其他的部分都属于静态部分,这个静态的内容在转换时都作为字符串,并通过write方法按原样输出到客户端。
3,
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询