Java Web.xml-url模式映射两次
我们的web.xml包含以下摘录Java Web.xml-url模式映射两次,java,servlets,web.xml,servlet-filters,Java,Servlets,Web.xml,Servlet Filters,我们的web.xml包含以下摘录 <servlet> <servlet-name>testServlet</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <load-on-startup>1</load-on-startup&
<servlet>
<servlet-name>testServlet</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>testServlet</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
<filter>
<filter-name>anotherServlet</filter-name>
<filter-class>com.test.anotherServlet</filter-class>
</filter>
<filter-mapping>
<filter-name>anotherServlet</filter-name>
<url-pattern>*.htm</url-pattern>
</filter-mapping>
testServlet
org.springframework.web.servlet.DispatcherServlet
1.
testServlet
*.htm
另一个servlet
com.test.anotherServlet
另一个servlet
*.htm
我需要了解当遇到*.htm(say hello.htm)url时容器如何映射。当发生这样的请求时会发生什么。第二个映射是针对过滤器,而不是servlet 当请求进入servlet容器时,它首先通过一个过滤器链传递,然后传递到servlet,然后以相反的顺序通过过滤器返回 过滤器的API与servlet稍有不同:有一个名为
doFilter()
的方法,它获取ServletRequest
和ServletResponse
。它使用相同的参数通过chain.doFilter
调用链的其余部分;在过滤器链的末尾,这些参数被传递给servlet。因此,过滤器能够更改甚至替换传入的请求对象和传出的响应对象
还有更多信息。Carl,谢谢您的快速回复。。我通过了那个链接。。因此,如果存在多个筛选器映射。。firstFilter*.htm secondFilter*.htm然后,首先调用firstFilter的doFilter()方法,如果调用chain.doFilter(),则调用secondFilter的doFilter,最后调用firstServlet的服务方法。。理解正确吗?调用
过滤器
Servlet是个糟糕的主意。而是将其称为com.test.AnotherFilter
左右。