目录
1.情况一:web.xml中的url-pattern是/test.jsp时:
2.情况二:web.xml中的url-pattern是/servlet/*时:
四:着重说明:“三:案例演示”部分的补充说明:几个需要注意的点
1.第一个注意的点,Servlet的url设置成“/”,可以充当根路径,此时过滤器的url-pattern设置成“/”的时候,过滤器可以拦截这个Servlet
2.第二个需要注意的点:默认的首页index.jsp会让第一点中的东西失效
一:引入问题:
通常url-pattern设置成“/*”;即对所有请求进行过滤;但是当有特殊要求的时候,即改变过滤范围的时候如何做?
二:url-pattern设置过滤范围简介:
三:案例演示
0.准备内容:
案例:包括UrlPatternFilter过滤器类;SampleServlet1这个Servlet类;test.jsp;
test.jsp:访问的url为:localhost:8080/url-pattern/test.jsp
SampleServlet1这个Servlet:访问的url为:localhost:8080/url-pattern/servlet/sample1
package com.imooc.filter;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class SampleServlet1
*/
@WebServlet("/servlet/sample1")
public class SampleServlet1 extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public SampleServlet1() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
// 仅为演示目的,这儿打印类名
response.getWriter().println("This is"+this.getClass().getSimpleName());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
过滤器类:UrlPatternFilter:本篇博客的主要目的是url-pattern,所以在这个过滤器的doFilter方法中,就打印请求的url:
package com.imooc.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class UrlPatternFilter implements Filter{
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterCha