我使用JAVA时出现页面跳转的问题,
如果我使用:
response.sendRedirect("login.jsp")
然后我得到这个网址:http://localhost:8080/login.jsp
但如果我使用
request.getRequestDispathcer("login.jsp").forward(request, response)
然后我得到这个网址:http://localhost:8080/Shopping/login.jsp
(“购物”是我的模块的名称)。
有什么不同?
为了简单解释一下区别,
response.sendRedirect("login.jsp");
不添加上下文路径(指的是 Servlet 捆绑在其中的应用程序/模块)
但是,尽管
request.getRequestDispathcer("login.jsp").forward(request, response);
将在相应应用程序的上下文路径前面添加
此外,重定向请求用于将资源重定向到不同的服务器或域。这种控制权转移任务由容器委托给浏览器。也就是说,重定向将标头发送回浏览器/客户端。该标头包含浏览器要重定向的资源 url。然后浏览器向给定的 url 发起新的请求。
转发请求用于转发到发出调用的服务器内可用的资源。这种控制权的转移是由容器内部完成的,不涉及浏览器/客户端。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)