服务器端跳转和客户端跳转
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,因此需要用客户端跳转。