代碼演示中需要用到的domain值對象USer類:
package cn.hncu.domain;
public class User {
private String id;
private String name;
private String pwd;
private Integer age;
public User(String name, String pwd) {
this.name = name;
this.pwd = pwd;
}
public User(String name, String pwd, Integer age) {
this.name = name;
this.pwd = pwd;
this.age = age;
}
public User(){
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return name + "," + pwd +", "+ age;
}
}
Servlet後臺數據:
package cn.hncu.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.hncu.domain.User;
public class ShowServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
//模擬後臺,查詢並封裝出很多用戶信息
List<User> list = new ArrayList<User>();
for(int i=1;i<21;i++){
User user = new User("Rose玫瑰"+i, "hncu"+i, i);
list.add(user);
}
//通過轉發發送到前臺頁面
request.setAttribute("list", list);
request.getRequestDispatcher("/jsps/Show.jsp").forward(request, response);
}
}
腳註(類似版權所有的那種):
<%@page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<h2>版本所有:湖南城市學院</h2>
<img src="<%=request.getContextPath()%>/jsps/1.jpg"></img>
1.jpg文件
代碼演示
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
%>
<p> c:out標籤 ---輸出表達式或標識符的值(功能和${標識符}類似,差別體現在default和escapeXml兩個屬性上)</p>
<%
request.setAttribute("name", "空罐子的牛奶瓶");
%>
<!-- c:out標籤可以進行自封閉,也可以收尾封閉,請注意:JSTL離不開EL表達式,兩者必須結合起來使用!!!! -->
c:out標籤:<c:out value="${name }" />-------EL表達式演示:${name }<br/>
c:out標籤:<c:out value="${param.nm }" />-------EL表達式演示:${param.nm }<br/>
<!--default屬性的功能:當"變量aa"爲空時,輸出該屬性中的值 -->
c:out標籤:<c:out value="${aa }"></c:out>-----EL表達式演示:${aa }<br/>
<%
pageContext.setAttribute("str", "<font color='red'>湖南城市學院</font>");
%>
<!-- escapeXml="true"會把信息中的"<"號編碼成"<"輸出,若該屬性爲flase則編碼 -->
c:out標籤:<c:out value="${str }" escapeXml="true"></c:out>------EL表達式:${str }
<!-- 上面代碼將escapeXml設置爲false時不對xml或html進行轉換,直接輸出,這樣就會在頁面上看到紅色的Red字符,因爲瀏覽器會解析html數據。 -->
<hr color='red'/>
<p> c:set標籤 </p>
<!-- 給JavaBean設置屬性 -->
<jsp:useBean id="user" class="cn.hncu.domain.User"></jsp:useBean>
<c:set target="${user }" property="name" value="tom張三"></c:set>
<c:set target="${user }" property="age" value="35"></c:set>
設置屬性之後的user對象:<c:out value="${user }"></c:out><br/>
<br/><br/>
<!-- 給String類型的變量設置值 -->
<c:set var="sum" value="200"></c:set>
<c:out value="${sum }"></c:out>
<br/><br/><br/>
<p> c:if標籤 ---用於判斷控制 </p>
<%
request.setAttribute("age", 33);
%>
EL表達式實現判斷功能(問號表達式):${age>25? 'old':'young' }
<br/>
c:out標籤實現判斷功能(c:if):(相當於java中的if-else)
<c:if test="${age>25 }" var="boo" scope="session">
年齡:<c:out value="${age }"></c:out><br/>
湖南城市學院<br/>
<font color='red'>我愛你I LOVE YOU!</font><br/>
</c:if>
<c:if test="${!boo }">
<font color='blue'>I HATE YOU!不知名</font>
</c:if>
</body>
</html>
<%@page import="cn.hncu.domain.User"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<p> c:forEach標籤 </p>
一、普通for循環的功能
<c:forEach begin="1" end="10" var="i" step="2">
${i }<br/>
<c:out value="${i }"></c:out>
</c:forEach>
<br/>
二、增強for循環的功能<br/>
1.遍歷數組<br/>
<%
String[] strs = {"湖南","城市","學院","呵呵噠"};
pageContext.setAttribute("strs", strs);
%>
<c:forEach items="${strs }" var="str">
${str },
</c:forEach>
<hr/>
2.遍歷List<br/>
<%
List<String> list = new ArrayList<String>();
list.add("我愛");
list.add("我的");
list.add("祖國");
request.setAttribute("list", list);
%>
<c:forEach items="${list }" var="lst">
${lst },
</c:forEach>
<hr color='red'/>
3.遍歷map<br/>
<%
User user = new User();
user.setName("Rose玫瑰");
user.setAge(33);
user.setPwd("hncu123456");
Map<String,Object> map = new HashMap<String,Object>();
map.put("name", "Jack李四");
map.put("age", 38);
map.put("sex", "男");
map.put("user", user);
session.setAttribute("map", map);
%>
<c:forEach items="${map }" var="m">
${m },
</c:forEach>
<hr/>
<br/>
3.遍歷元素爲值對象的集合,如List<User> <br/>
<%
List<Object> list2 = new ArrayList<Object>();
list2.add(new User("Rose玫瑰","hncu1234",33));
list2.add(new User("Jack張三","hncu5678",28));
list2.add(new User("Mike李四","hncu1235",15));
list2.add(new User("Rose李白","hncu12135",41));
pageContext.setAttribute("list2", list2);
%>
直接輸出整個對象:
<c:forEach items="${list2 }" var="lst2" varStatus="idx">
${idx.count }
${lst2 }<br/>
</c:forEach>
<hr color='blue'/>
分別輸出對象中的每個屬性值:
<c:forEach items="${list2 }" var="lst2" varStatus="idx">
${idx.first }:::${idx.index }::::${lst2.name },${lst2.age },${lst2.pwd }<br/>
</c:forEach>
<hr/>
<%
request.setAttribute("score", 55);
%>
<p> c:choose,when,otherwise標籤 </p>
<c:choose>
<c:when test="${score>90 }">
優秀!
</c:when>
<c:when test="${score>80 }">
良好!
</c:when>
<c:when test="${score>70 }">
合格!
</c:when>
<c:when test="${score>60 }">
差評!
</c:when>
<c:when test="${score>50 }">
讀你媽比的書!
</c:when>
</c:choose>
<hr/>
<p> forTokens標籤(相當於JAVA語言中的str.split(",")方法,根據指定的字符來拆分某一字符串) </p>
<c:forTokens items="a,b,c,d,love,rose玫瑰" delims="," var="x">
<c:out value="${x }"></c:out>
</c:forTokens>
<hr color='red'/>
<p> url相關的標籤: url,import,redirect </p>
<!-- 重寫url技術,路徑中的斜槓就是項目根目錄 -->
<a href="<c:url value='/servlet/ShowServlet' />">顯示所有用戶信息</a> <br/>
<c:import url="/jsps/foot.jsp"></c:import>
<!-- 重定向演示 -->
<%--小心,頁面中寫了c:redirect,就會立即重定向到其它頁面。不會再停留在當前頁面
<c:redirect url="/jsps/Show.jsp"></c:redirect>
response.sendRedirect("/jsps/show.jsp");
--%>
<p> c:remove標籤:移除屬性變量, 和set是相反 </p>
<c:remove var="score"/>
score: ${score}
</body>
</html>