Servlet中的作用域,以及el表达式

一、四大作用域

1、应用域(application/servletContext)

(1)应用域的生命周期

  • 在容器启动的时候就创建
  • 在容器关闭的时候就销毁
  • 存活时间比较长

(2)什么样的数据适合放在应用域

  • 所有servlet共享的数据

    —————————————  因为应用域的特性就是所有servlet共享

  • 比较小的数据

    —————————————   因为应用域存活时间很长,如果放在里面长期不使用,就会导致浪费空间

  • 不经常被修改的数据

    —————————————  共享的数据在多线程的情况下可能会导致数据不安全

(3)如何向应用域中存放数据

//向应用域存放数据
ServletContext servletContext = getServletContext();

//第一个参数:标识符
//第二个参数:具体存放的数据
servletContext.setAttribute("username","admin");

(4)从应用域中获取数据

Object username = servletContext.getAttribute("username");


2、请求域(request)

(1)请求域的生命周期

  • 一个service方法结束了,请求域的生命周期就结束了
  • 一次请求结束,请求域的生命周期就结束了

(2)不同servlet共享数据

  • 把数据放在应用域中
  • 把数据放在请求域中,通过请求转发共享数据

(3)向请求域中添加数据

request.setAtrribute("username","admin");

(4)从请求域中获取数据

Object username = request.getAtrribute("username");


3、会话域(Session)

(1)会话域的生命周期

  • 在第一次调用 request.getSession() 方法时,服务器会检查是否已经有对应的session,如果没有就在内存 中创建一个session并返回。
  • 一次会话从开始到结束,超过默认(设定)保存时间,就清除

(2)向会话域中添加数据

HttpSession session = req.getSession();
session.setAttribute("username", "admin");

(3)从会话域中获取数据

Object username = session.getAttribute("username");


4、前三个域的总结

大小关系请求域 < 会话域 < 应用域 
使用频率请求域 > 会话域 > 应用域


五、pageContext

  • 最小的域,只在当前的jsp页面中存活
  • 存取数据也和上面的三个域一样,使用setAtrribute()和getAtrribute()方法


六、jsp中的el表达式

1、el表达式出现的目的

  • 方便我们从域中获取对象

2、格式

  • ${}

3、默认规则

  • 如果没有指定从哪个域中取,就默认先从最小的域中取出来。如果没有就再取大一点的域中去找

4、如何指定域

  • pageScope表示从pageContext域中寻找
  • requestScope表示从请求域中寻找
  • sessionScope表示从会话域中寻找
  • applicationScope表示从应用域中寻找
${pageScope.username}
${requestScope.username} 
${sessionScope.username} 
${applicationScope.username}

5、使用el表达式获取java对象

<%-- 
使用el表达式获取java对象。 
--%> 
<% 
    Person person = new Person(); 
    person.setName("zs"); 
    person.setAge(17); 
    person.setAddress("成都市金牛区"); 

    //把java对象放在请求域中 
    request.setAttribute("person",person);  
%>

<%--使用el表达式获取对象 底层依据。依赖的get方法 --%> 
${person.name} 
${person.age} 
${person.address} 
${person.salary} 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值