為什么重定向路徑需要加上req.getContextPath(),轉發則不加呢?
為什么重定向路徑需要加上req.getContextPath()+"/main.jsp",轉發則不加req.getContextPath()或去跟路徑呢?
================================================
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
System.out.println("start----doFilter--FirstFilter");
HttpServletRequest req =(HttpServletRequest) request;
HttpServletResponse response2 =(HttpServletResponse) response;
//重定向
response2.sendRedirect(req.getContextPath()+"/main.jsp");
//轉發
// req.getRequestDispatcher("main.jsp").forward(request, response);
// req.getRequestDispatcher("main.jsp").include(request, response);
System.out.println("end------doFilter--FirstFilter");
}
2018-06-26
加上了就可以和后面的/main.jsp組成絕對完整路徑,成為一個url地址,而且重定向是面向全網絡,需要完整url才能到其它服務器的服務頁面,轉發是單個服務內部資源頁面的跳轉,不需要完整路徑。