HttpServletRequest接口实现数据共享

1.介绍

(1)在同一个网站中,如果两个Servlet之间通过【请求转发】方式进行调用,彼此之间共享同一个请求协议包。而一个请求协议包只对应一个请求对象,因此servlet之间共享同一个请求对象,此时可以利用这个请求对象在两个Servlet之间实现数据共享

(2) 在请求对象实现Servlet之间数据共享功能时,开发人员将请求对象称为【请求作用域对象】

2.代码实现:

需求:OneServlet通过请求转发申请调用TwoServlet时,需要给TwoServlet提供共享数据

 OneServlet中的代码实现为:

public class OneServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setAttribute("name","王五");
        req.getRequestDispatcher("/two").forward(req,resp);
    }
}

 通过请求对象req的属性setAttribute方法来存储我们的数据,然后调用请求转发到我们的TwoServlet类来为其提供我们的共享数据。

注意此处的存储的数据可以是任意类型。

TwoServlet中的实现代码为:

public class TwoServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=utf-8");
        String name=(String)req.getAttribute("name");
        PrintWriter printWriter=resp.getWriter();
        printWriter.print(name);
        printWriter.flush();
    }
}

在TwoServlet类中,我们通过请求对象的属性getAttribute方法来获取我们的共享数据。

注意:因为getAttribute方法的返回值为Object类型,所以当我们去使用变量去接收这个共享数据的时候,这个变量的数据类型要根据之前所存入的共享数据的数据类型来进行搭配,必要的时候需要进行强转。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值