Servlet/JSP相關問題解答

才智咖 人氣:5.64K

1 什麼是JSP?它和Servlet有什麼區別?

Servlet/JSP相關問題解答

答:你可以將JSP當做一個可擴充的HTML來對待。

雖然在本質上JSP檔案會被服務器自動翻譯為相應的Servlet來執行。

可以說Servlet是面向Java程式設計師而JSP是面向HTML程式設計師的,除此之外兩者功能完全等價。

2 什麼是Servlet?

答:一個Servlet是一個Java類。它處理Http(s)請求並作出響應,包括返回一個HTML頁面或轉交給其他URL處理。

Servlet必須執行在一個Web Container例如Tomcat中。

Servlet必須是Servlet的子類,

你可以繼承doGet()或者doPost()方法,兩者分別對應於Http(s)中的Get請求和Post請求。

3 sendRedirect()和forward()有什麼不同?

答:sendRedirect()是向瀏覽器傳送一個redirect通知,瀏覽器重定向到新的URL。

而forward是在伺服器端直接轉到新的URL,對於瀏覽器是透明的。

前者瀏覽器的位址列顯示的是新的URL,後者瀏覽器的位址列顯示的是Servlet的URL。

因而當目標URL會自動重新整理時,兩者會造成一些差別。

4 我寫了一個Servlet程式,怎麼執行它?

答:開發J2EE程式有一個部署(deploy)的概念,實際上是開發——部署——執行的三部曲。

大多數伺服器支援Hot deploy。你只需要在相應的Application目錄(具體路徑依賴於伺服器)下面

建立一個符合WAR或EAR格式(參見16,17)的目錄,啟動伺服器,就可以通過瀏覽器訪問了。

特別的,你的Servlet的class檔案應當放在/WEB-INF/classes目錄中。

注意J2EE SDK不支援Hot deploy,你需要通過它的deploy tool來部署。

Tomcat只支援WAR格式。

5 EAR和WAR有什麼不同?

答:EAR是一個完整的J2EE應用程式,包括Web部分和EJB部分。

WAR只是其中的Web部分。

6 EAR格式是怎樣的?

答:一個EAR可以包含任意多個WAR或EJB JAR,並且包含一個META-INF的'目錄。

在/META-INF中包含了一個,其中描述了這個EAR包含哪些模組,以及安全性配置。

細節請看參考書。

7 WAR格式是怎樣的?

答:一個WAR包含一個WEB-INF的目錄,這個目錄下包含classes目錄,lib目錄和。

/WEB-INF/classes存放按package組織的class檔案,/WEB-INF/lib目錄存放jar檔案,

描述了很多東西,請讀參考書。

8 我的普通HTML檔案應當放在哪裡?

答:放在除了/WEB-INF以外的其他地方。

9 我訪問不到servlet,甚至連HTML檔案都訪問不到!

答:第一你沒啟動伺服器。第二你敲錯了埠。第三你沒有正確配置context-path。

第四你的伺服器不支援auto reload或者你關閉了這一選項,你得重啟伺服器。

第五確認你沒有把HTML放在/WEB-INF目錄下,那是訪問不到的。

10 我能訪問HTML但是訪問不到servlet。

答:請檢查你的檔案。確保你正確定義了和元素。

前者標識了一個servlet,後者將一個相對於context-path的URL對映到一個servlet。

在Tomcat中你可以通過/context-path/servlet/package/servletname的形式訪問servlet,

但是這只是Tomcat的便捷訪問方式,並不是正式規範

TAGS:問題解答