1. 程式人生 > >javaweb筆記六

javaweb筆記六

codes 執行 字母 esc scope javaweb otf and 跳轉

指令包含:可以在一個jsp中包含另一個jsp中的內容。會將包含頁面和被包含頁面放在一起編譯,形成一個java類。所以,是在編譯時發生的。
只能包含文件,不允許兩個頁面之間存在同名變量。被包含頁面也不應該出現<html><head>等標簽。

動作包含:作用和指令包含一樣,可以在一個jsp中包含另一個資源的內容。將在包含頁面中包含被包含頁面輸出的結果,兩個jsp分別編譯形成
java類。是在請求時發生的,允許兩個變量同名,不但可以包含文件,而且可以包含servlet輸出的結果,並且可以傳參。
被包含頁面也不應該出現<html><head>等標簽。
<jsp:include page="/include.jsp">
<jsp:param value="2" name="id"/>
</jsp:include>

動作轉發:可以通過請求轉發的方式,跳轉到另一個資源。
<jsp:forward page="/test.jsp"></jsp:forward>

EL表達式:只能從作用域中取出共享對象的值。${},不能取出jsp腳本中定義的局部變量。EL表達式在取值時,如果作用域中沒有該共享對象,頁面上
什麽也沒有,而對於jsp會打印出null信息。EL表達式同時支持算數運算、邏輯運算等常見表達式。
EL表達式在取共享對象的屬性值${bean.name}時,調用的是共享對象的get()方法,即使沒有屬性,但是有對應的方法,同樣,可以用EL表達式取值。
所以要求實體類屬性命名要規範,前兩個字母不能大寫。

EL表達式,${aaa}取值時,會從四個作用域中查找共享對象,查找時,會先查找小作用域中的共享對象(pageContext>request>session>application),
找到後就不會在查找其他作用域中的共享對象。
EL表達式中提供了作用域的隱式對象,可以直接查找某一個作用域中的共享對象(pageScope,requestScope,sessionScope,applicationScope)

${param.id}利用EL表達式中的param隱式對象可以取出請求參數名稱為ID的值

jstl:標準標簽庫,將jsp頁面中的java代碼封裝成標簽形式。最常用的是核心庫core.
如果需要在jsp中使用jstl的核心庫,需要使用taglib指令導入。
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
判斷標簽:
<c:if test="">
</c:if>
當test中的表達式返回true時,執行標簽裏面的內容。
javax.el.PropertyNotFoundException:屬性未找到異常
URL路徑有兩個一樣的異常:
Caused by: java.lang.IllegalArgumentException: The servlets named [com.emproject.servlet.CheckCodeServlet] and
[com.emproject.servlet.LoginServlet] are both mapped to the url-pattern [/em/login] which is not permitted

javaweb筆記六