- 相關(guān)推薦
Servlet/JSP相關(guān)問題解答
1 什么是JSP?它和Servlet有什么區(qū)別?
答:你可以將JSP當(dāng)做一個(gè)可擴(kuò)充的HTML來對待。
雖然在本質(zhì)上JSP文件會被服務(wù)器自動翻譯為相應(yīng)的Servlet來執(zhí)行。
可以說Servlet是面向Java程序員而JSP是面向HTML程序員的,除此之外兩者功能完全等價(jià)。
2 什么是Servlet?
答:一個(gè)Servlet是一個(gè)Java類。它處理Http(s)請求并作出響應(yīng),包括返回一個(gè)HTML頁面或轉(zhuǎn)交給其他URL處理。
Servlet必須運(yùn)行在一個(gè)Web Container例如Tomcat中。
Servlet必須是javax.servlet.http.HttpServlet的子類,
你可以繼承doGet()或者doPost()方法,兩者分別對應(yīng)于Http(s)中的Get請求和Post請求。
3 sendRedirect()和forward()有什么不同?
答:sendRedirect()是向?yàn)g覽器發(fā)送一個(gè)redirect通知,瀏覽器重定向到新的URL。
而forward是在服務(wù)器端直接轉(zhuǎn)到新的URL,對于瀏覽器是透明的。
前者瀏覽器的地址欄顯示的是新的URL,后者瀏覽器的地址欄顯示的是Servlet的URL。
因而當(dāng)目標(biāo)URL會自動刷新時(shí),兩者會造成一些差別。
4 我寫了一個(gè)Servlet程序,怎么運(yùn)行它?
答:開發(fā)J2EE程序有一個(gè)部署(deploy)的概念,實(shí)際上是開發(fā)——部署——運(yùn)行的三部曲。
大多數(shù)服務(wù)器支持Hot deploy。你只需要在相應(yīng)的Application目錄(具體路徑依賴于服務(wù)器)下面
建立一個(gè)符合WAR或EAR格式(參見16,17)的目錄,啟動服務(wù)器,就可以通過瀏覽器訪問了。
特別的,你的Servlet的class文件應(yīng)當(dāng)放在/WEB-INF/classes目錄中。
注意J2EE SDK不支持Hot deploy,你需要通過它的deploy tool來部署。
Tomcat只支持WAR格式。
5 EAR和WAR有什么不同?
答:EAR是一個(gè)完整的J2EE應(yīng)用程序,包括Web部分和EJB部分。
WAR只是其中的Web部分。
6 EAR格式是怎樣的?
答:一個(gè)EAR可以包含任意多個(gè)WAR或EJB JAR,并且包含一個(gè)META-INF的目錄。
在/META-INF中包含了一個(gè)application.xml,其中描述了這個(gè)EAR包含哪些模塊,以及安全性配置。
細(xì)節(jié)請看參考書。
7 WAR格式是怎樣的?
答:一個(gè)WAR包含一個(gè)WEB-INF的目錄,這個(gè)目錄下包含classes目錄,lib目錄和web.xml。
/WEB-INF/classes存放按package組織的class文件,/WEB-INF/lib目錄存放jar文件,
web.xml描述了很多東西,請讀參考書。
8 我的普通HTML文件應(yīng)當(dāng)放在哪里?
答:放在除了/WEB-INF以外的其他地方。
9 我訪問不到servlet,甚至連HTML文件都訪問不到!
答:第一你沒啟動服務(wù)器。第二你敲錯(cuò)了端口。第三你沒有正確配置context-path。
第四你的服務(wù)器不支持auto reload或者你關(guān)閉了這一選項(xiàng),你得重啟服務(wù)器。
第五確認(rèn)你沒有把HTML放在/WEB-INF目錄下,那是訪問不到的。
10 我能訪問HTML但是訪問不到servlet。
答:請檢查你的web.xml文件。確保你正確定義了和元素。
前者標(biāo)識了一個(gè)servlet,后者將一個(gè)相對于context-path的URL映射到一個(gè)servlet。
在Tomcat中你可以通過/context-path/servlet/package/servletname的形式訪問servlet,
但是這只是Tomcat的便捷訪問方式,并不是正式規(guī)范。
【Servlet/JSP相關(guān)問題解答】相關(guān)文章:
法國留學(xué)商科專業(yè)相關(guān)問題解答10-26
最新中考改革意見相關(guān)問題解答08-08
2017年考研報(bào)名費(fèi)相關(guān)問題解答06-18