Tomcat的Filter配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat的Filter配置相关的知识,希望对你有一定的参考价值。

<filter>
<filter-name>WebControlClassFilter</filter-name>
<filter-class>com.tongchi.e2damp.ui.web.WebControlClassFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>WebControlClassFilter</filter-name>
<url-pattern>*.class</url-pattern>
</filter-mapping>
,/xxx还可以理解:过滤用户在浏览器中输入的,*class代表什么
好了,已经修改过了

*.class 表示过滤所有url后缀是class的请求 我也是这么理解的
但com.tongchi.e2damp.ui.web.WebControlClassFilter这个类是什么时候初始化的?

你粘的代码有问题吧

filter的配置应该是这样的
<filter>
<filter-name>RequestFilter</filter-name>
<filter-class>...</filter-class>
</filter>
<filter-mapping>
<filter-name>RequestFilter</filter-name>
<url-pattern>......</url-pattern>
</filter-mapping>
参考技术A 如果你用的是struts2.0
web.xml中配置应该这样的:
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher<!--你自己配的这里出错了-->
</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

如果struts用的是2.1以上,那么应该是这样:
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
参考技术B <servlet-name>*.class</servlet-name>
这里错了哈,应该是<url-pattern>*.class</url-pattern>
这里的.class是表示过滤你访问后缀为.class的请求
给你一个例子
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
参考技术C 大哥,你弄错了吧,是<filter-class>吧。。。。表示filter的类嘛。。。

ssm整合shiro时web。xml中配置filter,tomcat报错

 

 当我们使用ssm框架整合进行项目开发,使用Shiro作为安全验证管理,在web.xml中配置Shiro过滤器后 启动Tomcat会报错: Error during artifact deployment. See server log for details.

<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
        <property name="securityManager" ref="securityManager"/>
        <property name="loginUrl" value="login.html"/>
        <property name="unauthorizedUrl" value="403.html"/>
        <property name="filterChainDefinitions">
            <value>
                /login.jsp = anon
                /* = authc
            </value>
        </property>
    </bean>
    <!--创建SecurityManager对象-->
    <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
        <property name="realm" ref="realm"/>
    </bean>
    <!--自定义realm-->
    <bean id="realm" class="com.imooc.realm.CustomRealm">

    </bean>

注意这个地方是DefaultWebSecurityManager,很容易写成DefaultSecurityManager,所以在启动时tomcat会报错,还有就是

 

以上是关于Tomcat的Filter配置的主要内容,如果未能解决你的问题,请参考以下文章

servlet容器(tomcat),springmvc,filter,interceptor等关系

ssm整合shiro时web。xml中配置filter,tomcat报错

Tomcat / Nginx 跨域

tomcat跨域的若干实现总结

tomcat8 编写字符编码Filter过滤器无效问题

Tomcat 跨域问题的解决