实例解析JSP中EL表达式的各种运用

内容摘要
EL运算符:




<%@page language="java" contentType="text/html;charset=gb2312"%>
<%@page import="java.sql.*" %>
<!DOCTYPE html>
<html>
<head>
<title>El算数运
文章正文

EL运算符:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<%@page language="java" contentType="text/html;charset=gb2312"%>
<%@page import="java.sql.*" %>
<!DOCTYPE html>
<html>
  <head>
    <title>El算数运算符</title>
  </head>
  <body>
    <table border=1>
      <tr>
        <td>算数运算符</td>
        <td>结果</td>
      </tr>
      <tr>
        <td>加法运算符\${1 + 1}</td>
        <td>结果${1+1}</td>
      </tr>
      <tr>
        <td>减法运算符\${1 - 1}</td>
        <td>结果${1-1}</td>
      </tr>
      <tr>
        <td>乘法运算符\${1 * 2}</td>
        <td>结果${1 * 1}</td>
      </tr>
      <tr>
        <td>除法运算符\${3 / 2}</td>
        <td>结果${3 / 2}</td>
      </tr>
      <tr>
        <td>求余运算符\${3 % 2}</td>
        <td>结果${3 % 2}</td>
      </tr>
    </table>
    <table border=1>
      <tr>
        <td>关系运算符</td>
        <td>结果</td>
      </tr>
      <tr>
        <td>等于运算符\${1 == 1}</td>
        <td>结果${1==1}</td>
      </tr>
      <tr>
        <td>不等于运算符\${1 != 1}</td>
        <td>结果${1!=1}</td>
      </tr>
      <tr>
        <td>小于运算符\${1 < 2}</td>
        <td>结果${1 < 2}</td>
      </tr>
      <tr>
        <td>大于运算符\${3 > 2}</td>
        <td>结果${3 > 2}</td>
      </tr>
      <tr>
        <td>小于等于运算符\${1 <= 2}</td>
        <td>结果${1 <= 2}</td>
      </tr>
      <tr>
        <td>大于等于运算符\${3 >= 2}</td>
        <td>结果${3 >= 2}</td>
      </tr>
    </table>
    <table border=1>
      <tr>
        <td>逻辑运算符</td>
        <td>结果</td>
      </tr>
      <tr>
        <td colspan="2">逻辑运算符&&</td>
      </tr>
      <tr>
        <td>\${true && true}</td>
        <td>结果${true && true}</td>
      </tr>
      <tr>
        <td>\${true && false}</td>
        <td>结果${true && false}</td>
      </tr>
      <tr>
        <td>\${false && false}</td>
        <td>结果${false && false}</td>
      </tr>
      <tr>
        <td colspan="2">逻辑运算符||</td>
      </tr>
      <tr>
        <td>\${true || true}</td>
        <td>结果${true || true}</td>
      </tr><tr>
        <td>\${true || false}</td>
        <td>结果${true || false}</td>
      </tr><tr>
        <td>\${false || false}</td>
        <td>结果${false || false}</td>
      </tr>
      <tr>
        <td colspan="2">逻辑运算符!</td>
      </tr>
      <tr>
        <td>\${!true}</td>
        <td>结果${!true}</td>
      </tr><tr>
        <td>\${!false}</td>
        <td>结果${!false}</td>
      </tr>
    </table>
    <table border=1>
      <tr>
        <td>条件运算符</td>
        <td>结果</td>
      </tr>
      <tr>
        <td>\${2>1?"Yes":"No"}</td>
        <td>结果${2>1?"Yes":"No"}</td>
      </tr>
      <tr>
        <td>\${2<1?"Yes":"No"}</td>
        <td>结果${2<1?"Yes":"No"}</td>
      </tr>
    </table>
    <table border=1>
      <tr>
        <td>验证运算符</td>
        <td>结果</td>
      </tr>
      <tr>
        <td>\${empty param.username}</td>
        <td>结果${empty param.username}</td>
      </tr>
      <tr>
        <td>\${empty param.password}</td>
        <td>结果${empty param.password}</td>
      </tr>
    </table>
    <table border=1>
      <tr>
        <td>括号运算符及运算符的优先级</td>
        <td>结果</td>
      </tr>
    </table>
  </body>
</html>

EL处理内置对象:
“.”和"[]"符号是用来存取数据的

1
2
3
4
5
${applicationScope.user.username}
 
${applicationScope.user[0].username}
 
${applicationScope.user["user-name"]}

通过变量来传值就必须使用[]

1
${applicationScope.user["data"]}

与存储有关的内置对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!DOCTYPE html>
<html>
  <head>
    <title>与存储有关的内置对象</title>
  </head>
  <body>
    <%
      //application范围设置属性name,值为application_name
      application.setAttribute("name","application_name");
      //session范围设置属性name,值为session_name
      session.setAttribute("name","session_name");
      //request范围设置属性name,值为request_name
      request.setAttribute("name","request_name");
      //page范围设置属性name,值为page_name
      pageContext.setAttribute("name","page_name");
    %>
    <%--获取page范围内的name属性--%>
    page范围内的那么属性的值为:${pageScope.name}<br />
    <%--获取request范围内的name的属性--%>
    request范围内的那么属性的值为:${requestScope.name}<br />
    <%--获取session范围内的name的属性--%>
    session范围内的那么属性的值为:${sessionScope.name}<br />
    <%--获取application范围内的name属性--%>
    application范围内的那么属性的值为:${applicationScope.name}<br />
  </body>
</html>

与输入有关的内置对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<!DOCTYPE html>
<html>
  <head>
    <title>用户表单</title>
  </head>
  <body>
    <form action="UserDemo.jsp" method="post">
      用户名:<input type="text" name="username" /><br />
      密码:<input type="password" name="password" /><br />
      姓名:<input type="text" name="name" /><br />
      性别:<input type="radio" name="sex" value="男">男<input type="radio" name="sex" value="女">女<br />
      爱好:<br />
      <input type="checkbox" name="interest" value="打篮球">打篮球<br />
      <input type="checkbox" name="interest" value="看书">看书<br />
      <input type="checkbox" name="interest" value="旅行">旅行<br />
      <input type="checkbox" name="interest" value="编程">编程<br />
      <input type="submit" value="提交">
      <input type="reset" value="重置">
    </form>
  </body>
</html>
 
 
<!DOCTYPE html>
<html>
  <head>
    <title>接收用户参数</title>
  </head>
  <body>
    <%
      //设置页面编码格式
      request.setCharacterEncoding("gb2312");
    %>
    <%--接收用户参数--%>
    用户名:${<span style="color:#003399;">param</span>.username}<br />
    密码:${<span style="color:#003399;">param</span>.password}<br />
    姓名:${<span style="color:#003399;">param</span>.name}<br />
    性别:${<span style="color:#003399;">param</span>.sex}<br />
    爱好:${<span style="color:#003399;">paramValues</span>.interest[0]}
        ${<span style="color:#003399;">paramValues</span>.interest[1]}
  </body>
</html>

cookie内置对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!DOCTYPE html>
<html>
  <head>
    <title>设置cookie的值</title>
  </head>
  <body>
    <%
      //设置cookie的值
      Cookie c = new Cookie("username","root");
      //添加cookie到客户端
      response.addCookie(c);
    %>
    <a href="getCookieDemo.jsp">显示cookie的值</a>
  </body>
</html>
 
<span style="color:#000000;"><%@page language="java" contentType="text/html;charset=gb2312"%>
<!DOCTYPE html>
<html>
  <head>
    <title>取得cookie的值</title>
  </head>
  <body>
    cookie中的username的值为:${cookie.username.value}
  </body>
</html>

header内置对象

1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html>
  <head>
    <title>取得header的值</title>
  </head>
  <body>
    ${header["host"]}<br />
    ${header["user-agent"]}<br />
  </body>
</html>

initParam内置对象:获取web站点中设置的环境变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<%@page language="java" contentType="text/html;charset=gb2312"%>
<!DOCTYPE html>
<html>
  <head>
    <title>获得环境参数</title>
  </head>
  <body>
    username参数值:${initParam.username}<br />
  </body>
</html>
 
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  version="2.5">
  <context-param>
    <param-name>username</param-name>
    <param-value>Zhangdapeng</param-value>
  </context-param>
</web-app>

pageContex内置对象
用来取得有关用户请求和页面的详细信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<%@page language="java" contentType="text/html;charset=gb2312"%>
<!DOCTYPE html>
<html>
  <head>
    <title>pageContext演示</title>
  </head>
  <body>
    <table border="1">
      <tr>
        <td>取得请求的参数的字符串</td>
        <td>${pageContext.request.queryString}</td>
      </tr><tr>
        <td>取得请求URL</td>
        <td>${pageContext.request.requestURL}</td>
      </tr><tr>
        <td>取得web应用名称</td>
        <td>${pageContext.request.contextPath}</td>
      </tr><tr>
        <td>取得HTTP请求方式(POST/GET)</td>
        <td>${pageContext.request.method}</td>
      </tr><tr>
        <td>取得使用的协议</td>
        <td>${pageContext.request.protocol}</td>
      </tr><tr>
        <td>取得用户IP地址</td>
        <td>${pageContext.request.remoteAddr}</td>
      </tr><tr>
        <td>判断session是否为新</td>
        <td>${pageContext.session.new}</td>
      </tr><tr>
        <td>取得session的id</td>
        <td>${pageContext.session.id}</td>
      </tr>
    </table>
  </body>
</html>

EL存取器:
使用存取器读取JavaBean中的数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package com.javaweb.ch08;
import java.util.*;
//一个简单的JavaBean示例
public class Person{
  //name属性
  private String name;
  //age属性
  private int age;
  //sex属性
  private String sex;
  //friends属性
  private ArrayList friends;
  //无参构造方法
  public Person(){
  }
  //自定义构造的方法
  public Person(String name,int age,String sex){
    this.name = name;
    this.age = age;
    this.sex = sex;
  }
  //获取name的属性值
  public String getName(){
    return name;
  }
  //获取age属性值
  public int getAge(){
    return age;
  }
  //获取sex的属性值
  public String getSex(){
    return sex;
  }
  //设置name的属性
  public void setName(String name){
    this.name = name;
  }
  //设置age的属性值
  public void setAge(int age){
    this.age = age;
  }
  //设置sex的属性值
  public void setSex(String sex){
    this.sex = sex;
  }
  //设置friends的值
  public void setFriends(ArrayList friends){
    this.friends = friends;
  }
  //获取friends的属性值
  public ArrayList getFriends(){
    return friends;
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<%@page language="java" contentType="text/html;charset=gb2312"%>
<%@page import="java.util.*,com.javaweb.ch08.*" %>
<!DOCTYPE html>
<html>
  <head>
    <title>设置JavaBean中的属性</title>
  </head>
  <body>
    <%
    //实例化一个Person
    Person person = new Person("zhangdapeng",24,"男");
    //创建一个friends实例
    ArrayList friends = new ArrayList();
    //添加值
    friends.add("wang wu");
    friends.add("li si");
    person.setFriends(friends);
    //存储在session范围内
    session.setAttribute("person",person);
      
    %>
    <a href="GetJavaBean.jsp">跳转到GetJavaBean.jsp</a>
  </body>
</html>
 
<%@page language="java" contentType="text/html;charset=gb2312"%>
<!DOCTYPE html>
<html>
  <head>
    <title>取得JavaBean中的属性值</title>
  </head>
  <body>
    姓名:${sessionScope.person.name}<br />
    年龄:${sessionScope.person.age}<br />
    性别:${sessionScope.person.sex}<br />
    朋友:${sessionScope.person.friends[0]},${sessionScope.person.friends[1]}<br />
  </body>
</html>

使用存储器读取Map中的数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<%@page language="java" contentType="text/html;charset=gb2312"%>
<%@page import="java.util.*,com.javaweb.ch08.*" %>
<!DOCTYPE html>
<html>
  <head>
    <title>设置Map页面</title>
  </head>
  <body>
    <%
      //新建一个HashMap
      HashMap userInfo = new HashMap();
      //在HashMap中设置值
      userInfo.put("username","zhangdapeng");
      userInfo.put("password","zhnagda123");
      //将值存储到session范围中
      session.setAttribute("userInfo",userInfo);
        
    %>
    <a href="GetMapDemo.jsp">跳转到GetMapDemo.jsp</a>
  </body>
</html>
 
<%@page language="java" contentType="text/html;charset=gb2312"%>
<!DOCTYPE html>
<html>
  <head>
    <title>使用存储器读取map中的数据</title>
  </head>
  <body>
    用户名:${sessionScope.userInfo.username}<br />
    密码:${sessionScope.userInfo.password}<br />
  </body>
</html>

使用存储器读取数组中的数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<%@page language="java" contentType="text/html;charset=gb2312"%>
<%@page import="java.util.*,com.javaweb.ch08.*" %>
<!DOCTYPE html>
<html>
  <head>
    <title>设置Array页面</title>
  </head>
  <body>
    <%
      String[] names = {"zhangda1","zhangda2","zhangda3"};
      //将值存储到session范围中
      session.setAttribute("names",names);
        
    %>
    <a href="GetMapDemo.jsp">跳转到GetArrayDemo.jsp</a>
  </body>
</html>
 
<%@page language="java" contentType="text/html;charset=gb2312"%>
<!DOCTYPE html>
<html>
  <head>
    <title>使用存储器读取map中的数据</title>
  </head>
  <body>
    用户名1:${sessionScope.names[0]}<br />
    用户名2:${sessionScope.names[1]}<br />
  </body>
</html>

存储器的复杂应用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<%@page language="java" contentType="text/html;charset=gb2312"%>
<%@page import="java.util.*,com.javaweb.ch08.*" %>
<!DOCTYPE html>
<html>
  <head>
    <title>设置Array页面</title>
  </head>
  <body>
    <%
      ArrayList<Person> persons = new ArrayList<Person>();
        
      Person person1 = new Person("wang wu",24,"男");
      Person person2 = new Person("wang liu",24,"女");
        
      persons.add(person1);
      persons.add(person2);
        
      session.setAttribute("persons",persons);
        
    %>
    <a href="GetMapDemo.jsp">跳转到GetArrayDemo.jsp</a>
  </body>
</html>
 
<%@page language="java" contentType="text/html;charset=gb2312"%>
<!DOCTYPE html>
<html>
  <head>
    <title>使用存储器读取map中的数据</title>
  </head>
  <body>
    用户名1:${sessionScope.persons[0].name},${sessionScope.persons[0].age},${sessionScope.persons[0].sex}<br />
    用户名2:${sessionScope.persons[1].name},${sessionScope.persons[1].age},${sessionScope.persons[1].sex}<br />
  </body>
</html>


代码注释

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!