在实际的网站开发中,页面的跳转是最常见的。
Servlet中的页面跳转可以通过转发或者重定向来实现。
重定向
使用response对象提供的sendRedirect()方法,可以将网页重定向到另一个页面。
SendRedirect()方法的语法格式:response.sendRedirect(String path)。参数path指的是目标的路径,这个路径可以是相对的,也可以是不同主机的其他URL地址。
重定向到index.jsp的时候,URL是会随之改变的,而转发跳转页面却还是LoginServlet的URL。
在Servlet中实现页面转发,使用的是RequestDispatcher对象的forward()方法,而重定向主要应用的是HttpServletResponse对象的sendRedirect()方法,该方法与forward()有着本质的区别。使用forward()方法时,会将当前的请求转发到其他Web组件,如Servlet、jsp、HTML。被请求的页面可以通过request内置对象来得到该请求。而sendRedirect()方法不会转发请求,只是简单的页面跳转。
转发和重定向都能让浏览器获得另外一个URL所指向的资源,但两者的内部运行机制有着很大的区别。