不明白Filter过滤器怎么用,大家帮帮我首先问一个问题,FilterChain参数是做什么用的?假如我就有一个过滤器,FilterChain.doFilter(request,response);这句话是不是必须写?还有如果有几个过滤器,用FilterChain
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/30 11:05:12
![不明白Filter过滤器怎么用,大家帮帮我首先问一个问题,FilterChain参数是做什么用的?假如我就有一个过滤器,FilterChain.doFilter(request,response);这句话是不是必须写?还有如果有几个过滤器,用FilterChain](/uploads/image/z/8116226-26-6.jpg?t=%E4%B8%8D%E6%98%8E%E7%99%BDFilter%E8%BF%87%E6%BB%A4%E5%99%A8%E6%80%8E%E4%B9%88%E7%94%A8%2C%E5%A4%A7%E5%AE%B6%E5%B8%AE%E5%B8%AE%E6%88%91%E9%A6%96%E5%85%88%E9%97%AE%E4%B8%80%E4%B8%AA%E9%97%AE%E9%A2%98%2CFilterChain%E5%8F%82%E6%95%B0%E6%98%AF%E5%81%9A%E4%BB%80%E4%B9%88%E7%94%A8%E7%9A%84%3F%E5%81%87%E5%A6%82%E6%88%91%E5%B0%B1%E6%9C%89%E4%B8%80%E4%B8%AA%E8%BF%87%E6%BB%A4%E5%99%A8%2CFilterChain.doFilter%28request%2Cresponse%29%3B%E8%BF%99%E5%8F%A5%E8%AF%9D%E6%98%AF%E4%B8%8D%E6%98%AF%E5%BF%85%E9%A1%BB%E5%86%99%3F%E8%BF%98%E6%9C%89%E5%A6%82%E6%9E%9C%E6%9C%89%E5%87%A0%E4%B8%AA%E8%BF%87%E6%BB%A4%E5%99%A8%2C%E7%94%A8FilterChain)
不明白Filter过滤器怎么用,大家帮帮我首先问一个问题,FilterChain参数是做什么用的?假如我就有一个过滤器,FilterChain.doFilter(request,response);这句话是不是必须写?还有如果有几个过滤器,用FilterChain
不明白Filter过滤器怎么用,大家帮帮我
首先问一个问题,FilterChain参数是做什么用的?假如我就有一个过滤器,FilterChain.doFilter(request,response);这句话是不是必须写?
还有如果有几个过滤器,用FilterChain.doFilter(request,response)调用下一个过滤器的时候,Java怎么知道调用的顺序呢?难道是按照web.xml文件里配置的顺序么?我是新手,请教诸位大侠!
谢谢您的回答,我再问一个问题,就是
/resource/*这个映射地址怎么写?您这里写的/resource/*是什么意思?不是随便写吧?
不明白Filter过滤器怎么用,大家帮帮我首先问一个问题,FilterChain参数是做什么用的?假如我就有一个过滤器,FilterChain.doFilter(request,response);这句话是不是必须写?还有如果有几个过滤器,用FilterChain
我来给你简单的说一下吧:)
首先要明确.Filter是JSP2.0里面的东西 ,顾名思义,也就是过滤器的意思
和你说说如何用吧.要用Filter就得在web.xml中配置
例:
//配置方法和配置普通的Servlet一样的哦
PrivFilter
com.myPriv.filter.PrivFilter
PrivFilter
/resource/*
//com.myPriv.filter.PrivFilter是这个过滤器所在的位置.当然这个过滤器必须实现接口javax.servlet.Filter.
然后就可以在过滤器这个接口方法中增加过滤条件了
public void doFilter(ServletRequset request,ServletResponse response,FilterChain chain)
thows ServletException,IOException{
}
然后你可以把过滤条件写出来,写在doFilter方法里面
我这里写一个简单的例子:
public void doFilter(ServletRequest req,ServletResponse res,
FilterChain chain) throws IOException,ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
HttpSession session=request.getSession();
ServletContext application=session.getServletContext();
if(session.getAttribute("userSession")==null)
{
response.sendRedirect("error/priv_error.jsp");
return;
}
else
{
chain.doFilter(request,response);
}
}
在上面的这个过滤方法中,如果session.getAttribute("userSession")==null)那就跳转到错误页面.如果不为空,则继续
所以
chain.doFilter(request,response);的意思就是跳转到下个页面,
明白了吧?
如果还有不明白.,可以留下你的问题
------------------------
还有忘了回答你的问题 了.java会在处理每一个Servlet时都走一次Filter的.所以你不必担心你的过滤不起作用了
而且chain.doFilter(request.response);
是必须的.没有他,程序就不会继续了:)他是让你的request和response继续运行哦
--------------------------------
这个你就可接写/*
好了.它是说对哪些范围起作里这个过滤器