问答详情
源自:6-1 登录案例

为什么重定向路径需要加上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-23 17:04

个回答

  • 韭菜精
    2018-06-26 18:28:36

    加上了就可以和后面的/main.jsp组成绝对完整路径,成为一个url地址,而且重定向是面向全网络,需要完整url才能到其它服务器的服务页面,转发是单个服务内部资源页面的跳转,不需要完整路径。