雖然如今先後端框架都很是多,但JSP和Servlet都仍是基礎,回過頭來再學習一下。html
在回答這個問題以前,咱們先想一下,爲何在有了Servlet以後又出現了JSP呢?其實Servlet最主要的缺點就是動態內容和靜態內容融合在一塊兒
。試想,你在寫業務邏輯的時候,還要使用out.write()方法輸出一大堆的html標籤,開發效率可想而知。而JSP正是彌補了這樣的不足,JSP能夠在標準的HTML頁面中嵌入Java代碼,其靜態的部分無須Java程序控制。下面就是一個最簡單的JSP頁面:java
<%@ page contentType="text/html;charset=utf-8" language="java" errorPage=""%> <html> <head> <title>第一個JSP</title> </head> <body> <%out.println(new java.util.Date());%> </body> </html>
從表面上看,JSP彷佛再也不是Java類了,但實際上每個JSP頁面都對應着一個Servlet。編譯的工做是由Web容器來處理的(例如Tomcat等)。其實也能夠說,JSP是Servlet的一種簡化。對Tomcat來講,JSP頁面生成的Servlet保存在work路徑對應的Web應用下
。
JSP的工做原理以下圖所示:
後端
從圖中咱們能夠獲得如下幾個特色:框架
JSP必須運行在Web容器中學習
JSP必須對應Servletspa
第一次請求JSP頁面可能會比較慢,由於要編譯code