JSP中请求转发与重定向

首先我们创建一个jsp文件,提交表单时跳转到DataServlet,向DataServlet发送一个请求
在这里插入图片描述
这时我们创建了一个DataServlet,这时收到了一个请求,我们通过response的sendRedirect方法,再发送一个新的请求至target.jsp文件。
这就是重定向:客户端浏览器向Web应用服务器端发送一个请求,Web服务器端使用HttpServletResponse的sendRedirect()方法将结果(结果中头信息内HTTP状态码为302,Location响应报头域中保存响应回来的地址)返回客户端浏览器;客户端浏览器收到服务器端结果后解析其头部信息,然后自动按照头部指定地址以GET方式再次向Web应用服务器端发请求,此时地址栏URL发生变化,服务器端接收到新的请求再将结果返回至客户端浏览器,客户端浏览器解释执行返回结果并将执行结果显示给用户,至此该过程结束。

在这里插入图片描述
这是我们的目标jsp文件,这里的request与setAttribute的request不是同一个请求

在这里插入图片描述
因为不是同一个请求,所以我们这里显示为null,但是我们怎么才能使他们是同一个请求呢

在这里插入图片描述
所以我们这里需要用到请求转发:这里的“请求”是名词,请求转发指客户端浏览器向Web服务器端发送请求,服务器端收到请求后进行相应处理后再将该请求转发到另外的资源(即这一“转发”操作是在Web服务器端执行的),服务器端对该资源进行处理后反馈给客户端。

在这里插入图片描述
这里我们可以发现是同一个request,所以能get到Tom。
在这里插入图片描述

发布了101 篇原创文章 · 获赞 3 · 访问量 2263

猜你喜欢

转载自blog.csdn.net/S_Tian/article/details/103412356