乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      JSP知識匯總

       太極混元天尊 2018-06-22

      本期小編將帶你走進JSP,學(xué)習(xí)到Java的前后端交互的時候,我們會接觸到JSP,今天我們來學(xué)習(xí)一下JSP的一些內(nèi)容:

      1 JSP的由來

      1.1 為什么有JSP規(guī)范

      Servlet技術(shù)產(chǎn)生以后,在使用時最麻煩的是使用大量的out.print語句輸出頁面。這樣的形式在系統(tǒng)變更、維護、預(yù)覽效果時都不能方便快捷的完成任務(wù),于是推出JSP這種技術(shù),用來將Servlet中負(fù)責(zé)顯示的語句抽取出來。

      class xxxServlet{ ...service(){ ... out.println(''); ... out.println(''); ...

      1.2什么是JSP

      Sun公司制定的一種服務(wù)器端動態(tài)頁面技術(shù)的組件規(guī)范。

      JSP是一個以“. jsp”為后綴的文件,在該文件中,主要是HTML和少量的Java代碼。JSP文件會被容器轉(zhuǎn)換成一個Servlet類,然后執(zhí)行。

      < html=""> java代碼...
      java代碼...

      2. JSP編寫規(guī)范

      2.1 如何編寫JSP

      step1:寫一個以” .jsp”為后綴的文件

      step2:在該文件中可以包含如下內(nèi)容:

      - HTML(CSS、JavaScript)- 注釋- Java代碼- 指令- 隱含對象

      2.2 JSP頁面中的HTML 代碼

      作用:控制頁面在瀏覽器中顯示的效果

      轉(zhuǎn)譯成Servlet時的規(guī)則:成為Servlet中的service()方法的out.write語句

      2.3 JSP頁面中的注釋

      語法:

      1)

      HTML注釋,注釋中的內(nèi)容如果包含Java代碼,這些Java代碼,會被忽略

      2)<%-- 注釋內(nèi)容 --%>

      JSP特有的注釋,如果注釋的內(nèi)容中出現(xiàn)Java代碼,會被忽略

      2.4 JSP頁面中的Java代碼

      JSP頁面中的Java代碼,包含以下三種:

      • JSP表達式
      • JSP小腳本
      • JSP聲明

      編寫位置:頁面的任意位置

      作用:控制頁面中可變內(nèi)容的產(chǎn)生

      2.5 JSP表達式

      語法規(guī)則:<%= ... ... %>

      合法內(nèi)容:

      變量、變量加運算符組合的表達式、有返回值的方法

      轉(zhuǎn)譯成Servlet時的規(guī)則:

      在service( )方法中用out.print語句輸出該變量、表達式、方法的值

      Eg:

      The square root of 5 is <%=Math.sqrt(5)%>

      轉(zhuǎn)換成

      out.write('

      The square root of 5 is ');out.write(Math.sqrt(5));out.write('

      ');

      2.6 JSP小腳本

      語法規(guī)則:<% ... ... %>

      合法內(nèi)容:能夠?qū)懺诜椒ɡ锏腏ava代碼片段都可以作為小腳本

      轉(zhuǎn)移成Servlet時的規(guī)則:原封不動成為Servlet類的service( )方法里面的一段代碼

      Eg:

      <% String name = request.getParameter('name'); if(name!=null && !name.equals('')){%>

      Your name is <%=name %>

      <% }%>

      轉(zhuǎn)換成如下代碼插入到service方法中

      String name = request.getParameter('name'); if(name!=null && !name.equals('')){ out.write('

      Your name is'); out.print(name); out.write('

      ');

      前幾天有私信我要Java的學(xué)習(xí)資料,我連夜整理了一些有深度的Java教程和參考資料,從入門到高級的都有,文件已經(jīng)打包好了,正在學(xué)習(xí)Java的同學(xué)可以免費下載學(xué)習(xí)學(xué)習(xí)。文件下載方式:點擊我的頭像,關(guān)注后私信回復(fù)'資料”即可下載。首先把代碼擼起來!首先把代碼擼起來!首先把代碼擼起來!重要的事說三遍,哈哈。 “編程是門手藝活”。什么意思?得練啊。

      2.7 JSP聲明

      語法聲明:<%! ... ... %>

      合法內(nèi)容:成員屬性或成員方法的聲明

      轉(zhuǎn)譯成Servlet時的規(guī)則:成為JSP頁面轉(zhuǎn)譯成的Servlet類中成員屬性或成員方法

      Eg:

      <%! public String getResult(){ //... }%>

      將代碼整體插入到Servlet類中

      public class Index_JSP extends JSPBase{ public String getResult(){ //... } public void service()... }

      2.8 JSP頁面中的指令

      語法規(guī)則:<% @指令名 屬性=值 %>

      常用指令:

      • page指令
      • include指令
      • taglib指令

      作用:控制JSP 在轉(zhuǎn)譯成Servlet類時生成的內(nèi)容

      2.9 page指令

      作用:用于導(dǎo)包、設(shè)置頁面屬性

      Eg:

      <%-- 導(dǎo)包 --><%@ page import='java.util.*' %><%@ page import='java.util.*,java.sql.*' %><%-- 設(shè)置response.setContentType()方法的參數(shù)值 --><%@ page contentType = 'image/gif' %><%-- 設(shè)置容器讀取該文件時的解碼 --><%@ page pageEncoding='UTF-8' %>

      2.10 include指令

      作用:在JSP頁面轉(zhuǎn)換成Servlet時,能夠?qū)⑵渌募M來,可以包含JSP文件也可以是靜態(tài)的HTML文件。

      通過該語句能方便的在每一個JSP頁面中包含導(dǎo)航欄、版權(quán)聲明、logo等

      語法:

      <%@ include file = 'url' %>

      Eg:

      <%@include file = 'header.html' %><%@include file = 'footer.html' %>

      2.11 JSP頁面中的隱含對象

      什么是隱含對象?

      容器自動創(chuàng)建,在JSP文件中可以直接使用的對象

      作用:JSP預(yù)先創(chuàng)建的這些對象可以簡化對HTTP請求,響應(yīng)信息的訪問

      JSP知識匯總

      JSP知識匯總

      3. JSP運行原理

      3. 1 JSP是如何運行的

      JSP知識匯總

      3. 2 JSP是如何轉(zhuǎn)換成Java

      JSP知識匯總

      3. 3 如何將靜態(tài)頁面轉(zhuǎn)化成動態(tài)頁面

      step1:拷貝靜態(tài)頁面代碼到JSP頁面

      step2:添加page指令pageEncoding和contentType

      step3:修改頁面內(nèi)容與目標(biāo)內(nèi)容一致

      step4:將需要動態(tài)生成的內(nèi)容刪除,替換為Java代碼

      4. 轉(zhuǎn)發(fā)

      4. 1 什么是轉(zhuǎn)發(fā)

      一個Web組件(Servlet/JSP)將未完成的處理通過容器轉(zhuǎn)交給另一個Web組件繼續(xù)完成

      常見問題:一個Servlet獲得數(shù)據(jù)之后(比如通過調(diào)用dao),將這些數(shù)據(jù)轉(zhuǎn)發(fā)給一個JSP,由這個JSP來展現(xiàn)這些數(shù)據(jù)(比如,以表格的方式來展示)

      4. 2 如何實現(xiàn)轉(zhuǎn)發(fā)

      • 1)綁定數(shù)據(jù)到request對象
      • 2)獲得轉(zhuǎn)發(fā)器
      • 3)轉(zhuǎn)發(fā)

      4. 3 綁定數(shù)據(jù)到request對象

      實現(xiàn)綁定

      request.setAttribute(String name,Object obj);

      name : 綁定名

      obj : 綁定值

      讀取綁定值

      Object request.getAttribute(String name)

      如果綁定名對應(yīng)的值不存在,返回null

      4. 4 獲得轉(zhuǎn)發(fā)器

      RequestDispatcher rd = request.getRequestDispatcher(String path);

      path:轉(zhuǎn)發(fā)的目的地,即將未完成的處理繼續(xù)下去的另一個組件,比如一個JSP文件

      4. 5 轉(zhuǎn)發(fā)

      實現(xiàn)轉(zhuǎn)發(fā):rd.forward(request,response);

      通常情況下第2步和第3步合并為一行語句,如下:

      request.getRequestDispatcher(path).forword(request,response);

      4. 6 轉(zhuǎn)發(fā)的原理

      JSP知識匯總

      4. 7 轉(zhuǎn)發(fā)的特點

      轉(zhuǎn)發(fā)以后,地址欄不會發(fā)生變化。原因是轉(zhuǎn)發(fā)的過程是發(fā)生在服務(wù)器內(nèi)部的,瀏覽器并不知道。

      轉(zhuǎn)發(fā)的目的地必須是同一個應(yīng)用內(nèi)部的某個地址

      轉(zhuǎn)發(fā)所涉及的各個web組件會共享同一個request對象和response對象

      注意:在forward之后的其他語句還會執(zhí)行嗎?

      答:一定會執(zhí)行,只要不報異常。

      4. 8 轉(zhuǎn)發(fā)和重定向的區(qū)別

      • 重定向是瀏覽器發(fā)送請求并收到響應(yīng)以后再次向一個新地址發(fā)請求;轉(zhuǎn)發(fā)是服務(wù)器收到請求后為了完成響應(yīng)收到新的地址
      • 重新定向中有兩次請求對象,不共享數(shù)據(jù),轉(zhuǎn)發(fā)只產(chǎn)生一次請求對象且在組件間共享數(shù)據(jù)
      • 重定向后地址欄地址改變,而轉(zhuǎn)發(fā)則不會
      • 重定向的新地址可以是任意地址,轉(zhuǎn)發(fā)到的新地址必須是同一個應(yīng)用內(nèi)的某地址

      JSP知識匯總

      5 JSP開發(fā)常見問題

      5.1 異常處理

      1)編程式的異常處理

      使用轉(zhuǎn)發(fā)跳轉(zhuǎn)到指定頁面進行提示說明

      try{ //... ... }catch(Exception e){ request.getRequestDispatcher(url).forward(request,response);

      2)容器中的聲明式處理

      step1:將異常拋給容器,但底層的錯誤提示不要返回給用戶

      注意:異常只允許拋service指定的異常,不能超出指定范圍使用如下寫法:throw new ServletException(e);

      step2:在web.xml文件中配置錯誤處理頁面節(jié)點

      java.servlet.ServletException /error.jsp

      5.2 路徑問題

      1)路徑使用

      • 鏈接地址
      • 表單提交
      • 重定向 response.sendRedirect(url)
      • 轉(zhuǎn)發(fā) request.getRequestDispatcher(url)

      2)相對路徑

      • 從當(dāng)前文件出發(fā)到達目標(biāo)文件所經(jīng)過的路徑叫做

        相對路徑

      • 書寫格式不以“ / ”開頭
      • 退至上一級目錄以“ . . / ”開頭

      JSP知識匯總

      3)絕對路徑

      • 以 ” / ” 開頭的路徑都是絕對路徑,不以當(dāng)前文件的位置作為起- 始,而是以一個固定位置作為起始到達目標(biāo)文件所經(jīng)過的路徑
      • 這個固定的位置可能是應(yīng)用名,也可能是應(yīng)用名之后

      JSP知識匯總

      4)路徑的處理技巧

      在使用絕對路徑時:

      • 鏈接地址、表單提交、重定向是從應(yīng)用名開始寫
      • 轉(zhuǎn)發(fā) 是從應(yīng)用名之后開始寫
      • 獲得應(yīng)用的實際部署名稱可使用如下方法:
      String request.getContextPath();

      謝謝閱讀本文哦,如果喜歡本問可以收藏哦,讓我們一起學(xué)習(xí)進步!

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多