假设有这样的场景,你在web网站上输入相关的信息,点击提交,网站的页面会跳转到新的页面。那么这样是如何做到的?
这里就要用到请求转发或是重定向了。
请求转发:
顾名思义,就是将本次的请求扭转到下一个处理事务中去。我们来看一下它的具体流程。
我们假设有登录页面:PageServlet,(form表单会将请求数据发送到LoginServlet)
登录处理:LoginServlet
登录成功页面:SuccessServlet。
现在要做的是登录这个动作。1.在浏览器中输入相关URL访问到登录页面PageServlet。
2.输入用户名,密码,点击登录。LoginServlet接受到本次请求数据,去验证,成功则把SuccessServlet页面给浏览器发送过去。失败,继续显示登录页面PageServlet,提示用户重新登陆。其中的转换为新的页就是用的请求转发。
JAVA中这样写:
请求转发:
request.getRequestDispatcher(URL地址).forward(request, response)
需要注意的是request对象是服务器封装好的,它的声明周期只限于本次请求。所以为了让下一个Servlet处理拿到本次request对象,需要将request对象也转发下去,所以后面要跟forward()。这样多个Servlet联动处理了本次请求,这样使得每个Servlet各司其职,逻辑层