# 1/16 JSP 觀念 ###### tags: `JSP` # 5-2 大綱 Predefine Variables 事先宣告變數名稱 # 5-3 JSP 可套用HTML&Java 開發者不須編譯,底層執行方式是servlet 靜態樣板html 動態內容jsp # 5-4 JSP特性 元素 scipting(elements,directives,actions) tag標記 Template=樣板文字 # 5-5 JSP翻譯與執行步驟 translation(翻譯) = (jsp)翻譯(java)實作jsp程式碼翻譯java程式碼->class execution(編譯)=變成class黨 execution後才能跟客戶端服務  jsp fragment(片段) .jspf(片檔名) # 9 實作 http://localhost:8080/JSPDemo/HelloUserServlet(?userName=aaa) # 5-12.13.14 JSP的生命週期(Life Cycle) 用過jsp之後再次呼叫jsp已被servlet的記憶體紀錄 所以不會在編譯 list.jsp轉譯->list_jsp.java編譯->list_jsp.class載入->servle(實例化) void _jspservice=doget,dopost   <%= xx.xx%>動態語法 # 5-19 JSP語法 Scripting(Declaration(宣告),Scriplet(程式敘述),Expression(運算式)) Directive elements(指示)(page網頁,include,taglib) Action=JavaBean(模型) Expression Language(EL)簡短程式 Custom Tag(客制化標籤)5-177頁 Comment(註解) # 5-20 六大類jsp語法元素 Directive指示用在translation(翻譯)<%@ %> Action(動作):執行階段<jsp:actionName /> Declaration(宣告)<%! %> Scriptlet(程式碼)<% %> Expression(運算式)<%= %> Comment(註解)<%-- --%>  |二二|=方法 # 5-21 JSP語法例 <!-- -->HTML <% /* */%>Java <%=運算式%>運算式不要寫分號; # 5-22.23.24.25 宣告元素(Declaration) 宣告定義變數與方法  string name this.name=自己的欄位name  轉譯後  重新定義 jspInit(),jspDestroy()  servlet對應JspPage對應httpjsppage httpservlet對應httpjsppage  <%! %>可宣告變數跟方法 <% %>(編譯的地方再方法裡面)不能宣告方法 (area.jsp)  (iterationTest.jsp)   # 5-26 JSP-Scriptlets Scriptlets是嵌入(embedded)的java code <%count++;%> # 5-27 JSP-Expression <%=count%>or<%=++count%> Expression不需要寫分號; Expression可以是Java Method的呼叫 (initTest.jsp)   # 5-28 JSP範例-visitorcounter.jsp   # 29 DayWish.jsp  Math.random<0.5 =小於亂數之間  # 30 ApplesAndOranges.jsp ``` <% String format = request.getParameter("format"); if ((format != null) && (format.equals("excel"))) { response.setContentType("application/vnd.ms-excel");//多媒體格式 } %> ``` http://localhost:8080/JSPDemo/ApplesAndOranges.jsp(?format=excel)參數格式 https://zh.wikipedia.org/wiki/%E5%A4%9A%E7%94%A8%E9%80%94%E4%BA%92%E8%81%AF%E7%B6%B2%E9%83%B5%E4%BB%B6%E6%93%B4%E5%B1%95 # 5-31.32.33 Action execution執行階段 用在request processing phase flush="true"(立刻送出) jsp:include就是Action的一種  jsp:plugin外掛 (copyright.jsp)  # 5-35.36 JSP的Directives 還沒到request階段   page include taglib(公用標籤 特殊語法 自首開頭代表哪個標籤的定義 taglib.tld定義哪個標籤)  # 5-37 Jsp Directives  # 5-38.39 指示元素-page   每個屬性標籤中間用空白隔開 # 5-40 jsp 預設啟動session extends不要去啟動 內建有 buffer =(kilobytes)  # 5-41 指示元素-page  vnd廠商  # 5-42 指示元素-include  ``` <%@ include file="copyright.jspf" %> <jsp:include page="copyright2.jsp" flush="ture" /> ```  file會合併 Action會各自產生   # 5-45 指示元素的統一設定  *.jsp副檔名做pattern utf-8 16kb buffer ``<include-pattern>檔頭</include-pattern>`` ``<include-coda>檔尾</include-coda>``  ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> ``` 白皮書 # 5-47 Scriptlet元素 只要是Scriptlet的東西都會放到_jspService()  # 5-48.49 if敘述 迴圈範例   (conditionalTest1.jsp),(conditionalTest2.jsp) 1 2 # 5-50 禁用Scriptlet  (initializationOfVariables.jsp)  <%!%>->宣告放哪都不影響 <%%>會有順序問題 一定要宣告才能使用 (orderOfScriptlets.jsp)  # 5-51 運算式(Expression)元素 Expression=<%= %>  # 5-52.53 註解(Comment)元素  jsp(註解)->java(註解)->class(註解)->brower(註解)  (welcome.jsp) # 5-54 引號與脫逸號(Escape)用法  (escapeSequence.jsp) # 5-55 JSP錯誤狀況與處裡 JSP轉換為Servlet原始碼時 Servlet原始碼進行編譯時 Servlet載入容器進行服務但發生執行時期錯誤時 # 5-56.57 JSP轉換為Servle原始碼時  `` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" buffer="dsad8kb" %> ``  # 5-58.59 進行服務但發生執行時期錯誤時  
×
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