一、知识点
el.jsp
<%@ page language="java" import=“java.util.*" pageEncoding="utf-8"%>
<!--使用传统方式获取作用域对象的数据--!>
<h3>EL表达式学习,使用传统方式获取作用域对象的数据</h3>
<b><%=request.getParameter("uname")%></b>
<b><%=request.getAttribute("user").getAddr().getTown() %></b><br>
<b><%= ((ArrayList) request.getAttribute("list")).get(2) %></b><br/>
传统方式获取作用域数据:
缺点:导入包
需要强制转化
获取数据的代码过于麻烦
使用EL表达式获取作用域数据
作用:获取作用域中的对象的数据
注意:获取的是pagecontext request session application 四个对象中的数据 其他数据一概不理会
找到了则获取返回 找不到则什么也不做,也不报错
表达式:
request对象存储了请求数据---->param.键名
request对象存储了请求数据----paramValues.键名 返回的是数组
通过setAttribute方法存储的作用域对象中的数据
${键名}返回键名所对应的值
注意:
如果存储的是普通字符则直接返回
如果存储的是对象,则返回的是对象
获取对象中的数据
普通对象
${键名.属性名}
集合对象:
list对象 ---->${键名[角标]}
map集合 --->${键名.map集合存储的键名}
<% String str2="呵呵呵"%>
<!--使用el表达式获取作用域对象的数据--!>
<h3>EL表达式学习</h3>
<b>${param.uname}</b><br/>
<b>${paramValues.fav[0]}</b><br/>
//相当于地址栏传参
<b>${str}</b><br/>
<b>${user.addr.town}</b><br/>
<b>${list[2]}</b><br/>
<b>${map.c}</b><br/>
<b>${map.a1.addr.city}</b><br/>
查找顺序
pageContext--->request---->session---->application
注意:
每次查找都是从小到大进行查找,找到了则获取,不再继续找了。
指定查找:
${pageScope.键名}----${requestScope.键名}--${sessionScope.键名}----${applicationScope.键名}
${1+2}-----${1*2}-----${sex==1?'男':'女'}---${1+"2"}
EL请求头数据和cookie数据
${header}---${headerValues}
EL请求获取头数据和cookie数据
${header}--->返回所有的请求头数据
${header["键名"]}--->返回指定的键名的请求头数据
${headerValues["键名"]}------>返回指定的键名(同键不同值)的值的数组
获取Cookie数据
${cookie}---->返回存储所有的cookie对象的集合
${cookie.键名}----返回指定的cookie对象
${cookie.键名.Cookie存储数据的键名}-----返回指定的cookie对象存储的数据值
二、实现
结构图
<%@ page language="java" contentType="text/html; charset=utf-8" import="test.Student"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<% Student student=new Student(18,"扬弟弟","123456");
pageContext.setAttribute("student", student) ;
%>
userInformation=${student.uname }<br/>
</body>
</html>
Student类
package test;
public class Student {
private int age;
private String uname;
private String pwd;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public Student(int age, String uname, String pwd) {
super();
this.age = age;
this.uname = uname;
this.pwd = pwd;
}
}
实现结果:
userInformation=扬弟弟
二、通过另一个页面来获取参数
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/show.jsp" method="POST">
姓名:<input type="text" name="name">
密码 :<input type="text" name="password">
<input type="submit" value="注册">
爱好:<input type="checkbox" name="hobby" value="swimming"/> 游泳
<input type="checkbox" name="hobby" value="clibming"> 爬山
<input type="checkbox" name="hobby" value="reading">阅读
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
name=${param.name}<br>
password=${param.password} <br>
hobby[0]=${paramValues.hobby[0] }<br>
hobby[1]=${paramValues.hobby[1] }<br>
</body>
</html>
实现结果:
三、自定义函数
一、目标函数
package test;
public class LowerToUpper {
public static String FLowerToUpper(String data )
{
return data.toUpperCase();
}
}
二、在tld内注册
<?xml version="1.0" encoding="ISO-8859-1"?>
<taglib 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-jsptaglibrary_2_1.xsd"
version="2.1">
<tlib-version>1.0</tlib-version>
<short-name>myshortname</short-name>
<uri>http://mycompany.com</uri>
<!-- Invoke 'Generate' action to add tags or functions -->
<function>
<name>myLowerToUpper</name>
<function-class>test.LowerToUpper</function-class>
<function-signature>java.lang.String FLowerToUpper(java.lang.String)</function-signature>
</function>
</taglib>
三、在jsp页面使用
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib uri="http://mycompany.com" prefix="myshortname" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
${myshortname:myLowerToUpper("abc") }
</body>
</html>
实现结果: