实例解析JSP中EL表达式的各种运用
内容摘要
EL运算符:
<%@page language="java" contentType="text/html;charset=gb2312"%>
<%@page import="java.sql.*" %>
<!DOCTYPE html>
<html>
<head>
<title>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> |
代码注释