tomcat如何处理jsp
2012-08-07 00:53
246 查看
Tomcat怎么处理JSP页面
所有扩展名为jsp的URL都会交由JSPServlet类处理,也就是交由Servlet引擎进行处理。而未定义的其他扩展名的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. JSP动态部分的转换 i. <%...%>形式:JSP引擎如果遇到这种形式,就将<%...%>中的内容按原样插入由JSP生成的Servlet源代码中。 ii. <=%...%>形式:JSP引擎遇到这种形式,并不是把其中的内容直接放到Serclet源程序中,而是通过print方法将”=”后面的内容 输出到客户端。 iii. JSP指令:%@page...%就是一个JSP的page指令。对于这中形式,JSP引擎按照指令类型和它的属性翻译成相应的Java代码 |
相关文章推荐
- 应用服务器知识(4)--Tomcat是如何处理jsp和servlet请求
- tomcat 是如何处理jsp和servlet请求
- Tomcat是如何处理jsp页面的
- tomcat是如何处理请求的
- Tomcat中如何将JSP解析为Servlet
- tomcat加载jsp的处理机制问题
- nginx 配置 使jsp页面转向tomcat处理
- SpringMvc 请求处理流程(如何从tomcat到SpringMvc)
- 如何配置Filter过滤器处理JSP中文乱码
- Java_02_如何查看Servlet、JSP的版本(Tomcat V7.0.37)
- 经常看到jsp的初学者问tomcat下如何配置jsp、servlet和bean的问题
- HelloworldJsp中引入tomcat-juli处理
- 如何用jsp处理Oracle中CLOB类型的字段
- 如何处理Tomcat日志catalina.out日志文件过大的问题
- 遇到Tomcat 6.0.20里对于jsp:param处理的微小区别
- 如何处理tomcat默认错误页面
- 经常看到jsp的初学者问tomcat下如何配置jsp、servlet和bean的问题
- 如何tomcat下配置jsp、servlet.JavaBean.数据库连接池.虚拟目录
- 从0开始学Java——JSP&Servlet——如何在Eclipse中配置Web容器为tomcat
- 在jsp页面向文件中写入信息时,文件路径如何处理?