标签:index Filter 访问 细节 jsp 过滤器 资源
Filter细节过滤器拦截路径配置
1.具体资源路径:/index.jsp 只有访问index.jsp资源时,过滤器才会被执行
2.拦截目录:/user/* 访问/user下的所有资源时,过滤器都会被执行
3.后缀名拦截:*.jsp 访问所有后缀名为jsp资源时,过滤器都会被执行
4.拦截所有资源:/* 访问所有资源时,过滤器都会被执行
//@WebFilter("/*") //@WebFilter("/user/*") //@WebFilter("*.jsp") @WebFilter("/index.jsp")
Filter细节过滤器拦截方式配置
拦截方式配置:资源被访问的方式
注解配置:
设置dispatcherTypes属性
1.REQUEST:默认值。浏览器直接请求资源
2.FORWARD:转发访问资源
3.INCLUDE:包含访问资源
4.ERROR:错误跳转资源
5.ASYNC:异步访问资源
web.xml配置:
在<filter-mapping>中加上这句即可
<dispatcher>REQUEST</dispatcher>这里面的取值和注解的一样
注解配置
1.REQUEST:默认值。浏览器直接请求资源
//浏览器直接请求资源时该过滤器会被执行 @WebFilter(value = "/index.jsp",dispatcherTypes = DispatcherType.REQUEST) public class FilterD5 implements Filter { public void destroy() {} public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException { System.out.println("FilterD5..."); chain.doFilter(req, resp); } public void init(FilterConfig config) throws ServletException {} }
@WebServlet("/user/ServletD1") public class ServletD1 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("ServletD1"); //转发到index.jsp request.getRequestDispatcher("/index.jsp").forward(request,response); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } }
使用Servlet转发访问
直接访问:
2.FORWARD:转发访问资源
@WebFilter(value = "/index.jsp",dispatcherTypes = DispatcherType.FORWARD)
直接访问
转发访问
//浏览器直接请求资源时该过滤器会被执行或转发访问index.jsp都会被执行 @WebFilter(value = "/index.jsp",dispatcherTypes ={DispatcherType.FORWARD,DispatcherType.REQUEST})
Filter细节过滤器链(多个过滤器)
执行顺序:如果有两个过滤器:过滤器1和过滤器2
1.过滤器1
2.过滤器2
3.资源执行
4.过滤器2
5.过滤器1
过滤器先后执行问题:
1.注解配置:按照类名的字符串比较规则比较,值小的先执行
AFilter 和 BFilter :AFilter就先执行
2.web.xml配置:<filter - mapping>谁定义在上边,谁先执行
搜索
复制
标签:index,Filter,访问,细节,jsp,过滤器,资源 来源: https://www.cnblogs.com/pengtianyang/p/16598204.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。