JSP複習資料

2020-08-10 16:24:27

Jsp環境搭建及入門

jsp的全名: JavaServer Pages
jsp的意思: 動態網頁

動態、靜態區分

  1. 不用和是否有「動感」混爲一談
  2. 是否隨着時間、地點、使用者操作的改變而改變

注:動態網頁需要用到伺服器端指令碼語言(JSP)

架構

CS架構:

全名: Client Server(用戶端服務)
圖示:
在这里插入图片描述
優點:

1.美觀

2.響應更加迅速

不足:

1.如果軟體升級,那麼全部軟體都需要升級

2.維護麻煩,需要維護每一臺用戶端軟體

3.每一臺用戶端都需要安裝用戶端軟體

BS架構:

全名: Browser Server(瀏覽器服務)

在这里插入图片描述

優點: 用戶端通過 瀏覽器直接存取伺服器端,彌補CS的缺點

注:BS和CS各有優勢

注:JSP是基於BS的網頁開發,且使用TOMCAT伺服器

Tomcat

Tomcat目錄

bin: 可執行檔案(startup.bat shutdown.bat)

conf: 組態檔(server.xml)

lib: tomcat依賴的jar檔案

log: 日誌檔案(記錄出錯等資訊)

temp: 臨時檔案

webapps: 可執行的專案(將我們開發的專案放入該目錄)

work: 存在由jsp翻譯成的java,以及編輯成的class檔案

注:.jsp->.java->.class,class檔案纔是最終執行的檔案

設定tomcat

1.設定jdk(必須設定JAVA_HOME)

2.設定catalina_home 內容是tomcat的根目錄

3.通過bin目錄中的startup.bat可以驗證是否設定成功

注:不要直接關閉tomcat,建議使用shutdown.bat關閉

常見錯誤

可能與其他服務的埠號衝突

tomcat埠號預設8080(此埠較爲常見,容易衝突),建議修改埠

修改埠

在conf目錄下的組態檔server.xml
在这里插入图片描述
修改埠之後可以通過在瀏覽器中輸入網址 localhost:8888來驗證是否修改成功

注:如果是IE瀏覽器需要加上www.的字首

存取順序

如果直接輸入localhost:8888會按照中的檔案順序來依次尋找,直到找到存在的檔案,然後存取
在这里插入图片描述

常見狀態碼

404:資源不存在

200:一切正常

403:許可權不足(比如存取a目錄,但是a目錄設定爲不可見

3xx:頁面重定向

500:伺服器內部錯誤(程式碼有誤)

Tomcat啓動時亂碼

將conf檔案下的logging.properties檔案中的java.util.logging.ConsoleHandler.encoding = UTF-8
改爲java.util.logging.ConsoleHandler.encoding = GBK

該程式碼位於47行

JSP專案

Jsp專案需要的東西

1.專案/WEB-INF/lib

2.專案/WEB-INF/classes

3.專案/WEB-INF/web.xml 注:主要需要的是裏面的設定資訊

注:專案中的lib和 tomcat中 lib的區別是,專案中的lib中的 Jar包僅僅適用於當前專案,tomcat中的lib使用與所有的 tomcat專案

jsp的意思: 在html檔案中巢狀java程式碼

例如:
在这里插入图片描述

JSP如何存取

存取路徑 localhost:8888/專案名/檔名

如果wel.xml檔案中目錄下存在檔名

例如:

<welcome-file-list>
       <welcome-file>index.jsp</welcome-file>
       <welcome-file>index1.jsp</welcome-file>
</welcome-file-list>

就可以通過localhost:8888/專案名來直接存取檔案

如果index.jsp存在則存取它,否則存取index1.jsp

虛擬路徑和虛擬主機

tomcat預設的專案路徑是webapps,如果專案不放在webappps在可以通過虛擬路徑來識別

注:在tomcat\server.xml檔案中設定

相對路徑和絕對路徑

相對路徑: /專案名 (建議使用)

絕對路徑: D:\Apache\apache-tomcat-8.5.49\webapps\專案名

虛擬路徑

docBase:實際路徑

path:虛擬路徑 (絕對路徑,相對路徑(相對於webapps))

在这里插入图片描述

設定虛擬路徑之後,存取虛擬路徑 /專案 相當於存取實際路徑D:\study\專案

注:設定虛擬路徑後需要重新啓動 tomcat

還可以使用第二種方式來存取不在webapps中的專案

1.在D:\Apache\apache-tomcat-8.5.49\conf\Catalina\localhost中建立檔案 專案名.xml

2.在xml檔案中寫入虛擬路徑

注:該方式不需要重新啓動 tomcat

注:如果使用 ROOT.xml作爲檔名,那麼存取的時候可以直接通過localhost:8888/檔名來存取專案(一般不這麼用)

虛擬主機

可以改變存取專案的名字

例如可以將localhost/8888/檔名 ----》 www.jd.com

1.在conf.xml檔案的目錄下建立一個虛擬主機

        <Host name="www.jd.com"  appBase="D:\study\JspProject">
		<Context docBase="D:\study\JspProject" path="/" />
		</host>

appBase: 專案的發佈路徑

name: 專案的存取名

2.修改conf.xml檔案中的預設主機

在这里插入图片描述

注:之前預設的是localhost

3.新增主機對映

在这里插入图片描述

檔案位置: C:\Windows\System32\drivers\etc\hosts.SYS

4.將埠改成預設埠80

5.通過www.jd.com來存取我們自己寫的jsp頁面

JSP執行流程

在这里插入图片描述

第一次存取

伺服器端將jsp翻譯成java,再將java編譯成class檔案

java和class的生成位置:

D:\Apache\apache-tomcat-8.5.49\work\Catalina\localhost\專案名\org\apache\jsp

注:這是第一次存取慢的原因

第二次存取

直接存取class檔案

注:如果伺服器端程式碼修改了,將會在存取時重新翻譯,編譯

生成的JAVA檔案實質

翻譯命名規則: index.jsp->index_jsp.java

本質: Servlet檔案

注:jsp和Servlet可以互相轉換