引入
前面我们说,使用请求转发有两个问题无法解决:
- 如果本次请求并不能解决问题,要不带着信息跳转其它页面怎么办?
- 用户刷新浏览器造成重复提交数据怎么办?
我们将使用重定向来解决这两个问题。
重定向
同样,我们使用模拟用户登录的例子,当用户登录成功后,我们跳转到个人主页,这个时候如果还是用请求转发来跳转,会造成数据的重复提交和信息泄露,因为请求转发地址栏的请求信息是不会改变的,这时我们就需要用到重定向。
重定向就好比一个a标签,它们的跳转作用一样。重定向将发起新的请求,与原来的请求无关。
使用重定向
- resp.sendRedirect("这里填url-pattern或页面的相对地址");//url-pattern指的是web.xml中的Servlet对应的url-pattern,但无需斜杠/
使用重定向后,是一次新的请求,我们就无法获得原来请求中的数据,如果我们想要获得那些数据呢?请看下一节:session与cookie