java 中的过滤器filter 都有啥作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 中的过滤器filter 都有啥作用相关的知识,希望对你有一定的参考价值。
我想知道过滤器一般都用来干什么 简明的说一下 谢谢
过滤器顾名思义就是进行过滤的,可以实现代码的定向执行和预处理。通俗点说法filter相当于加油站,request是条路,response是条路,目的地是servlet,这个加油站设在什么地方对什么数据操作可以由你来控制。
备注:过滤器可以再请求和响应之前做一部分预处理,有效的过滤掉不需要的内容,而且过滤器可以被复用,节省了大量的复用代码,提高了java的代码执行效率 参考技术A java里面有多种过滤器,有文件过滤器、请求过滤器等等。。,主要作用是过滤掉用户不需要的东西或者设置请求编码的格式等等。。本回答被提问者采纳 参考技术B 过滤提交到控制器的参数值,防止后台不必要的处理
JSP中用filter 过滤某个包中的所有servlet
请问我应该如何配置XML才可以让CommentFilter过滤web包下的所有servlet呢?
web.xml中这样配置:
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>com.zq.servlet.Login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/servlet/Login</url-pattern>
</servlet-mapping>
或者不配置web.xml在servlet中写注解:
@WebServlet("/servlet/Login")
配置fliter可以在web.xml中这样写:
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>com.zy.filter.UserLoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/servlet/*</url-pattern>
</filter-mapping>
或者不配置web.xml在filter中写注解:
@WebFilter(filterName="/MyFilter",urlPatterns="/servlet/*")
即在所有想过滤的servlet名字前加上“/setvlet”在过滤的时候过滤路径就可以写成“/servlet/*”这样就能过滤所有的Servlet。
参考技术B 1、在Jsp页面将文本框输入域放在html表单form之中提交2、后台定义一个过滤器继承Filter.java
3、在过滤器中的doFilter方法中,将参数ServletRequest转化为HttpServletRequest
4、利用HttpServletRequest.getParameter();方法即可获取对应输入域的value值。
示例:
在Jsp页面:
<form>
<input type="text" name="username" value="zhangsan"/>
</form>
后台过滤器:
public class TestFilter implements Filter
@Override
public void destroy()
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filter) throws IOException, ServletException
HttpServletRequest res = (HttpServletRequest) request;
//获取页面的username输入框的值
String username = request.getParameter("username");
return;
@Override
public void init(FilterConfig arg0) throws ServletException
参考技术C 这个是没有办法的,项目发布,路径中是没有包的概念的
可以将servlet的路径统一加一个前缀/f/*servlet
然后过滤f下所有文件即可,否则只能将所有servlet路径一个一个配置进去 参考技术D 可以通过URL来进行过滤,首先你先要将所有的servlet的名称规范一下,比如 xxxServlet;
然后在web.xml中将CommentFilter的过滤范围配置成 /* ,过滤所有的请求,
最后在过滤器中获得请求的URL,在将含有Servlet的字符的URL处理处理掉,这样就达到过滤的效果了
以上是关于java 中的过滤器filter 都有啥作用的主要内容,如果未能解决你的问题,请参考以下文章