說到Java web開發,就不得不提Servlet 和 JSP。這兩者是java web開發技術。雖然現在有這麼多的web框架,公司中很少會用這兩個技術來直接開發項目,但是理解了這兩個技術,一則會讓你對web的基礎知識要很深的瞭解,二則學其他的相比來說要更好理解點。一、Servlet1. 什麼是se...
說到Java web開發,就不得不提Servlet 和 JSP。這兩者是java web開發技術。雖然現在有這麼多的web框架,公司中很少會用這兩個技術來直接開發項目,但是理解了這兩個技術,一則會讓你對web的基礎知識要很深的瞭解,二則學其他的相比來說要更好理解點。
一、Servlet
1. 什麼是servlet?
servlet是運行在Web伺服器上的java程式。是一個中間層,負責連接來自Web瀏覽器或其他Http請求和Http伺服器上的資料庫或應用程式。
2. Servlet的作用是什麼?
a. 讀取用戶發送的顯示數據和瀏覽器發送的隱式請求數據。
顯示數據一般是頁面上輸入的表單數據。
隱式數據即Http信息,如cookie, 瀏覽器能夠識別的的媒體類型或壓縮模式等。
b. 生成結果。
這裡會做業務邏輯的處理,如訪問資料庫或其他複雜操作。也會生成需要直接返回給瀏覽器的結果及Html內容。
c. 向客戶發送顯示數據和隱式的Http響應數據。
顯示數據即用戶能夠看到的結果。
Http響應數據,如cookie設置及緩存參數。客戶端瀏覽器會讀取並處理這些信息。
3. Servlet例子
這個例子只是為了讓讀者對Servlet有個瞭解,沒有給出其他配置,故不能直接運行,後邊會有詳細介紹。
package demo0103; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ServletOverview extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ String contentType = "text/html"; response.setContentType(contentType); PrintWriter writer = response.getWriter(); String docType = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n"; String html = "<html>\n" + "<head>\n" + "<title>Hello World</title>\n" + "</head>\n" + "<body>\n" + "<h1>Hello World</h1>\n" + "</body>\n" + "</html>\n"; writer.println(docType + html); } }View Code
顯示運行結果:
二、JSP
1. 什麼是JSP?
JSP(全稱Java Server Pages)是由Sun Microsystems公司倡導和許多公司參與共同創建的一種使軟體開發者可以響應客戶端請求,而動態生成HTML、XML或其他格式文檔的Web網頁的技術標準。
2. JSP的作用?
JSP可以完成Servlet所能完成的功能。
簡單來說,可以將Servlet看作是含有HTML的java程式。將JSP看作是含有java代碼的HTML的頁面。
3. JSP例子
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Hello World</title> </head> <body> <h1>Hello World</h1> </body> </html>View Code
顯示結果:
Servlet可以完成JSP所能完成的功能,同樣JSP也可以完成Servlet所能完成的功能。如何選擇呢?
為了方便性、易用性和可維護性,二則結合是最好的處理方式。
對於業務邏輯的任務,servlet是最好的選擇。
對於顯示的任務,JSP是最好的選擇。
後面要講到的MVC模式是對二者主應用的很好詮釋。
以上只是自己的理解,如果有不妥之處,還望指出。