Servlet的请求转发

本文介绍了Servlet中的请求转发,强调了在服务器内部完成,不涉及客户端状态改变的特点。通过HttpServletRequest的getRequestDispatcher()方法获取分发器,并调用forward()方法实现转发。在转发过程中,请求参数和数据可以在servlet间共享。请求转发常用于用户信息校验和多步骤处理,整个过程对浏览器而言仍为单一HTTP请求。
摘要由CSDN通过智能技术生成

今天我们来介绍servlet的请求转发,通常在我们的实际开发中,由于功能的需求,可能一个servlet不足以实现一个功能,那么这时我们就需要多个servlet来实现该功能,就是通过servlet来去调用其他的servlet。

我们通过HttpServletRequest对象有一个getRequestDispatcher()方法,可以获得一个分发器,将我们需要转发的资源名写进去,然后调用forward()。这里我们需要注意一下,我们这个给hrrpServletRequest是一个域对象,它可以setAttribute往里面放入数据,getAttribute。因此我们在转发时,将我们的request对象穿给我们的目标servlet,那么我们的目标servlet就可以使用我们放入的数据了。

 RequestDispatcher requestDispatcher = req.getRequestDispatcher("/registerServlet");
        requestDispatcher.forward(req,resp);

servlet是如何实现请求转发的

        我们都知道,浏览器发送一个请求到服务器,服务器将请求封装然后找到对应的servlet对业务进行处理,那么这时我们就可以使用请求转发,tomcat就会对应的根据我们的资源名找到servlet,再在下一个servlet进行业务的处理,然后然会数据给浏览器,这里需要注意的是,我们请求转发的所有的过程,都只是在服务端完成的,没有涉及到客户端/浏览器,浏览器的状态栏的地址是没有更改的,一般我们使用请求转发完成一个用户信息的校验,根据用户输入的ID等,判断用户是什么身份,然后请求转发到对应的界面,在进行多次的请求转发,仍然只是一次的Http请求,可以转发到web-info的资源。

接下来我们就来介绍请求转发的流程,由于请求转发是在服务器内部完成的,所以我们使用的request对象的getrequestdispatcher的分发器,我们可以使用这个分发器来指定我们转发的位置,然后调用foward(request,response)来进行转发,如果我们请求转发的资源是servlet,tomcat(服务器)就会根据web.xml文件找到指定的servlet,最后所有的业务都完成后,servlet就会将数据返回给服务器,再由服务器将资源封装成http响应的形式发送给浏览器,浏览器则会以响应的方式获取数据

         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值