- 方法一 href
在一些html的文档中,用herf实现页面跳转的比较常见,也很好用。
jsp一般不用 - 方法二:getRequestDispatcher请求转发
request.getRequestDispatcher(url).forward(request,response);
这种方法比较实用,在服务器端运行,url使用相对路径,不会重新创建request和response,前后页面共享一个request,地址栏还是原来的地址,不是转发后的地址
!运用forward方法只能重定向到同一个Web应用程序中的一个资源
AND分为两种RequestDispatcher
- ServletContext.getRequestDispatcher(String url)中的url只能使用绝对路径;
- ServletRequest.getRequestDispatcher(String url)中的url可以使用相对路径。
因为ServletRequest具有相对路径的概念;而ServletContext对象无次概念。
3. 方法三: sendRedirect重新定向
response.sendRedirect(“login.jsp”);
与上面相反,url使用绝对路径,可以访问任何url,所以当要访问的不再同一webapp时使用比较好,会改变地址栏
转发 or 重定向
- 转发比重定向快
- 使用重定向可以避免用户重新加载页面时执行相同的动作
- 重定向无法传值,这是比较头疼的一件事,jsp的话只能在session传值或
地址栏传值,SpringMvc就解决了这一问题,百度Flash属性
- 方法四:利用表单的action
<form method="post" action="ChangrCount.jsp" id="form1">
<input type="hidden" name="albumId" value="${item.albumId}" />
<input style="width:50px;" type="text" name="count" value="${item.count}" id="namecount"/>
</form>
这种方法不用多说了,在input提交时比较常用