1>在web.xml中配置servlet大家都比较熟悉,而且用得也比较多。
比如:
<servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>MyServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>1</param-value> </init-param> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/action/*</url-pattern> </servlet-mapping>
2>除了直接配置servlet,还可以在web.xml中直接配置JSP,把JSP文件当做servlet来使用(JSP实际上就是一个servlet,只是需要由JSP容器生成对应的java代码)
配置方法如下(metadata-complete必须为false):
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0"
metadata-complete="false">
<servlet>
<servlet-name>myjsp</servlet-name>
<jsp-file>/index.jsp</jsp-file>
<init-param>
<param-name>data</param-name>
<param-value>my configration</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>myjsp</servlet-name>
<url-pattern>/myjsp</url-pattern>
</servlet-mapping>
3>把JSP当做servlet来使用的目的
1)禁止直接访问JSP文件的时候,可以通过servlet mapping来间接访问
2)可以在web.xml中配置初始化参数,然后在JSP文件中获取
可以通过配置filter来禁止直接访问JSP文件:
<filter>
<filter-name>CSRF</filter-name>
<filter-class>org.apache.catalina.filters.CsrfPreventionFilter</filter-class>
<init-param>
<param-name>entryPoints</param-name>
<param-value>/html,/html/,/html/list,/index.jsp,/download.jsp</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CSRF</filter-name>
<servlet-name>HTMLManager</servlet-name>
<servlet-name>jsp</servlet-name>
</filter-mapping>
上面的entryPoints参数中指定的/index.jsp和/download.jsp表示,/index.jsp和/download.jsp是可以直接访问的。