服务器端跳转和客户端跳转

request.getRequestDispatcher("listHero").forward(request, response);//服务器跳转

  • forward方式只能跳转到本web应用中的页面上
  • 跳转后浏览器地址栏不会变化。
  • 使用这种方式跳转,传值可以使用三种方法:url中带parameter,session,request.setAttribute

response.sendRedirect("listHero");// 客户端跳转

  • sendRedirect可以将页面跳转到任何页面,不局限于本web应用中,如:response.sendRedirect(http://www.baidu.com);此时url会变成http://www.baidu.com
  • 跳转后浏览器地址栏变化
  • 这种方式要传值出去的话,只能在url中带parameter或者放在session中,无法使用request.setAttribute来传递。

service、doPOST、doGET

不管是post还是get方法提交过来的连接,都会在service中处理,然后,由service来交由相应的doPost或doGet方法处理,如果你重写了service方法,就不会再处理doPost或doGet了。

上一篇博客要把服务器端跳转改为客户端跳转就可以理解了,因为服务端跳转不改变url,当我们执行上一页下一页时用的时listHero这个url,因此需要用客户端跳转。

原文地址:https://www.cnblogs.com/dong973711/p/10938353.html