前言
在学习javaweb的过程中,对于掌握梳理Servlet的客户端重定向和服务器端请求转发的知识点笔记。
一 1.客户端重定向客户端重定向是发生在客户端的过程中,进行重定向的过程是地址栏中url会发生改变,首先的url是第一次请求的路径,变化的路径是服务器端给客户端进行响应后,发送给客户端的路径地址,客户端会立即进行请求新的路径地址。地址栏的路径也会修改为新请求路径的url,同时新访问的组件也会给客户端进行响应。
发生的过程如图所示:
代码如下(示例):
public class Demo4Servlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//客户端重定向
//在客户端首先请求Demo4Servlet时,服务器端会进行响应回复,让客户端去访问另一个路径
resp.sendRedirect("Demo3Servlet");
}
2.服务器端请求转发
服务器端请求转发是发生在服务器中的过程,客户端第一次先服务器端进行请求时,服务端中的组件,又将这个请求转发给了服务器中的另外一个组件。另外一个组件在将客户端的请求进行响应发送给客户端。这个过程客户端是不知道,整个转发的流程均在服务器端中进行完成。所以客户端中地址栏中的内容也是没有发生修改,与第一次请求路径的url一致。
代码如下(示例):
public class Demo3Servlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//请求转发,在服务器内部将请求的路径,转发给Demo4Servlet,在由转发的路径Servlet,进行将响应发给客户端
//服务器内部转发,转发的过程是发生在服务器内部种进行的,在客户端种是无法查看到转发路径的相应流程
req.getRequestDispatcher("Demo4Servlet").forward(req,resp);
}
}



