servlet和jsp學習(一)
阿新 • • 發佈:2019-01-10
1,網路應用程式的架構(瞭解)
(1)主機/終端
- 特點:
主機負責所有的計算(處理業務),終端只負責輸入輸出(不做任何計算)。 - 優點:
可靠,安全,i/o能力強。 - 缺點:
昂貴,擴充套件困難。
(2)client/server
1)兩層的client/server
- 特點:
使用資料庫來充當伺服器(大量的業務處理邏輯是使用資料庫特定的程式語言來寫的)。客戶端提供介面和少量的業務邏輯處理。 - 缺點:
可移植性差(特定的程式語言)。
不適合大型應用(要求客戶端與
資料庫伺服器建立一個持續連線)。
2)三層的client/server
- 特點:
所有的業務處理都由應用伺服器來做。 - 優點:
可移值性好(一般應用伺服器都是由
java語言來寫的)。
適合開發大型的應用。 - 缺點:
客戶端需要單獨安裝和維護。
開發複雜。
(3)browser/web server
- 特點:
使用瀏覽器來充當客戶端,使用web伺服器來充當應用伺服器,使用標準化的http協議來通訊。 - 優點:
開發相對簡對(不需要開發通訊模組,
不需要自定義協議)。
不需要單獨安裝客戶端了。
2,什麼是servlet?
sun公司制訂的一種用來擴充套件web伺服器功能的元件規範。
servlet = server(伺服器) + let(小程式)
(1)擴充套件web伺服器功能
web伺服器收到請求之後,可以呼叫servlet來處理。
(2)元件規範
- a,什麼是元件?
符合規範,並且實現了部分功能的軟體模組。
元件一般需要部署到相應的容器裡面才能執行。 - b,什麼是容器?
符合規範,提供元件的執行環境的程式。
tomcat提供了一個servlet容器。
注:
有些web伺服器,比如iis,apache httpserver等沒有提供servlet容器,需要另外再嵌入或者呼叫單獨的servlet容器才能執行servlet。
元件不依賴特定的容器的,比如,
我們開發了一個servlet,可以部署到weblogic, jetty,was,tomcat等伺服器上執行。
3,如何寫一個servlet?
- step1,寫一個java類,實現Servlet
介面或者繼承HttpServlet抽象類。 - step2,編譯。
step3,打包,即建立一個具有如下結構的資料夾
appname
WEB-INF
classes(放.class檔案)
lib(可選,放.jar檔案)
web.xml(部署描述檔案)step4,部署
將step3建立好的整個資料夾拷貝到伺服器特定的資料夾下面,比如,tomcat
一般可以拷貝到webapps下面。- step5,啟動伺服器,訪問
http://ip:port/appname/url-pattern
http://localhost:8080/web01/hello
如果出錯,可能是埠被佔用,可以修改埠:8088 8089
4,安裝tomcat
- step1,將tomcat的安裝壓縮檔案解壓到/home/soft01下。
(www.apache.org下載tomcat) - step2,配置環境變數。
JAVA_HOME: jdk安裝路徑
CATALINA_HOME:tomcat的安裝路徑,
比如 /home/soft01/apache-tomcat7
PATH: tomcat的安裝路徑/bin - step3,啟動tomcat
cd /home/soft01/apache-tomcat7/bin
sh startup.sh(或者sh catalina.sh run)
(windows環境下用startup.bat)
- step4,訪問tomcat
開啟瀏覽器,輸入
http://localhost:8080
關閉tomcat:開啟/tomcat/bin,使用裡面的shutdown命令
5,使用myeclipse來開發servlet
- step1,啟動myeclipse,配置tomcat。
step2,建立一個web工程。
src/main/webapp/WEB-INF/web.xml(必須結構),否則錯誤,因此需要使用右鍵專案名,
step3,匯入jar包
- 1)使用marven搜尋javaee,在結果中選擇javaee-api
- 2)使用tomcat自帶包
- 選擇專案,右鍵點選properties
- 彈出框裡在左側選擇Targeted Runtimes
- 右側勾選Apache Tomcat
- step4,開發Servlet
- 1)編寫Servlet
- 建立package
- 建立一個類名為XxxServlet
- 繼承HttpServlet,從而間接的實現了Servlet的介面
- 重寫父類的service()方法
- 2)配置Servlet
- 宣告類,給它取別名
- 通過其別名引用此類,給它取一個訪問路徑
- 1)編寫Servlet
- step5,部署
- 在Servers檢視下,選擇tomcat7
- 右鍵點選Add and Remove
- 在彈出框內將左邊的待部署專案移動到右側
- 啟動tomcat即可
6,servlet是如何執行的?
比如,在瀏覽器位址列輸入
http://ip:port/firstweb/hello?uname=tom
- step1,瀏覽器依據ip,port建立連線。
- step2,瀏覽器將相關資料(比如,請求資源路徑,請求引數)打包,然後傳送請求。
- step3,伺服器解析請求資料包,然後將解析之後的資料儲存到request物件上,同時,伺服器還會建立一個response物件。
- step4,伺服器建立servlet物件,然後呼叫該物件的service方法(伺服器會將之前建立好的request,response作為引數傳遞進來)。
- step5,在service方法裡面,通過request物件來獲得請求資料(比如,請求引數值),然後進行相應的處理,最後將處理結果寫到response物件上。
- step6,伺服器從response物件上取之前儲存的處理結果,然後打包,傳送給瀏覽器。
step7,瀏覽器解析響應資料包,然後依據解析的結果生成新的頁面。
整體訪問過程如下所示: