HttpServletRequest接口实现数据共享

简介: 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类型,所以当我们去使用变量去接收这个共享数据的时候,这个变量的数据类型要根据之前所存入的共享数据的数据类型来进行搭配,必要的时候需要进行强转。


相关文章
|
5月前
|
Java 应用服务中间件 API
Request继承体系及获取请求数据
Request继承体系及获取请求数据
50 0
|
Java 调度 Spring
深入解析 Java 中的 @Service 注解:优化业务逻辑的组织与管理
在现代软件开发中,良好的代码组织和业务逻辑的模块化是保持代码可维护性和可扩展性的重要因素。而 Java 中的 `@Service` 注解则是实现业务逻辑组织和管理的有力工具。通过该注解,我们可以将业务逻辑标记为服务组件,实现依赖注入和松耦合的架构。本文将带您深入探索 Java 中的 `@Service` 注解,揭示其作用、用法以及在实际开发中的应用场景。
SpringMVC学习(五):向request域对象共享数据的五种方法
SpringMVC学习(五):向request域对象共享数据的五种方法
128 0
SpringMVC学习(五):向request域对象共享数据的五种方法
Servlet学习(三):通过继承HttpServlet类创建Servlet程序
Servlet学习(三):通过继承HttpServlet类创建Servlet程序
234 0
Servlet学习(三):通过继承HttpServlet类创建Servlet程序
|
存储 应用服务中间件 缓存
HttpSession接口实现数据共享
HttpSession接口实现数据共享
381 0
HttpSession接口实现数据共享
|
存储 应用服务中间件
ServletContext接口实现数据共享
ServletContext接口实现数据共享
150 0
ServletContext接口实现数据共享
|
前端开发 应用服务中间件 程序员
HttpServletRequest接口
HttpServletRequest接口
138 0
HttpServletRequest接口
|
存储 资源调度 Java
Java Web——Servlet的数据共享方案:HttpSession接口(会话作用域对象)
Java Web——Servlet的数据共享方案:HttpSession接口(会话作用域对象)
Java Web——Servlet的数据共享方案:HttpSession接口(会话作用域对象)
多个Servlet之间实现数据共享
多个Servlet之间实现数据共享
151 0