为什么重定向路径需要加上req.getContextPath(),转发则不加呢?

来源:6-1 登录案例

艾米丽宏

2018-06-23 17:04

为什么重定向路径需要加上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");

}


写回答 关注

1回答

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

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

Java Web开发技术应用——过滤器

本课程主要是从实际生活当中的过滤器入手,详细讲解了Java Web过滤器

70489 学习 · 259 问题

查看课程

相似问题