[Java Web] EL

一、概述

使用EL表达式可简化JSP中对象的引用,使代码更加规范,可读性与可维护性更好。

属性范围 EL实例 说明
Page ${pageScope.name} 获取Page范围的名为name的属性
Request ${requestScope.name} 获取Request范围的名为name的属性
Session ${sessionScope.name} 获取Session范围的名为name的属性
Application ${applicationScope.name} 获取Application范围的名为name的属性
无指定范围 ${name} 获取以上所有范围的名为name的属性

二、运算符

<%@ page import="bean.Student" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page isELIgnored="false" %>
<html>
<body>
<!-- 空判断运算 -->
<%
    session.setAttribute("java", 0);
    request.setAttribute("javascript", 1);
%>
${empty sessionScope.java}<br/>
${empty javascript}<br/>
${empty null}<br/>

<!-- 访问数据 -->
<jsp:useBean class="bean.Student" id="stu" scope="session"/>
<jsp:setProperty name="stu" property="id" value="30"/>
<jsp:setProperty name="stu" property="name" value="Yao"/>
<%
    int[] array = {0, 1, 2, 3};
    session.setAttribute("array", array);
%>
${stu.id}<br/>
${stu["name"]}<br/>
${array[1]}<br/>

<!-- 算术运算符 -->
<%
    session.setAttribute("x", 0);
    session.setAttribute("y", 1);
%>
${x+y}<br/>
${x-y}<br/>
${x*y}<br/>
${x/y}<br/> ${x div y}<br/>
${x%y}<br/> ${x mod y}<br/>

<!-- 关系运算符 -->
${x==y}<br/>    ${x eq y}<br/>
${x!=y}<br/>    ${x ne y}<br/>
${x > y}<br/>   ${x gt y}<br/>
${x >= y}<br/>  ${x ge y}<br/>
${x < y}<br/>   ${x lt y}<br/>
${x <= y}<br/>  ${x le y}<br/>

<!-- 逻辑运算符 -->
<%
    session.setAttribute("x", true);
    session.setAttribute("y", false);
%>
${x && y}<br/>  ${x and y}<br/>
${x || y}<br/>  ${x or y}<br/>
${!x}<br/>      ${not y}<br/>

<!-- 条件运算符 -->
${x?x:y}<br/>

</body>
</html>

三、隐含对象

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page isELIgnored="false" %>
<html>
<body>
<!-- 使用pageContext获取内置对象及其属性 -->
请求:${pageContext.request}<br/>
协议:${pageContext.request.protocol}<br/>

<!-- 使用param获取单个参数 -->
<!-- 使用paramValues获取多个参数 -->
<form action="index.jsp" method="post">
    <input type="text" name="user" placeholder=""/><br/>
    <input type="checkbox" name="like" value="篮球" placeholder=""/>篮球
    <input type="checkbox" name="like" value="足球" placeholder=""/>足球
    <input type="checkbox" name="like" value="网球" placeholder=""/>网球
    <input type="checkbox" name="like" value="棒球" placeholder=""/>棒球
    <br/>
    <input type="submit" value="提交"><br/>
</form>
用户:${param.user}<br/>
爱好:<!-- 参数不存在时返回空字符串 -->
${paramValues.like[0]} &nbsp;
${paramValues.like[1]} &nbsp;
${paramValues.like[2]} &nbsp;
${paramValues.like[3]} &nbsp;
<br/>

<!-- 使用header获取单个头值 -->
<!-- 使用headerValues获取多个头值 -->
连接:${header.connection}<br/>
主机:${header["host"]}<br/>
代理:${header["user-agent"]}<br/>

<!-- 使用cookie对象获取cookie -->
<%
    Cookie testCookie = new Cookie("testCookie", "cookieContent");
    response.addCookie(testCookie);
%>
Cookie:${cookie.testCookie.value}<br/>

<!-- 使用initParam获取初始化参数 -->
<!--
<context-param>
        <param-name>project</param-name>
        <param-value>java web</param-value>
</context-param>
<context-param>
        <param-name>language</param-name>
        <param-value>java</param-value>
</context-param>
-->
项目:${initParam.project}<br/>
语言:${initParam.language}<br/>
</body>
</html>

四、禁用

<!-- index.jsp -->
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!-- 禁用方法1 -->
<%@ page isELIgnored="true" %>
<html>
<body>
<!-- 禁用方法2 -->
<!-- 显示反斜杠后的全部内容而非EL表达式的结果 -->
\${pageContext.session.id}
</body>
</html>

<!-- web.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!-- 禁用方法3 -->
    <jsp-config>
        <jsp-property-group>
            <url-pattern>*.jsp</url-pattern>
            <el-ignored>true</el-ignored>
        </jsp-property-group>
    </jsp-config>
</web-app>

原文地址:https://www.cnblogs.com/arseneyao/p/9371650.html

时间: 2024-10-11 15:26:35

[Java Web] EL的相关文章

Java Web EL、JSP、Servlet变量

EL 11 JSP 9 Servlet JSP类别pageContext pageContext * 作用域pageScope pageContext.getAttribute() *requestScope request.getAttribute() HttpServletRequest.getAttribute() sessionScope session.getAttribute() HttpSession.getAttribute()applicationScope applicati

[Java.web]EL表达式

<%@page import="cn.itcast.domain.Address"%> <%@page import="cn.itcast.domain.Person"%> <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML> <html&

Java Web EL JSTL的用法

1.导入包 fastjson-1.2.2.jar 2.JSP文件加入 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 3.用法 // List <c:forEach var="id" items="${list}"> ${id}</br> </c:forEach> //Map JSTL表达式的属性里不

Java web基础总结十之—— jsp EL表达式

Java web基础总结十之-- jsp EL表达式 一.EL表达式简介 EL 是Expression Language的缩写.在jsp中有很大的作用,EL主要有以下一些作用:获取数据,替换JSP页面中的脚本表达式,以从各种类型的web域中检索java对象.获取数据.还可以执行运算,利用EL表达式可以在JSP页面中执行一些基本的关系运算.逻辑运算和算术运算,以在JSP页面中完成一些简单的逻辑运算,例如 ${user==null}.还可以获取web开发常用的jsp的隐式对象,利用这些隐式对象,we

熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。

熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验. 1.说一说Servlet生命周期(非常重要) Servlet生命周期包括三部分: 初始化:Web容器加载servlet,调用init()方法 只执行一次 处理请求:当请求到达时,运行其service()方法.service()自动调用与请求相对应的doXXX

使用Struts框架的Java Web项目中的两个Session的区别和常见的Session取值为空的错误

我的百度知道回答,感觉这个知识很有意义,专门贴出来. 不过还有待验证的地方,就是 ActionContext.getContext().getSession("name", "Tom"); //如果在JSP中通过 EL 或者 Struts2 标签怎么显示? 以下是回答正文. 很多初学Java Web的同学因为使用 Strut2框架而分不清两个 Session的区别. 1.   JSP/Servlety有个原生的 session 对象,这是9大内置对象中的一个,书上写

反思java web的发展

本来网站都是一个个静态HTML的,但很快我们就不满足于这样了.动态网页应运而生.一开始是Servlet.其代码类似于下面这样.主要是Java代码,然后用out一点一点输出HTML代码.当然代码无比丑陋,且美工人员几乎不能理解这样的代码. out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n"); out.write("<html&g

Java WEB 笔记

1. 部署并启动 tomcat 服务器 1). 解压 apache-tomcat-version 到一个非中文目录下 2). 配置一个环境变量,JAVA_HOME(指向 JDK 安装目录)或 JRE_HOME 3). 通过双击 apache-tomcat-version\bin 目录下的 catalina run 或 startup.bat,启动服务器,catalina.bat 4). 可以在浏览器中输入 localhost:8080 来检验 Tomcat 安装是否正确 5). 若已经启动了一个

Java Web表达式注入

原文:http://netsecurity.51cto.com/art/201407/444548.htm 0×00 引言 在2014年6月18日@终极修炼师曾发布这样一条微博: 链接的内容是一个名为Jenkins的服务,可以在没有password的情况下受到攻击.而攻击方法比较有趣,Jenkins提供了一个Script Console功能,可以执行Groovy 脚本语言.下面我们来看下维基百科对于这个脚本语言的解释:  Groovy是Java平台上设计的面向对象编程语言.这门动态语言拥有类似P