Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 99免费在线视频,久久久免费视频播放,亚洲一区第一页

          整合營銷服務商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          JSP運行原理及運行過程

          SP的工作模式是請求/響應模式,客戶端首先發(fā)出HTTP請求,JSP程序收到請求后將進行處理并返回處理結果。在一個JSP文件第一次被請求的時候,JSP引擎(容器)把該JSP文件轉換成一個Servlet,而這個引擎本身也是一個Servlet。JSP的運行原理如圖11-4所示。

          圖11-4 JSP的運行原理

            JSP的運行過程具體如下。

            (1)客戶端發(fā)出請求,請求訪問JSP文件。

            (2)JSP容器先將JSP文件轉換成一個Java源文件(Java Servlet源程序),在轉換過程中,如果發(fā)現(xiàn)JSP文件中存在任何語法錯誤,則中斷轉換過程,并向服務端和客戶端返回出錯信息。

            (3)如果轉換成功,則JSP容器會將生成的Java源文件編譯成相應的字節(jié)碼文件*.class。該class文件就是一個Servlet,Servlet容器會像處理其他Servlet一樣處理它。

            (4)由Servlet容器加載轉換后的Servlet類(class文件)創(chuàng)建一個該Servlet(JSP頁面的轉換結果)的實例,并執(zhí)行Servlet的jspInit()方法。jsInit()方法在Servlet的整個生命周期中只會執(zhí)行一次。

            (5)執(zhí)行jspService()方法處理客戶端的請求。對于每一個請求,JSP容器都會創(chuàng)建一個新的線程處理它。如果多個客戶端同時請求該JSP文件,則JSP容器會創(chuàng)建多個線程,使每一個客戶端請求都對應一個線程。

            (6)如果JSP文件被修改了,則服務器將根據(jù)設置決定是否對該文件重新進行編譯,如果需要重新編譯,則使用重新編譯后的結果取代內存中的Servlet,并繼續(xù)上述處理過程。需要注意的是,雖然JSP效率很高,但在第一次調用時往往由于需要轉換和編譯,所以會產(chǎn)生一些輕微的延遲。

            (7)如果系統(tǒng)出現(xiàn)資源不足等問題,JSP容器可能會以某種不確定的方式將Servlet從內存中移除,發(fā)生這種情況的時候,首先會調用jspDestroy()方法,然后Servlet實例會被作為“垃圾”進行處理。

            (8)當請求處理完成后,響應對象由JSP容器接收,并將HTML格式的響應信息發(fā)送回客戶端。

          SP:Java Server Pages。JSP是一種網(wǎng)頁的編碼格式,不同于HTML的是JSP中是由 HTML中的標簽指令 和 Java邏輯代碼 拼湊而成, 其中的Java代碼類似于JavaScript中的邏輯代碼, 但相對比來說JSP中的Java代碼更方便閱讀和書寫.

          一:JSP的運行原理

          當JSP頁面被運行時,WEB容器會把請求交給JSP引擎處理,會將JSP翻譯成一個_jspServlet,然后按照Servlet的調用方式來進行調用,

          瀏覽器向服務器發(fā)請求,不管訪問的是什么資源,其實都是在訪問Servlet,所以當訪問一個jsp頁面時,其實也是在訪問一個Servlet,服務器在執(zhí)行jsp的時候,首先把jsp翻譯成一個Servlet,所以我們訪問jsp時,其實不是在訪問jsp,而是在訪問jsp翻譯過后的那個Servlet,

          二:Tomcat

          Tomcat在Web中的作用:

          Tomcat是Web中的容器,

          當客戶在Web服務器中輸入請求的時候, 如果請求的動態(tài)頁面, 那么Web服務器會創(chuàng)建一個Servlet來處理, Servlet就是Java代碼, 只是在服務器端的Java代碼, Servlet通過配置文件來攔截客戶所發(fā)出的請求, 并進行相應的處理, 最后反饋到客戶端.

          在這一系列的請求中,Web服務器是如何創(chuàng)建出Servlet來對請求進行處理? 而Tomcat的作用就是幫助Web服務器來創(chuàng)建Servlet的

          Tomcat是應用(java)服務器,它只是一個Servlet容器,是Apache的擴展,處理動態(tài)頁面的部分

          Tomcat各個文件夾的含義

          • bin:二進制執(zhí)行文件。里面最常用的文件是startup.bat
          • conf:配置目錄。里面最核心的文件是server.xml。可以在里面改端口號等。默認端口號是8080,也就是說,此端口號不能被其他應用程序占用。
          • lib:庫文件。tomcat運行時需要的jar包所在的目錄
          • logs:日志
          • temp:臨時產(chǎn)生的文件,即緩存
          • webapps:web的應用程序。web應用放置到此目錄下瀏覽器可以直接訪問
          • work:編譯以后的class文件。

          當我們通過瀏覽器訪問index.jsp時,服務器首先將index.jsp翻譯成一個index_jsp.class,在Tomcat服務的work\Catalina\localhost\項目名\org\apache\jsp 目錄下可以看到index_jsp.class的源代碼文件index_jsp.java

          index_jsp這個類是繼承 org.apache.jasper.runtime.HttpJspBase這個類的,通過查看Tomcat服務器的源代碼,可以知道在apache-tomcat-6.0.20-src\java\org\apache\jasper\runtime目錄下存HttpJspBase這個類的源代碼文件

          HttpJspBase 類是繼承 HttpServlet 的,所以 HttpJspBase 類是一個 Servlet ,而 index_jsp 又是繼承 HttpJspBase類的,所以index_jsp類也是一個Servlet,所以當瀏覽器訪問服務器上的index.jsp頁面時,其實就是在訪問index_jsp這個Servlet,index_jsp這個Servlet使用_jspService這個方法處理請求。

          三:Jsp中的HTML代碼和Java代碼如何發(fā)送到客戶端

          1:jsp中的代碼是由 Java代碼 和 HTML 代碼組成的 但是兩種不同的代碼是如何實現(xiàn)他們的作用的?

          在客戶端發(fā)出請求時(請求的是動態(tài)代碼) 但是客戶端卻只能看到HTML代碼, Java代碼是客戶端看不到的

          原因是: 請求的JSP頁面中,所有的代碼是通過了Web服務器(在Tomcat下)編譯后的Servlet代碼, 在jsp中編寫的java代碼和html代碼都會被翻譯到_jspService方法中去,在jsp中編寫的java代碼會原封不動地翻譯成java代碼,如<%out.print("HelloJsp");%>直接翻譯成out.print("Hello Jsp");,而HTML代碼則會翻譯成使用out.write("<html標簽>\r\n");的形式輸出到瀏覽器。在jsp頁面中編寫的html排版標簽都是以out.write("<html標簽>\r\n");的形式輸出到瀏覽器,瀏覽器拿到html代碼后才能夠解析執(zhí)行html代碼。

          當執(zhí)行_jspService方法處理請求時,就會執(zhí)行在jsp編寫的java代碼了,所以Jsp頁面中的java代碼服務器是通過調用_jspService方法處理請求時執(zhí)行的。(_jspService中的Java代碼是實現(xiàn)動態(tài)頁面的邏輯基礎)

          yEclipse官方最新版免費下載|Myeclipse漢化下載.MyEclipse-功能最全面的Java IDE. - MyEclipse官方中文網(wǎng)

          如果您有HTML或JSP文件要編輯,這里將介紹如何編輯。查找以下信息:

          • 編輯源代碼
          • 大綱和屬性視圖
          • 參數(shù)頁面

          該功能在MyEclipse中是可用的。

          一、HTML / JSP編輯器

          要編輯HTML或JSP文件,請執(zhí)行以下操作當中的一個:

          • 雙擊HTML或JSP文件。
          • 右鍵單擊HTML或JSP文件,并選擇Open。

          HTML編輯器有以下模式:

          • 源模式 — 源模式是HTML和JSP代碼的源代碼編輯器,它包括智能內容輔助、行編號、彩色語法高亮顯示、格式操作、實時驗證、在輸入時標記有問題的源代碼以及代碼格式化。
          • 設計模式 — 設計模式具有雙面板視圖,頂部面板為設計模式,底部面板為源模式。設計模式為所見即所得的可視化編輯模式,設計畫布允許選擇、復制、剪切、粘貼和使用拖放重新定位Web UI控件。此模式包括一個設計調色板,其中包含可以添加到設計畫布的UI Web控件。
          • 預覽模式 — 預覽模式允許用戶快速查看頁面在瀏覽器中的外觀,預覽模式從設計模式加載當前源代碼,即使編輯器內容尚未保存。HTML源代碼以預覽模式呈現(xiàn),并且“扎根”于資源所在的位置。如果HTML文檔中的圖像相對于HTML頁面的當前位置,則圖像將在預覽中正確呈現(xiàn)。

          打開文件時,默認模式是Design(設計),通過單擊編輯器底部的適當選項卡來更改模式。

          本文概述了使用源代碼編輯器編輯HTML時最重要的概念和特性。

          二、編輯源代碼

          用戶可以從源代碼模式或設計模式訪問源代碼,設計模式具有雙面板視圖,設計模式位于頂部面板,源模式位于底部面板。

          直接編輯源代碼時,可以使用以下功能:

          • 語法、顏色和高亮
          • 智能代碼完成和內容輔助
          • HTML驗證
          • 源格式和清理
          • HTML模板
          • HTML片段

          2.1 智能代碼完成和內容輔助

          在整個源代碼中,編輯器提供特定于內容的代碼幫助。

          Tag names(標記名稱):Code assist根據(jù)當前上下文提供可用HTML標記的列表。

          Tag attributes(標記屬性):代碼輔助提供了特定于正在編輯的標記屬性列表。

          Attribute values(屬性值):在適當?shù)臅r候,代碼幫助會為您提供一個已知可能值的列表。

          2.2 HTML驗證

          有兩種類型的HTML驗證:“輸入時”和“資源更改”。

          “輸入時”:當對HTML文檔進行更改時,編輯器總是檢查HTML語法的有效性,就像Java編輯器一樣。

          注意:這種類型的驗證錯誤和警告不會出現(xiàn)在Problems視圖中。

          資源更改:當資源被修改(保存、移動、復制或導入)時,資源構建器將對資源執(zhí)行HTML驗證。

          注意:您可以通過從菜單中選擇Window>Preferences,展開MyEclipse并選擇Validation來設置驗證參數(shù)。

          2.3 源格式化和清理

          要快速格式化源代碼,請右鍵單擊編輯器,并選擇Source>Format。格式化器不會在內部修改HTML標記元素,它只調整HTML元素的縮進和間距。

          使用Cleanup Document選項進行高級格式化和樣式調整,允許您更改標記名稱和屬性的大小寫,還有其他選項可以插入所需的標記和屬性。要使用此選項,請在編輯器中右鍵單擊并選擇Source>Cleanup Document,選擇Format source復選框,來將Format Document操作作為文檔清理的一部分。


          主站蜘蛛池模板: 欧美日韩精品一区二区在线视频| 免费日本一区二区| 国产福利91精品一区二区| 伊人久久精品无码麻豆一区| 成人午夜视频精品一区| 在线观看中文字幕一区| 亚洲AV无码一区二区三区人| 日本精品高清一区二区| 国产另类ts人妖一区二区三区| 精品国产一区二区三区久久狼 | 久久精品国产一区二区| 国产一区二区好的精华液| 蜜臀AV一区二区| 中文字幕一区二区三区精彩视频| 国产精品伦一区二区三级视频| 国产成人精品无人区一区| 麻豆一区二区三区蜜桃免费| 国产成人无码aa精品一区| 久久久国产一区二区三区 | 91精品国产一区二区三区左线| 无码人妻一区二区三区在线| 亚洲AV无一区二区三区久久| 国产成人AV一区二区三区无码| 亚洲乱码一区二区三区在线观看 | 国产一区三区二区中文在线 | 人妻天天爽夜夜爽一区二区| 亚洲综合一区二区精品导航| 亚洲一区在线观看视频| 91在线一区二区三区| 无码精品一区二区三区| 国产一区在线播放| 久久se精品一区精品二区国产| 美女福利视频一区| 51视频国产精品一区二区| 久久久无码精品人妻一区| 丝袜美腿高跟呻吟高潮一区| 国产福利一区二区在线视频 | 亚洲国产精品自在线一区二区 | 国产福利酱国产一区二区| 国产成人精品一区二区三在线观看| 国产午夜一区二区在线观看|