JAVA中级(九)request(2)请求转发,服务器内部的交流

本文深入讲解了Servlet请求转发的工作原理及实现方式,演示了通过servlet1处理name参数后,如何将request和response转发给servlet2处理sex参数的具体代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

request请求转发,就是当一个servlet接收到了一个请求,这个servlet处理完这个请求后需要另外一个servlet接着继续处理。那么此时将这个已经先处理了一半的request,reeponse发送给这个第二个servlet的过程就是request请求转发

过程大致如下所示:
在这里插入图片描述
request请发是在服务器内部进行的和客户端没有关系。因此不会改变请求的url。在日常开发中请求转发是经常使用的。比如servlet转发到一个jsp页面。

1,如何实现请求转发?
1,使用getRequestDispatcher(String);//获取请求转发,传入转发目的地的路径
2,在使用forward(request,response);//将request和response转发过去.
接下来模拟一个场景,就是发送一个请求包含name和sex两个参数。name由servlet1处理sex由servlet2处理。

@WebServlet(name = "ServletDemo1",urlPatterns = {"/servletDemo1"})
public class ServletDemo1 extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//模拟客户端发送一个请求带有name和sex参数。这个servlet处理name,
		//sex参数又servlet2处理
        String name = request.getParameter("name");
        System.out.println("servletDemo1:"+name);
        //请求转发
      request.getRequestDispatcher("/servletDemo2").forward(request,response);
    }
}

@WebServlet(name = "ServletDemo2", urlPatterns = {"/servletDemo2"})
public class ServletDemo2 extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //这个处理sex
        String sex = request.getParameter("sex");
        System.out.println("servletDemo2:"+sex);
    }
}

启动tomcat用get形式直接在浏览器输入链接发送请求,这是我的请求路径
http://localhost:8080/qjq/servletDemo1?name=zhangsan&sex=man
然后回车发送请求,结果如下:
在这里插入图片描述
说明servletDemo1已经成功把request交给servletDemo2来处理。

注意点:
1,请求转发是在服务器内部进行的,是servlet交流的手段。与客户端无关。
2,一次请求只产生一个request和response.在转发过程中的request和response是同一个。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值