Servlet入门(三)数据域

数据域

Servlet中提供了一些域对象,这些域对象可以用来数据存储和数据共享,当然了这些域对象各有优点,比如作用范围不同,按照范围如下:

1、request

一次请求中的范围,通常用于转发中共享数据,请求关闭即销毁

2、session

一次会话中数据共享,会话结束即关闭

3、ServletContext

代表整个web应用,服务器关闭即关闭

域对象存储读取数据的方法如下:

存储数据:setAttribute("键",值)
获得数据:getAttribute("键")
移除数据:removeAttribute("键")


一、request

范围:一次请求中的范围,通常用于转发中共享数据
接下来我们写三个servlet,在第一个servlet1中建立域对象,然后打印数据到控制台,并转发到servlet2中,servlet2也打印域对象对应的数据,servlet3和servlet2一样开始访问

         response.setContentType("text/html;charset=UTF-8");
        //request对象就是一个域对象
        request.setAttribute("name","Tom");
        PrintWriter printWriter=response.getWriter();
        printWriter.println(request.getAttribute("name"));
        System.out.println(request.getAttribute("name"));
        request.getRequestDispatcher("/Reqtrea2").forward(request,response);
//servlet2和servlet3
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter ps=response.getWriter();
        ps.println(request.getAttribute("name"));
        System.out.println(request.getAttribute("name"));

访问servlet1,再访问servlet3,再访问servlet2

Tom
Tom
null
null

二、session

一次会话中数据共享,会话结束即关闭,session是会话技术,存储在服务器中

//得到域对象
HttpSession session=request.getSession();

创建两个servlet,servlet1中建立数据,打印数据,servlet2获得数据打印数据

//servlet1得到域对象
HttpSession session=request.getSession();
session.setAttribute("age","yellow");
System.out.println(session.getAttribute("age"));
        
//servlet12
HttpSession session=request.getSession();
System.out.println(session.getAttribute("age"));

分别访问

yellow
yellow

在浏览器x中访问servlet1,在浏览器y中访问servlet2

yellow
null

三、ServletContext

代表整个web应用,服务器关闭即关闭

 //得到一个域对象,两种都行
        ServletContext servletContent=request.getServletContext();`在这里插入代码片`
         ServletContext servletContent=this.getServletContext();

建立两个Servlet,执行session步骤

ServletContext servletContent=request.getServletContext();
        servletContent.setAttribute("id","110");
        System.out.println(servletContent.getAttribute("id"));
 //得到一个域对象
        ServletContext servletContent=this.getServletContext();
        System.out.println(servletContent.getAttribute("id"));

分别访问,然后更换浏览器继续访问

110
110
110
110
110
110

更换浏览器后仍然可以继续访问,只要服务器不关闭数据就可以被访问到

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值