一:在本章我們將學到如下的內容
》HTTP協議原理
》服務器端Web編程原理
》Servlet與Web容器
》Java Web應用程序的組成
》Tomcat介紹
一:1.1解析HTTP協議
HTTP:超文本傳輸協議(HyperText Transfer Protocol)
HTTP是一種無狀態的協議,意思是指在Web瀏覽器和Web服務器之間不需要建立持久的連接。
HTTP是遵循請求/響應(Request/Response)模型的。
HTTP處理流程:
1.1.1建立連接
在java底層代碼中是這樣實現的,子不過瀏覽器已經幫我們做了!
1.1.2 發送請求信息 一旦建立的TCP連接,Web瀏覽器就會向Web服務器發送請求命令。HTTP協議將請求封裝成HTTP請求,他包括請求行,請求頭,空行,消息體。
1.1.3 回送響應信息
1.1.4 關閉連接
1.2 Web服務器的缺陷;

輔助的在服務器端進行注冊,根據參數查找並運行。
1.3 服務器端網頁編程
每次請求就打開一個CGI進程,嚴重消耗服務器資源。極大地限制了一個服務器可以支持的並發 CGI用戶數量 。
2)java的解決法案
Web容器;
-處理安全性
Servlet
1:Servlet是常規的Java代碼。代碼中用了一些新的API,但是不涉及新的語法。
2:Servlet代碼中有我們不熟悉的重要語句。Servlet不屬於J2SE,它屬於單獨的規范。
3:Servlet對標准類(HttpServlet)進行了擴展。
4:Servlet沒有main()方法。
如:

1 import javax.servlet.http.*; 2 public class HelloWorld extends HttpServlet { 3 public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{ 4 response.setContentType("text/html"); 5 PrintWriter out = response.getWriter(); 6 out.println("<html>"); 7 out.println("<head>"); 8 out.println("<title>Hello World!</title>"); 9 out.println("</head>"); 10 out.println("<body>"); 11 out.println("<h1>Hello World!</h1>"); 12 out.println("</body>"); 13 out.println("</html>"); 14 } 15 }
Servlet主要任務

1)客戶端向Web服務器發起一個HTTP請求。
2)HTTP請求被Web服務器接受,如果請求的是靜態頁面,則由Web服務器負責處理。如果請求的是Java Web組件(Servlet或者JSP),則移交給Web容器。Web容器可以在主機的同一個進程、不同的進程或其他的Web服務主機的進程中啟動。
3)Web容器根據Servlet的配置文件確定調用的具體Servlet類,並把request對象、response對象傳給它。
4)Servlet通過request對象知道客戶端的使用者是誰,客戶的請求信息是什么和其他的一些信息。Servlet處理完請求后把要返回的信息放入response對象返回到客戶端。
5)一旦Servlet完成了請求的處理,Web容器就會刷新response,把控制權返回給web服務器。
1.4 Java Web應用程序的組成