求教,我想为jsp做个请求转发器, urlPatterns = "/*", 拦截所有请求, 发现req.getRequestDispatcher("/jsp/hello.jsp").forward(req, resp);函数总是再次被该拦截器拦截,然后浏览器就没有办法访问到jsp文件,该怎么既使DispatherServlet拦截所有请求,又使得浏览器能够访问到jsp文件呢。
@WebServlet(urlPatterns = "/*", loadOnStartup = 0)
public class DispatherServlet extends HttpServlet {
@Override
public void init(ServletConfig config) throws ServletException {
......
}
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("mothod : " + req.getMethod());
System.out.println("PathInfo : " + req.getPathInfo());
System.out.println("ContextPath : " + req.getContextPath());
System.out.println("getRequestURL : " + req.getRequestURL());
req.getRequestDispatcher("/jsp/hello.jsp").forward(req, resp);
}
控制台打印 :
mothod : GET
PathInfo : /jsp/hello.jsp
ContextPath : /chapter1
getRequestURL : http://localhost:8080/chapter1/jsp/hello.jsp
这个是可以排除哪些链接是不拦截的把
怎么排除呢
@逆光影者: https://blog.csdn.net/dunegao/article/details/72625316
"/"和"/"的区别:
"/"只会拦截不带后缀的请求,如/welcome
"/"不但包含/的作用,还可以拦截带后缀的请求
,排除的话一般都是一些静态资源不进行拦截,百度上配置的例子很多
@番茄vs西红柿: 我将 “/” 改成了“/”,
发现“/” 不会拦截.jsp请求,但会拦截*.html请求,求问这个该怎么搞呢!
@逆光影者: html属于静态文件,你应该是用的servlet去做的,那就应该有web.xml 文件然后你去根据这个https://zhidao.baidu.com/question/747382060892536812.html配置过滤器