JSP内置对象作用域与EL表达式

JSP内置对象作用域

  • page、request、session、application

  • 都具有setAttribute、getAttribute方法来存取数据

  • page 作⽤域:对应的内置对象是 pageContext

  • request 作⽤域:对应的内置对象是 request。 利用转发跳转是同一个请求,重定向是不同的请求。

  • session 作⽤域:对应的内置对象是 session

  • application 作⽤域:对应的内置对象是 application

  • page < request < session < application

  • page 只在当前⻚⾯有效。

  • request 在⼀次请求内有效。 转发可以,重定向不可以。

  • session 在⼀次会话内有效。 转发和重定向都可以。

  • application 对应整个 WEB 应⽤的。Tomcat不关闭,都可以进行存取数据。

  • 网站访问量统计

    <%
        Integer count = (Integer) application.getAttribute("count");
        if (count == null){
            count = 1;
            application.setAttribute("count",count);
        }else{
            count++;
            application.setAttribute("count",count);
        }
    %>
    您是当前的第<%=count%>位访客

EL表达式

  • Expression Language表达式语⾔,替代 JSP ⻚⾯中数据访问时的复杂编码,可以⾮常便捷地取出域对象(pageContext、request、session、application)中保存的数据,前提是⼀定要先 setAttribute, EL 就相当于在简化 getAttribute

  • 语法:${变量名}变量名就是setAttribute 对应的 key 值。

<%
    String name = (String) request.getAttribute("name");
%>
<%=name%>
<hr/>
${name}
//二者功能相同
  • 1、EL 对于 4 种域对象的默认查找顺序:

  • pageContext -》request-〉session-》application

  • 按照上述的顺序进⾏查找,找到⽴即返回,在 application中也⽆法找到,则返回 null

  • 2、指定作⽤域进⾏查找

pageContext${pageScope.name}

request${requestScope.name}

session${sessionScope.name}

application${applicationScope.name}

数据级联:

<%
// 		pageContext.setAttribute("name","page");
// 		request.setAttribute("name","request");
// 		session.setAttribute("name","session");
// 		application.setAttribute("name","application");
 		User user = new User(1,"张三",86.5,new Address(1,"⼩寨"));
 		System.out.println(user.toString());
		 pageContext.setAttribute("user",user);
	 %>
 <table>
 	<tr>
 		<th>编号</th>
 		<th>姓名</th>
 		<th>成绩</th>
 		<th>地址</th>
 	</tr>
 	<tr>
 		<td>${user.id}</td>
 		<td>${user.name}</td>
 		<td>${user.score}</td>
 		<td>${user.address}</td>
	 </tr>
 </table>
  • ${user["id"]}:也可以取出,不如第一种常用

EL执行表达式

  • 写到一个花括号里面
${num1&&num2}
&& || ! < > <= <= ==

&& and
|| or
! not
== eq
!= ne
< lt
> gt
<= le
>= ge
empty 变量为 null,⻓度为0的String,size为0的集合
${empty num3}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值