是否仅通过.jsp的页面扩展名检测到JSP页面?有没有其他方法可以被发现?
答案 0 :(得分:8)
Tomcat中的JSP页面由特定的servlet处理,该servlet用于处理在HTTP请求中以.jsp
或.jspx
终止的所有请求。此配置存在于全局$CATALINA\conf\web.xml
文件中,其中可以找到以下重要行。请注意,这适用于Tomcat 6。
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编译器)。有关配置流程中某些选项的更多信息,请参阅Tomcat documentation on configuring Jasper。
答案 1 :(得分:1)
以下是$ TOMCAT_HOME / conf / web.xml中内置Servlet定义部分的简要介绍
The JSP page compiler and execution servlet, which is the mechanism
used by Tomcat to support JSP pages. Traditionally, this servlet
is mapped to the URL pattern "*.jsp".
JSP页面检测是通过servlet映射完成的( TOMCAT_HOME / conf / web.xml中的内置Servlet映射部分):
<!-- 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>