源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 282|回复: 23

[JSP编程] 实例解析JSP中EL表达式的各种运用

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2016-4-14 14:35:29 | 显示全部楼层 |阅读模式
这篇文章主要介绍了JSP中EL表达式的各种运用,比如用EL处理数学运算、内置对象以及数据的存取等,代码示例都相当实用,需要的朋友可以参考下

EL运算符:

<%@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处理内置对象:
“.”和"[]"符号是用来存取数据的

${applicationScope.user.username}

${applicationScope.user[0].username}

${applicationScope.user["user-name"]}

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

${applicationScope.user["data"]}

与存储有关的内置对象

<!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>

与输入有关的内置对象

<!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内置对象

<!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内置对象

<!DOCTYPE html>
<html>
  <head>
    <title>取得header的值</title>
  </head>
  <body>
    ${header["host"]}<br />
    ${header["user-agent"]}<br />
  </body>
</html>

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

<%@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内置对象
用来取得有关用户请求和页面的详细信息

<%@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中的数据

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;
  }
}

<%@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中的数据

<%@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>

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

<%@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>

存储器的复杂应用

<%@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>

回复

使用道具 举报

6

主题

2万

回帖

425

积分

中级会员

Rank: 3Rank: 3

积分
425
发表于 2022-9-10 11:45:35 | 显示全部楼层
好东西一定要看看!
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2022-11-8 18:02:32 | 显示全部楼层
天天源码社区。。。。
回复 支持 反对

使用道具 举报

3

主题

2万

回帖

172

积分

注册会员

Rank: 2

积分
172
发表于 2023-2-23 12:09:11 | 显示全部楼层
谢谢楼主分享
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-4-9 01:21:43 | 显示全部楼层
啦啦啦啦啦德玛西亚
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

69

积分

注册会员

Rank: 2

积分
69
发表于 2023-9-8 10:21:46 | 显示全部楼层
抽根烟,下来看看再说
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

99

积分

注册会员

Rank: 2

积分
99
发表于 2023-11-12 03:17:51 | 显示全部楼层
dfdsafdsfdsfdsf
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

319

积分

中级会员

Rank: 3Rank: 3

积分
319
发表于 2024-2-27 15:05:15 | 显示全部楼层
先把创新班才能下班才能下班
回复 支持 反对

使用道具 举报

16

主题

2万

回帖

174

积分

注册会员

Rank: 2

积分
174
发表于 2024-5-22 11:34:57 | 显示全部楼层
啪啪啪生怕PSP怕
回复 支持 反对

使用道具 举报

9

主题

2万

回帖

420

积分

中级会员

Rank: 3Rank: 3

积分
420
发表于 2024-6-5 10:40:51 | 显示全部楼层
好东西可以可以可以可以
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-24 11:06 , Processed in 0.163858 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表