实例解析JSP中EL表达式的各种运用
EL运算符:
<%@pagelanguage="java"contentType="text/html;charset=gb2312"%>
<%@pageimport="java.sql.*"%>
<!DOCTYPEhtml>
<html>
<head>
<title>El算数运算符</title>
</head>
<body>
<tableborder=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>
<tableborder=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>
<tableborder=1>
<tr>
<td>逻辑运算符</td>
<td>结果</td>
</tr>
<tr>
<tdcolspan="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>
<tdcolspan="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>
<tdcolspan="2">逻辑运算符!</td>
</tr>
<tr>
<td>\${!true}</td>
<td>结果${!true}</td>
</tr><tr>
<td>\${!false}</td>
<td>结果${!false}</td>
</tr>
</table>
<tableborder=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>
<tableborder=1>
<tr>
<td>验证运算符</td>
<td>结果</td>
</tr>
<tr>
<td>\${emptyparam.username}</td>
<td>结果${emptyparam.username}</td>
</tr>
<tr>
<td>\${emptyparam.password}</td>
<td>结果${emptyparam.password}</td>
</tr>
</table>
<tableborder=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"]}
与存储有关的内置对象
<!DOCTYPEhtml>
<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>
与输入有关的内置对象
<!DOCTYPEhtml>
<html>
<head>
<title>用户表单</title>
</head>
<body>
<formaction="UserDemo.jsp"method="post">
用户名:<inputtype="text"name="username"/><br/>
密码:<inputtype="password"name="password"/><br/>
姓名:<inputtype="text"name="name"/><br/>
性别:<inputtype="radio"name="sex"value="男">男<inputtype="radio"name="sex"value="女">女<br/>
爱好:<br/>
<inputtype="checkbox"name="interest"value="打篮球">打篮球<br/>
<inputtype="checkbox"name="interest"value="看书">看书<br/>
<inputtype="checkbox"name="interest"value="旅行">旅行<br/>
<inputtype="checkbox"name="interest"value="编程">编程<br/>
<inputtype="submit"value="提交">
<inputtype="reset"value="重置">
</form>
</body>
</html>
<!DOCTYPEhtml>
<html>
<head>
<title>接收用户参数</title>
</head>
<body>
<%
//设置页面编码格式
request.setCharacterEncoding("gb2312");
%>
<%--接收用户参数--%>
用户名:${<spanstyle="color:#003399;">param</span>.username}<br/>
密码:${<spanstyle="color:#003399;">param</span>.password}<br/>
姓名:${<spanstyle="color:#003399;">param</span>.name}<br/>
性别:${<spanstyle="color:#003399;">param</span>.sex}<br/>
爱好:${<spanstyle="color:#003399;">paramValues</span>.interest[0]}
${<spanstyle="color:#003399;">paramValues</span>.interest[1]}
</body>
</html>
cookie内置对象
<!DOCTYPEhtml>
<html>
<head>
<title>设置cookie的值</title>
</head>
<body>
<%
//设置cookie的值
Cookiec=newCookie("username","root");
//添加cookie到客户端
response.addCookie(c);
%>
<ahref="getCookieDemo.jsp">显示cookie的值</a>
</body>
</html>
<spanstyle="color:#000000;"><%@pagelanguage="java"contentType="text/html;charset=gb2312"%>
<!DOCTYPEhtml>
<html>
<head>
<title>取得cookie的值</title>
</head>
<body>
cookie中的username的值为:${cookie.username.value}
</body>
</html>
header内置对象
<!DOCTYPEhtml>
<html>
<head>
<title>取得header的值</title>
</head>
<body>
${header["host"]}<br/>
${header["user-agent"]}<br/>
</body>
</html>
initParam内置对象:获取web站点中设置的环境变量
<%@pagelanguage="java"contentType="text/html;charset=gb2312"%>
<!DOCTYPEhtml>
<html>
<head>
<title>获得环境参数</title>
</head>
<body>
username参数值:${initParam.username}<br/>
</body>
</html>
<?xmlversion="1.0"encoding="ISO-8859-1"?>
<web-appxmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://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内置对象
用来取得有关用户请求和页面的详细信息
<%@pagelanguage="java"contentType="text/html;charset=gb2312"%>
<!DOCTYPEhtml>
<html>
<head>
<title>pageContext演示</title>
</head>
<body>
<tableborder="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中的数据
packagecom.javaweb.ch08;
importjava.util.*;
//一个简单的JavaBean示例
publicclassPerson{
//name属性
privateStringname;
//age属性
privateintage;
//sex属性
privateStringsex;
//friends属性
privateArrayListfriends;
//无参构造方法
publicPerson(){
}
//自定义构造的方法
publicPerson(Stringname,intage,Stringsex){
this.name=name;
this.age=age;
this.sex=sex;
}
//获取name的属性值
publicStringgetName(){
returnname;
}
//获取age属性值
publicintgetAge(){
returnage;
}
//获取sex的属性值
publicStringgetSex(){
returnsex;
}
//设置name的属性
publicvoidsetName(Stringname){
this.name=name;
}
//设置age的属性值
publicvoidsetAge(intage){
this.age=age;
}
//设置sex的属性值
publicvoidsetSex(Stringsex){
this.sex=sex;
}
//设置friends的值
publicvoidsetFriends(ArrayListfriends){
this.friends=friends;
}
//获取friends的属性值
publicArrayListgetFriends(){
returnfriends;
}
}
<%@pagelanguage="java"contentType="text/html;charset=gb2312"%>
<%@pageimport="java.util.*,com.javaweb.ch08.*"%>
<!DOCTYPEhtml>
<html>
<head>
<title>设置JavaBean中的属性</title>
</head>
<body>
<%
//实例化一个Person
Personperson=newPerson("zhangdapeng",24,"男");
//创建一个friends实例
ArrayListfriends=newArrayList();
//添加值
friends.add("wangwu");
friends.add("lisi");
person.setFriends(friends);
//存储在session范围内
session.setAttribute("person",person);
%>
<ahref="GetJavaBean.jsp">跳转到GetJavaBean.jsp</a>
</body>
</html>
<%@pagelanguage="java"contentType="text/html;charset=gb2312"%>
<!DOCTYPEhtml>
<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中的数据
<%@pagelanguage="java"contentType="text/html;charset=gb2312"%>
<%@pageimport="java.util.*,com.javaweb.ch08.*"%>
<!DOCTYPEhtml>
<html>
<head>
<title>设置Map页面</title>
</head>
<body>
<%
//新建一个HashMap
HashMapuserInfo=newHashMap();
//在HashMap中设置值
userInfo.put("username","zhangdapeng");
userInfo.put("password","zhnagda123");
//将值存储到session范围中
session.setAttribute("userInfo",userInfo);
%>
<ahref="GetMapDemo.jsp">跳转到GetMapDemo.jsp</a>
</body>
</html>
<%@pagelanguage="java"contentType="text/html;charset=gb2312"%>
<!DOCTYPEhtml>
<html>
<head>
<title>使用存储器读取map中的数据</title>
</head>
<body>
用户名:${sessionScope.userInfo.username}<br/>
密码:${sessionScope.userInfo.password}<br/>
</body>
</html>
使用存储器读取数组中的数据
<%@pagelanguage="java"contentType="text/html;charset=gb2312"%>
<%@pageimport="java.util.*,com.javaweb.ch08.*"%>
<!DOCTYPEhtml>
<html>
<head>
<title>设置Array页面</title>
</head>
<body>
<%
String[]names={"zhangda1","zhangda2","zhangda3"};
//将值存储到session范围中
session.setAttribute("names",names);
%>
<ahref="GetMapDemo.jsp">跳转到GetArrayDemo.jsp</a>
</body>
</html>
<%@pagelanguage="java"contentType="text/html;charset=gb2312"%>
<!DOCTYPEhtml>
<html>
<head>
<title>使用存储器读取map中的数据</title>
</head>
<body>
用户名1:${sessionScope.names[0]}<br/>
用户名2:${sessionScope.names[1]}<br/>
</body>
</html>
存储器的复杂应用
<%@pagelanguage="java"contentType="text/html;charset=gb2312"%>
<%@pageimport="java.util.*,com.javaweb.ch08.*"%>
<!DOCTYPEhtml>
<html>
<head>
<title>设置Array页面</title>
</head>
<body>
<%
ArrayList<Person>persons=newArrayList<Person>();
Personperson1=newPerson("wangwu",24,"男");
Personperson2=newPerson("wangliu",24,"女");
persons.add(person1);
persons.add(person2);
session.setAttribute("persons",persons);
%>
<ahref="GetMapDemo.jsp">跳转到GetArrayDemo.jsp</a>
</body>
</html>
<%@pagelanguage="java"contentType="text/html;charset=gb2312"%>
<!DOCTYPEhtml>
<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>
