为何java中的过滤器filter不起作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为何java中的过滤器filter不起作用相关的知识,希望对你有一定的参考价值。

web.xml文件配置

<filter>
<filter-name>CharsetEncodingFilter</filter-name>
<filter-class>com.hbyhhh.drp.Filter.CharsetEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CharsetEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
实现接口的三个方法
public void destroy()
System.out.println("销毁了");


public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException
System.out.println("Demo1过滤前");
chain.doFilter(request, response);//放行。让其走到下个链或目标资源中
System.out.println("Demo1过滤后");

public void init(FilterConfig filterConfig) throws ServletException
System.out.println("初始化了");

kou kou 846814473求远程
急,在线等,帮忙解决者追至200分

过滤器配置正确,但却没有起到过滤作用,原因可能是排放位置的问题。如下:

错误:

<filter>
<filter-name>struts2</filter-name>
<filter-class>com.yiwo.base.web.filter.PrepareFilter</filter-class>
</filter>

<filter>
<filter-name>userFilter</filter-name>
<filter-class>com.yiwo.base.web.filter.UserFilter</filter-class>
</filter>
参考技术A Filter 检查一下你的 struts 配置文件 jar 包 参考技术B 确认tomcat的项目中:
过滤器没写错
web.xml的过滤器配置没写错,是过滤所有文件"/*"追问

感谢你伟大的远程帮助

本回答被提问者采纳
参考技术C 别用自带的启动器,用TOCAT启动。追问

我是用自带的启动的

参考技术D 怎么没用法,后台没打印出消息?追问

是的,控制台不打印任何信息,相当于没调到这方法,谁帮我远程看看啊,急

追答

343752352,看看你都是这么配置运行的

在JAVA中filter有啥作用?

参考技术A

Filter也称之为过滤器,它是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源。

例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。例如对Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。

它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理。使用Filter的完整流程:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理。

扩展资料

Filter的生命周期

和我们编写的Servlet程序一样,Filter的创建和销毁由WEB服务器负责。 web 应用程序启动时,web 服务器将创建Filter 的实例对象,并调用其init方法,读取web.xml配置,完成对象的初始化功能,从而为后续的用户请求作好拦截的准备工作

filter对象只会创建一次,init方法也只会执行一次。开发人员通过init方法的参数,可获得代表当前filter配置信息的FilterConfig对象。

这个方法完成实际的过滤操作。当客户请求访问与过滤器关联的URL的时候,Servlet过滤器将先执行doFilter方法。FilterChain参数用于访问后续过滤器。

Filter对象创建后会驻留在内存,当web应用移除或服务器停止时才销毁。在Web容器卸载 Filter 对象之前被调用。该方法在Filter的生命周期中仅执行一次。在这个方法中,可以释放过滤器使用的资源。

以上是关于为何java中的过滤器filter不起作用的主要内容,如果未能解决你的问题,请参考以下文章

过滤器Filter在配置文件中不起作用

SSH项目中,解决中文请求参数乱码,Filter过滤器不起作用的问题

Angularjs中的自定义过滤器不起作用

为啥这个(Django)“过滤器”功能不起作用?

过滤器在 Struts2 中不起作用

DateField 的 Django 模型过滤器不起作用