1、JSP腳本有什麼不足?
代碼結構混亂<% %>
Java代碼和Html代碼混合起來容易出錯
代碼不易於維護
2、解決方案:EL表達式 Espression Language
以${開始,以}結束,中間寫EL表達式。
語法:${}
3、EL表達式作用
頁面結構清晰。
代碼可讀性高,易於維護。
4、EL操作符
點 . ${對象名.屬性名} 獲取對象中的屬性
中括號 [] ${集合名[對象名]} 獲取集合中的對象
5、EL使用注意
類的屬性必須實現了getter/setter方法。
EL表達式尋找對象時候
順序爲:pageContext--request--session--application
如果想在某個作用域裏去找,前面要指定範圍:
pageScope--->pageContext
requestScope--->request
sessionScope--->session
applicationScope--->application
--新建testel.jsp講解EL訪問的作用域
${requestScope.strs[1]}
--testel.jsp使用EL表達式獲取集合的值
${requestScope.strs[1]}
--EL表達式的運算
${1+2} ${"1"+"2"}EL表達式自動轉換
${5*(1+2)} ${"1"}${"2"}
${1==2} 邏輯運算,true、false
${1>2:"ab":"cd"} 三目運算符
${}
--改造update.jsp頁面講解EL表達式取對象的實例
--改造stuinfo.jsp時遇到問題,因爲有頁面循環和判斷
7、JSTL(EL表達式無法實現邏輯控制,所以要引入jstl)(注意JSTL的jar包)
JavaServerPages Standard Tag Library JSP標準標籤庫
JSTL作用:實現頁面中的邏輯控制(判斷、循環)
條件標籤
<c:if>
<c:if test="${age<=18}">
<h1>此網站未成年人禁止訪問!</h1>
</c:if>
迭代標籤
<c:forEach>
<c:forEach items="${stus}" var="stu">
<span>${stu.sno }----${stu.sname }----${stu.ssex }<br/>
</c:forEach>
--代碼示例:新建testjstl.jsp
導入標籤庫
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
--需求:偶數行變色
一 JSP頁面亂碼:
JSP文件和頁面規定的編碼保持一致。(用myEclipse開發不會出現這個問題)GET方式傳值亂碼:
解決方案:
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
二 設置tomcat的編碼方式
利用request.setCharacterEncoding("UTF-8");來設置Tomcat接收請求的編碼格式,只對POST方式提交的數據有效,對GET方式提交的數據無效!
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
jdbc:mysql://localhost:3306/test?characterEncoding=utf-8