2012-07-26 41 views
0

我有/WEB-INF/jsp/info/1.jsp映射到URI /信息/ 1:预编译JSP和<jsp-file>标签

<servlet> 
    <servlet-name>/info/1</servlet-name> 
    <jsp-file>/WEB-INF/jsp/info/1.jsp</jsp-file> 
</servlet> 
<servlet-mapping> 
    <servlet-name>/info/1</servlet-name> 
    <url-pattern>/info/1</url-pattern> 
</servlet-mapping> 

从Apache Tomcat上预编译与JSPC Ant任务的JSP后,以下行添加到web.xml中:

<servlet> 
    <servlet-name>org.apache.jsp.WEB_002dINF.jsp.info._1_jsp</servlet-name> 
    <servlet-class>org.apache.jsp.WEB_002dINF.jsp.info._1_jsp</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>org.apache.jsp.WEB_002dINF.jsp.info._1_jsp</servlet-name> 
    <url-pattern>/WEB-INF/jsp/info/1.jsp</url-pattern> 
</servlet-mapping> 

然后,当我导航到/ info/1时,tomcat再次编译JSP。我如何纠正这种情况?

+0

是否有这样做的理由?一个应用程序服务器(tomcat)会为你做这件事 – 2012-07-26 13:01:06

+0

它会在webapp更新后降低网站速度,因为tomcat在首次请求时重新编译每个jsp,每个jsp有时只需要几秒钟。通过预编译,我可以在部署前对其进行处理,以免影响性能。 – vbezhenar 2012-07-26 13:04:41

+0

你用什么tomcat?你知道本地的tomcat吗?这应该会加快你的工作速度http://tomcat.apache.org/download-native.cgi – 2012-07-26 13:05:54

回答

-1

由于设置正确,您不必纠正这种情况。每个jsp页面都被编译成一个servlet类。第一次加载jsp页面时,预编译的内容基本上是应用程序服务器在运行时执行的操作。

+0

OP想知道为什么Tomcat正在编译预编译的JSP。 – Paul 2014-04-12 18:53:06