是否仅通过.jsp的页面扩展名检测到JSP页面?还有其他检测方法吗?
Tomcat中的JSP页面由特定的servlet处理,该servlet旨在处理所有以HTTP请求终止.jsp或.jspx以HTTP请求终止的请求。此配置存在于全局$CATALINA\conf\web.xml文件中,在其中可以找到以下重要行。请注意,这适用于Tomcat 6。
.jsp
.jspx
$CATALINA\conf\web.xml
JSP Servlet注册
<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>
JSP Servlet URL映射
<!-- The mapping for the JSP servlet --> <servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>*.jsp</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>*.jspx</url-pattern> </servlet-mapping>
您可以为尚未映射到其他servlet的其他文件扩展名添加更多URL映射,以触发Jasper编译器,该编译器最终负责将JSP文件转换为相应的Java servlet,然后将其编译(使用Eclipse JDT编译器,默认情况下)。可以从有关配置Jasper的Tomcat文档中获取有关在此过程中配置某些选项的更多信息。