EL取出域对象数据
- application.setAttribute(String key,Object value)
- EL取出 ${applicationScope.key}
- session.setAttribute(String key,Object value)
- request.setAttribute(String key,Object value)
- pageContext.setAttribute(String key,Object value)
- 简化写法 ${key} : EL自动从最小域开始找,一旦找到就不找
- EL友好的地方,取出不出来,不显示null,显示 “空串”
EL取出域对象数据(String对象):
<body>
<%--
EL表达式取出域对象中的数据
向域对象存储数据
EL取出
EL取出不出来,不显示null,显示""
--%>
<%
application.setAttribute("heima","javaApplication");
session.setAttribute("heima","javaSession");
request.setAttribute("heima","javaRequest");
pageContext.setAttribute("heima","javaPageContext");
%>
<%-- 取出 ServletContext--%>
<%=application.getAttribute("heima")%>
${applicationScope.heima} <br>
<%-- 取出 session--%>
${sessionScope.heima} <br>
<%-- 取出 request--%>
${requestScope.heima}<br>
<%-- 取出 pageContext--%>
${pageScope.heima} <br>
${heima}
</body>
EL取出域对象数据(自定义对象,集合List,Map)
自定义对象
${user.addr.city}
<%-- list集合索引[索引] --%>
${list[1].addr.city}
<%--Map 集合索引[索引] --%>
${map.u2.addr.city}
EL运算符
<body>
<%--
El运算符
--%>
<%
pageContext.setAttribute("num",4);
%>
${num>4?"大于4":"不大于4"} <br>
<%--
EL判空运算
empty 判断空
如果是空,就是true
数组长度>0,就不是空
长度.length==0
集合size()>,就不是空
--%>
<%
String[] str = new String[1];
request.setAttribute("str",str);
%>
${ empty str} <br>
<%
List<String> list = new ArrayList<String>();
list.add(null);
request.setAttribute("list",list);
%>
${empty list}
</body>
记录上一次的用户名## EL运算符
<body>
<%--
El运算符
--%>
<%
pageContext.setAttribute("num",4);
%>
${num>4?"大于4":"不大于4"} <br>
<%--
EL判空运算
empty 判断空
如果是空,就是true
数组长度>0,就不是空
长度.length==0
集合size()>,就不是空
--%>
<%
String[] str = new String[1];
request.setAttribute("str",str);
%>
${ empty str} <br>
<%
List<String> list = new ArrayList<String>();
list.add(null);
request.setAttribute("list",list);
%>
${empty list}
</body>
记录上一次的用户名
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a325b43f92215508579dfda01031b0ed.png)
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
//获取复选框 value="rem"
String rem = request.getParameter("rem");
if("rem".equals(rem)){
Cookie cookie = new Cookie("username",username);
cookie.setMaxAge(60*10);
cookie.setPath(request.getContextPath());
response.addCookie(cookie);
}
if("tom".equals(username) && "123".equals(password)){
response.sendRedirect(request.getContextPath());
}else{
request.getRequestDispatcher("/login.jsp").forward(request,response);
}
}
login.jsp
${cookie.username.value}
引出JSTL,“c” 标签
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
if标签
<body>
<%--
c:if标签,判断使用
属性: test="true"
执行标签体内容
--%>
<%
pageContext.setAttribute("num",4);
%>
<c:if test="${num>=5}">
<div style="color: red">我是红色</div>
</c:if>
<c:if test="${num<5}">
<div style="color: blue">我是蓝色</div>
</c:if>
</body>
foreach标签
<body>
<%--
foreach标签
页面输出5个hello
属性:
begin="1"开始值 int i=1;
end="5"结束值 i<=5
var="i"定义变量,保存是循环中的值
自动的存储到pageContext域
step="2" 步长 i+=2
--%>
<c:forEach begin="1" end="5" var="i" step="2">
hello ${i}<br>
</c:forEach>
</body>
<body>
<%--
foreach标签
页面输出5个hello
属性:
begin="1"开始值 int i=1;
end="5"结束值 i<=5
var="i"定义变量,保存是循环中的值
自动的存储到pageContext域
step="2" 步长 i+=2
--%>
<c:forEach begin="1" end="5" var="i" step="2">
hello ${i}<br>
</c:forEach>
<hr>
<%
String[] str = {"e","d","c","b","a"};
pageContext.setAttribute("str",str);
%>
<%--
foreach标签
属性:
items="遍历容器"
var="变量名" 变量表示数组中的元素
会自动保存pageContext域
for(String s : str){
}
varStatus="变量"循环状态对象
--%>
<c:forEach items="${str}" var="s" varStatus="vs">
${s} ${vs.count} <br>
</c:forEach>
<%
Address addr = new Address();
addr.setCity("北京");
addr.setArea("昌平");
Address addr2 = new Address();
addr2.setCity("天津");
addr2.setArea("武清");
List<Address> list = new ArrayList<Address>();
list.add(addr);
list.add(addr2);
pageContext.setAttribute("list",list);
%>
<c:forEach items="${list}" var="addr">
${addr.city} <br>
</c:forEach>
</body>