JavaWeb中的域对象

域对象

域对象用于存储和传递数据,不同的域对象所能传递数据的范围不同

请求域

HttpServletRequest,传递数据范围是:一次请求之内、请求转发

会话域

HttpSession,传递数据范围是:一次会话内,可以跨多个请求

应用域

ServletContext,请求数据范围是:本应用之内,可以跨多个会话

API

API说明
setAttribute(String key, Object value)设置属性
getAttribute(String key)获取指定属性值
removeAttribute(String key)删除指定属性

案例

  1. 在ControllerA中设置请求域、会话域、应用域

    @WebServlet("/controllerA")
    public class ControllerA extends HttpServlet {
    	public void service(HttpServletRequest req, HttpServletResponse resp) {
    		// 设置请求域
    		req.setAttribute("request", "requestContent");
    		// 请求转发
    		RequestDispatcher dispatcher = req.getRequestDispatcher("/controllerB");
    		dispatcher.forward(req, resp);
    		
    		// 设置会话域
    		HttpSession httpSession = req.getSession();
    		httpSession.setAttribute("session", "sessionContent");
    		
    		// 设置应用域
    		ServletContext app = getServletContext();
    		app.setAttribute("app", "appContent");
    	}
    }
    
  2. 在ControllerB中获取请求域、会话域、应用域

    @WebServlet("/controllerB")
    public class ControllerB extends HttpServlet {
    	public void service(HttpServletRequest req, HttpServletResponse resp) {
    		// 获取请求域
    		String request = (String)req.getAttribute("request");
    		System.out.println("请求域:" + request);
    		
    		// 获取会话域
    		HttpSession httpSession = req.getSession();
    		String session = (String)httpSession.getAttribute("session");
    		System.out.println("会话域:" + session);
    		
    		// 获取应用域
    		ServletContext app = getServletContext();
    		String appContent = (String)app.getAttribute("app");
    		System.out.println("应用域:" + appContent);
    	}
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值