日期:2014-05-17  浏览次数:20669 次

Servlet过滤器配置疑问
以下是web.xml文件中的配置,但我对其中的Servlet过滤器配置有些疑问,话说当拦截到一个请求时,这时是调用pipi.web.WebContextFilter去处理这个请求呢?还是调用pipi.web.DispatchServlet来处理这个请求
  
<servlet>
<servlet-name>DispatchServlet</servlet-name>
<servlet-class>pipi.web.DispatchServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DispatchServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

<filter>
<filter-name>WebContextFilter</filter-name>
<filter-class>pipi.web.WebContextFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>WebContextFilter</filter-name>
<servlet-name>DispatchServlet</servlet-name>
</filter-mapping>

------最佳解决方案--------------------
<filter-class>pipi.web.WebContextFilter</filter-class>
------其他解决方案--------------------
另外你这个web.xml能启动么? filter标签里面有<servlet-name>DispatchServlet</servlet-name>的标签吗?

------其他解决方案--------------------
过滤器 放在 servlet 的下面可以不可以启动???
------其他解决方案--------------------
引用:
另外你这个web.xml能启动么? filter标签里面有<servlet-name>DispatchServlet</servlet-name>的标签吗?

 有。。它可以有两种标签。一种用url-pattern   一种用servlet-name
------其他解决方案--------------------
引用:
<filter-class>pipi.web.WebContextFilter</filter-class>

那请问下servlet-class>pipi.web.DispatchServlet</servlet-class> 这个几时会调用呢? 如果过滤器调用的是<filter-class>pipi.web.WebContextFilter</filter-class>  那我servlet定义的class有什么用
------其他解决方案--------------------
引用:
另外你这个web.xml能启动么? filter标签里面有<servlet-name>DispatchServlet</servlet-name>的标签吗?

指定filter的匹配方式有两种方法:直接指定url-pattern和指定servlet,后者相当于把指定的servlet对应的url-pattern作为filter的匹配模式
filter的路径匹配和servlet是一样的,都遵循servlet规范中《SRV.11.2 Specification of Mappings》一节的说明
------其他解决方案--------------------
具体没试过, 要试的话在初始化的方法上打印就可以吧?
另外我个人觉得xxx-name标签只是引用而已, 具体调用还是在class标签里的类.