Servlet中的数据共享

Request的数据共享

(请求转发时的数据共享)

域对象:一个有作用范围的对象,可以在范围内共享数据
request域:代表一次请求的范围,一般用于请求转发的多个资源中共享数据
方法:
  1. void setAttribute(String name,Object obj):存储数据
  2. Object getAttitude(String name):通过键获取值
  3. void removeAttribute(String name):通过键移除键值对
实例代码

第一个servlet中存入数据

@WebServlet("/rqshareDemo01")
public class rqshareDemo01 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        System.out.println("rqshareDemo01被访问");
        request.setAttribute("msg","hello");  request.getRequestDispatcher("/rqshareDemo02").forward(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}

第二个servlet中获取数据

@WebServlet("/rqshareDemo02")
public class rqshareDemo02 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        System.out.println("rqshareDemo01被访问了");
        Object msg = request.getAttribute("msg");
        System.out.println(msg);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}

ServletContext的数据共享

域对象:共享数据
  1. setAttribute(String name,Object value)
  2. getAttribute(String name)
  3. removeAttribute(String name)
ServletContext对象范围所有用户所有请求的数据。

即第一次请求时存入数据(请求一个项目中的一个资源时存入数据),当第一次请求结束后(关闭浏览器后),在第二次请求时也能够获取到数据(重新打开浏览器请求同一个项目中的其他资源时可以获取到存入的数据)。
ServletContext对象在服务器开启时可以被创建,服务器关闭才会被释放。

实例代码

一个项目中的某一个资源文件存入数据

@WebServlet("/SCshareDemo01")
public class SCshareDemo01 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //获取servletContext对象
        ServletContext servletContext = this.getServletContext();
        //存入数据
        servletContext.setAttribute("msg","hello");

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}

同一个项目中的其他资源文件可以访问数据

@WebServlet("/SCshareDemo02")
public class SCshareDemo02 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //获取servletContext对象
        ServletContext servletContext = this.getServletContext();
        //获取数据
        Object msg = servletContext.getAttribute("msg");
        System.out.println(msg);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值