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


相关文章
|
7月前
|
Java 应用服务中间件 API
Request继承体系及获取请求数据
Request继承体系及获取请求数据
61 0
|
存储 应用服务中间件 缓存
HttpSession接口实现数据共享
HttpSession接口实现数据共享
390 0
HttpSession接口实现数据共享
|
存储 应用服务中间件
ServletContext接口实现数据共享
ServletContext接口实现数据共享
162 0
ServletContext接口实现数据共享
|
前端开发 应用服务中间件 程序员
HttpServletRequest接口
HttpServletRequest接口
152 0
HttpServletRequest接口
|
存储 资源调度 Java
Java Web——Servlet的数据共享方案:HttpSession接口(会话作用域对象)
Java Web——Servlet的数据共享方案:HttpSession接口(会话作用域对象)
Java Web——Servlet的数据共享方案:HttpSession接口(会话作用域对象)
多个Servlet之间实现数据共享
多个Servlet之间实现数据共享
165 0
|
存储 Java
Java Web——Servlet的数据共享方案:HttpServletRequest接口(请求作用域对象)
Java Web——Servlet的数据共享方案:HttpServletRequest接口(请求作用域对象)
Java Web——Servlet的数据共享方案:HttpServletRequest接口(请求作用域对象)
|
Java 应用服务中间件
Java Web——Servlet的数据共享方案:ServletContext接口(全局作用域对象)
Java Web——Servlet的数据共享方案:ServletContext接口(全局作用域对象)
Java Web——Servlet的数据共享方案:ServletContext接口(全局作用域对象)