实例解析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>