目录
(1)字符串、数组、集合对象(是否为null或者长度是否为0的原因)
一、JSP(java服务器端页面)。


注意:在jsp页⾯中可以直接使⽤session对象(jsp的内置对象),也可以通过pageContext.getSession()或者request.getSession重新获取session对象。
二、EL(表达式语言)。
注意:暂时只知道只能在JSP页面使用。


(1)字符串、数组、集合对象(是否为null或者长度是否为0的原因)
//list集合类对象
List list = new ArrayList<String>();
System.out.println(list+"以及"+list.size());//[]以及0
//Map集合类对象
Map map =new HashMap();
System.out.println(map+"以及"+map.size());//{}以及0
//字符串对象
String str = "";
System.out.println(str+"以及"+str.length());//以及0
String str1 = " ";
System.out.println(str1+"以及"+str1.length());//(有空格) 以及1
//数组对象
int[] ints = new int[2];
System.out.println(ints+"以及"+ints.length);//[I@4180ae00以及2
int[] i = {};
System.out.println(i+"以及"+i.length);//[I@690b2ce7以及0
(2)EL获取值的使用案例。
package EL_获取域中存储的值_对象值;
import java.text.SimpleDateFormat;
import java.util.Date;
public class User {
private String name;
private int age;
private Date birthday;
/**
* 该类就是javaBean类
* 下面那个方法就是逻辑视图。
* @return
*/
public String getBirStr(){
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(birthday);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
", birthday=" + birthday +
'}';
}
}
<%@ page import="EL_获取域中存储的值_对象值.User" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.util.*" %><%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2022/8/2
Time: 13:28
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>el4</title>
</head>
<body>
<%
//User类对象
User user = new User();
user.setName("张三");
user.setAge(15);
user.setBirthday(new Date());
request.setAttribute("u",user);
//list集合类对象
List list = new ArrayList<String>();
System.out.println(list+"以及"+list.size());//[]以及0
list.add("aaa");
list.add("bbb");
list.add(user);
request.setAttribute("list",list);
//Map集合类对象
Map map =new HashMap();
System.out.println(map+"以及"+map.size());//{}以及0
map.put("sname","李四");
map.put("gendar","男");
map.put("user",user);
request.setAttribute("map",map);
//字符串对象
String str = "";
System.out.println(str+"以及"+str.length());//以及0
String str1 = " ";
System.out.println(str1+"以及"+str1.length());//(有空格) 以及1
//数组对象
int[] ints = new int[2];
System.out.println(ints+"以及"+ints.length);//[I@4180ae00以及2
int[] i = {};
System.out.println(i+"以及"+i.length);//[I@690b2ce7以及0
%>
<h1>获取User类对象的属性值</h1>
${requestScope.u}<br/>
${requestScope.u.name}<br/>
${u.age}<br/>
${u.birthday.month}<br/>
${u.birStr}<br/>
${u.toString()}
<h1>获取List集合类对象的值</h1>
${list.add("ccc")}<br/>
${list}<br/>
${list[0]}<br/>
${list[1]}<br/>
${list[2].name}<br/>
<h1>获取Map集合类对象的值</h1>
${map.sname}<br/>
${map}<br/>
${map.gendar}<br/>
${map["gendar"]}<br/>
${map.user}<br/>
${map.user.name}
</body>
</html>
(3)隐式对象(内置对象)的使用。
//在jsp页面使用有效,html页面没用
<form action="${pageContext.request.contextPath}"></form>
三、JSTL(jsp标准标签库)。

(1)标签-if。
<c:if test="true">
<h1>我是真的</h1>
</c:if>
<%
//判断request域中的一个list集合是否为空,如果不为null则显示遍历集合
List list = new ArrayList();
list.add("爱你");
request.setAttribute("list",list);
%>
<c:if test="${not empty list}">我爱你哦</c:if>
(2)标签-choose。
<%
//完成数字编号对用的星期几案例
//1.域中存储数字
request.setAttribute("number",3);
//2.使用choose标签取出数字 想当于switch声明
//3.使用when标签做数字判断 相当于case
//4.otherwise标签做其他情况的声明 相当于default
%>
<c:choose>
<c:when test="${number == 1}">星期一</c:when>
<c:when test="${number == 2}">星期二</c:when>
<c:when test="${number == 3}">星期三</c:when>
<c:when test="${number == 4}">星期四</c:when>
<c:when test="${number == 5}">星期五</c:when>
<c:when test="${number == 6}">星期六</c:when>
<c:when test="${number == 7}">星期日</c:when>
<c
</c:choose>
(3)标签-forEach。
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>jstl3</title>
</head>
<body>
<c:forEach begin="3" end="10" var="i" step="1" varStatus="s">
${i} ${s.index} ${s.count}<br/>
</c:forEach>
<%
List list = new ArrayList();
list.add("aaa");
list.add("bbb");
list.add("ccc");
request.setAttribute("list",list);
%>
<c:forEach begin="0" end="${list.size()-1}" var="s" step="1" items="${list}">
${s}<br/>
</c:forEach>
<c:forEach items="${list}" var="str" varStatus="s">
${s.index} ${s.count}${str}<br/>
</c:forEach>
</body>
</html>
四、JSP+EL+JSTL——结合案例。
<%@ page import="EL_获取域中存储的值_对象值.User" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.Date" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>jstl练习</title>
</head>
<body>
<%
List list = new ArrayList();
list.add(new User("张三",23,new Date()));
list.add(new User("李四",24,new Date()));
list.add(new User("王五",25,new Date()));
request.setAttribute("list",list);
%>
<table border="1" width="500" align="center">
<tr>
<th>编号</th>
<th>名字</th>
<th>年龄</th>
<th>生日</th>
</tr>
<c:forEach items="${requestScope.list}" var="user" varStatus="s">
<c:if test="${s.count % 2 == 0}">
<tr bgcolor="green">
<td>${s.count}</td>
<td>${user.name}</td>
<td>${user.age}</td>
<td>${user.birStr}</td>
</tr>
</c:if>
<c:if test="${s.count % 2 == 1}">
<tr>
<td>${s.count}</td>
<td>${user.name}</td>
<td>${user.age}</td>
<td>${user.birStr}</td>
</tr>
</c:if>
</c:forEach>
</table>
</body>
</html>
五、MVC开发模式。


六、三层架构。


本文详细介绍了JSP、EL和JSTL的基础概念及应用。通过示例展示了EL中如何检查对象是否为null或空,以及如何获取和使用域中的值。接着探讨了JSTL的if、choose和forEach标签的用法,并提供了JSP、EL和JSTL结合的案例,包括表格渲染和条件判断。最后,提到了MVC开发模式和三层架构在Web开发中的重要性。
2061

被折叠的 条评论
为什么被折叠?



