# 1/20 JSP 觀念 ###### tags: `JSP` # 5-60 errorpage與isErrorPage設定  # 5-61.62 errorpage屬性 轉型有問題由這支errorpage="error.jsp"處理程式  true exception這行印出顯示過程  (errorHandler.jsp)(hello.jsp) 用chrome執行 eclipse用ie會有問題 # 5-63 web.xml設定錯誤時處理 web.xml可以用通用性設定 2邊都設通用性 會以jsp程式優先 jsp沒設就以xml優先 上面靜態 下面動態(error-code): # 5-64 <jsp:include>標籤 include包page自行生成 add.jsp也會獨立生成 參考(5-121)  (paramTest1.jsp)(paramTest1.jsp) In paramTest1:->In paramTest2:->In paramTest1: http://localhost:8080/JSPDemo/paramTest1.jsp(?first=Harry&last=jjj) 看順序  參考(5-117)  # 5-65<jsp:forward>標籤 用forward出去就不會回來   # 5-66 jps pages XML語法化  # 5-67 類xml格式標籤  (counter_xml.jps) # 5-68 範例(xml格式)  # 5-69 Expression Language(EL)  https://docs.oracle.com/javaee/6/tutorial/doc/gjddd.html  Immediate Evaluation:立即驗證 Deferred Evaluation:晚一點驗證 # 5-70 EL討論範例 黃色區塊=黃色區塊 一樣    (eldemo.jsp)  # 5-71.72 Scripting VS.EL  前面強迫轉型 context環境 上面動詞 下面名詞 字首大寫  # 5-73~76 EL 對空值得處裡比較不會死當    要強迫轉型request 才能叫出.getMethod方法 context.request算是一個子類 get動詞(動作)  全部忽略: 參考5-40   # 5-77~83 使用EL取得屬性 我去抓一個javabean 物件:user get:proprety 取得某人的名子 登入成功 上面javabean 下面el寫法 屬性名稱.運算  陣列orlist用[]  泛型 變數=建構子 泛型   names多個名稱  索引值變數名稱 param.index getparamname 運算式  list name = 子類array  # 5-84.85 EL的隱含物件 Implicit Objects https://www.javatpoint.com/EL-expression-in-jsp https://www.tutorialspoint.com/jsp/jsp_expression_language.htm 跟屬性有關 # 5-86.87 EL運算子   # 5-89.90 Implicit Object Available in JSP Pages Implicit(隱性)<=>Explicit(顯性) exception特別的    白皮書 80 103頁   原因: # 5-91~94 Implicit Objects說明  網頁看的到page scope 所在的執行環境  application=context   page=this 就是自己本身   # 5-95 Implicit Objects Available in Error Pages 選告變數 物件名稱少用這樣開頭  (implicit.jsp)(xml)(initTest.jsp)  # 5-96.97.(98) 程式碼練習    # 5-99 Jsp的scope物件 Application servletContext Session Session Request Request page pagecontext setAttribute() getAttribute() removeattribute()  # 5-100 Scope物件  https://javaee.github.io/javaee-spec/javadocs/  用靜態include 不能用同樣的宣告 # 5-102 JSP page就是servlet parse翻成java檔  # 5-103 JSP的life-cycle phases 七個階段  # 5-104 JSP的Instance產生過程  # 5-105 JSP life-cycle中所呼叫的method 服務完實作  https://javaee.github.io/javaee-spec/javadocs/   # 5-106.7.8 jsp to servlet   樣板文字 out.write (visitorcounter.jsp)  # 5-109 Translation units a includ b 不能重複宣告  (參考5-114) # 5-110 JSP life-cycle範例 (persistent_visitorcounter.jsp)  # 5-111 使用request-time attribute expressions 把資訊帶進去 下面的程式要在執行階段才能執行  # 5-113 Static inclusion 第一行 jsp寫法 第二行 xml  # 5-114 Static inclusion例  # 5-115 Static inclusion的注意事項 上一張a跟b可擺pageContext  # 5-116 Dynamic inclusion page活的 flush='true'立即送出  # 5-117 Dynamic inclusion範例 各自有serv程式  白皮書 114(參考)  # 5-118.119 JSP include action說明 java語法 servlet語法 jsp include進來 include(StringrelativeUrlPath, boolean flush) include If the relativeUrlPath begins with a "/" then the URL specified is calculated relative to the DOCROOT https://javaee.github.io/javaee-spec/javadocs/  白皮書  靜態 ``` • A.jsp says <%@ include file=”dir/B.jsp”%> and dir/B.jsp says <%@ include file=”C.jsp”%>. In this case the relative specification C.jsp resolves to dir/C.jsp. • A.jsp says <jsp:include page=”dir/B.jsp”/> and dir/B.jsp says <jsp:include page=”C.jsp” />. In this case the relative specification C.jsp resolves to dir/ C.jsp. • A.jsp says <jsp:include page=”dir/B.jsp”/> and dir/B.jsp says <%@ include file=”C.jsp” %>. In this case the relative specification C.jsp resolves to dir/ C.jsp. • A.jsp says <%@ include file=”dir/B.jsp”%> and dir/B.jsp says <jsp:include page=”C.jsp”/>. In this case the relative specification C.jsp resolves to C.jsp. ``` 1.a->b<c=c 2.a>b>c 3.a->b=c(在b裡面) 4.a靜態->b b動態->c c=a  # 5-120 JSP forward action說明 forward pagecontext特異功能送出去  # 5-121 傳遞參數給dynamically included compon 送參數  (參考5-64頁) # 5-122 與dynamically included components共享物件 (參考5-117圖)  # 5-124 甚麼是JavaBeans? 封裝:合法的方法,讓使用者來呼叫,做控管,跟邏輯判斷  # 5-125 JavaBeans的設計規則 沒參數的建構子 建構子的宣告 要寫"沒有參數的建構子" 類別或成員都沒有公開的變數 JavaBean需要package player;  1.2.3.只是一個宣告 實作implements javaBeans可以把東西都包起來封裝  # 5-126 Jsp tage設定JavaBeans 白皮書 # 5-127.128 <jsp:useBean>的宣告項目(attribute)  type跟class不能亂寫 type父類  # 5-129.130 <jsp:get(set)property>-讀取Bean的值 宣告 取得 property:轉化動作(參考131) siraple property index property  # 5-131 範例討論 java.io.Serializable  # 5-132 程式碼去寫javabean去寫 # 5-133~135 範例討論 type沒寫 宣告變數名稱空的  https://javaee.github.io/javaee-spec/javadocs/  # 5-136 <jsp:useBean> user.setPassword("123456") .方法 javabean沒有定義setPassword的方法javabean會當掉 大小寫要注意  # 5-137 <jsp:setProperty>  # 5-138.139 <jsp:setProperty> 138跟139相對的 138 找步道user物件,則會建立一個新的物件並設定相關屬性內容,相反則會直接使用139 2條獨立的 # 5-140 <jsp:getProperty> 命名法則很重要  # 5-141 Bean Class的安裝 第三方開發 通常擺lib底下  (參考5-132) # 5-142~145 Bean範例 (StringBean.jsp)(StringBean.java)  3個不同的寫法(SaleEntry.jsp)(SaleEntry1.java) import   http://localhost:8080/JSPDemo/SaleEntry1.jsp(?itemID=a1234&numltems=10&discountCode=0.8) (SaleEntry2.java) 
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up