Servlet 簡介
開發動態JavaWeb工程時,用到的技術主要有兩種Servlet和jsp ,開發Servlet 需要引入tomcat 下lib 包,其中有個 servlet-api.jar,開發Servlet 需要引入這個jar。開發JSP 需要引入tomcat中的 JSP-api.jar 文件。
Servlet 主要處理 http 的請求 和 響應。
創建代碼 public class HelloworldServlet extends HttpServlet { } 查看 servlet-api.jar 中的HttpServlet 這個類,如下所示
public abstract class HttpServlet extends GenericServlet { private static final long serialVersionUID = 1L; private static final String METHOD_DELETE = "DELETE"; private static final String METHOD_HEAD = "HEAD"; private static final String METHOD_GET = "GET"; private static final String METHOD_OPTIONS = "OPTIONS"; private static final String METHOD_POST = "POST"; private static final String METHOD_PUT = "PUT"; private static final String METHOD_TRACE = "TRACE"; private static final String HEADER_IFMODSINCE = "If-Modified-Since"; private static final String HEADER_LASTMOD = "Last-Modified"; private static final String LSTRING_FILE = "javax.servlet.http.LocalStrings"; private static final ResourceBundle lStrings = ResourceBundle.getBundle("javax.servlet.http.LocalStrings"); public HttpServlet() { } protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String protocol = req.getProtocol(); String msg = lStrings.getString("http.method_get_not_supported"); if (protocol.endsWith("1.1")) { resp.sendError(405, msg); } else { resp.sendError(400, msg); } } protected long getLastModified(HttpServletRequest req) { return -1L; } protected void doHead(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { if (DispatcherType.INCLUDE.equals(req.getDispatcherType())) { this.doGet(req, resp); } else { NoBodyResponse response = new NoBodyResponse(resp); this.doGet(req, response); response.setContentLength(); } } ......... } 這個類中封裝了各種http協議請求,get.post.........
Servlet和JSP兩者最大的區別就是,Servlet以Java程序為主, 輸出HTML代碼時需要使用out.println函數,也就是說Java中內嵌HTML; 而JSP則以HTML頁面為主,需要寫Java代碼時則在頁面中直接插入Java代碼, 即HTML中內嵌Java。典型的例子如下:
JSP文件 復制代碼代碼如下: <html> <body> <h1> <% out.println("JSP"); %> </h1> </body> </html> Servlet 復制代碼代碼如下: public class MyServlet ... { ... out.println("<html>"); out.println("<body>"); out.println("<h1>"); out.println("Servlet); out.println("</h1>"); out.println("</body>"); out.println("</html>"); }
MVC簡介 ----MVC 框架由底層的Servlet 發展而來
MVC是三個單詞的首字母縮寫,它們是Model(模型)、View(視圖)和Controller(控制)。
所謂MVC模型就是將數據、邏輯處理、用戶界面分離的一種方法。
- M(Model, 模型):用於數據處理、邏輯處理。
- V(View,視圖):用於顯示用戶界面。
- C(Controller,控制器):根據客戶端的請求控制邏輯走向和畫面。
而在Java中,MVC這三個部分則分別對應於 JavaBeans、JSP和Servlet。
- M = JavaBeans:用於傳遞數據,擁有與數據相關的邏輯處理。
- V = JSP:從Model接收數據並生成HTML
- C = Servlet:接收HTTP請求並控制Model和View
MVC 更詳細的簡介 https://blog.csdn.net/qq_21225505/article/details/81666986
常見的 MVC 框架有Struts1/2,Spring MVC等,實際上都是在最底層的Servlet規范中發展而來的。而不同MVC框架其M(對應JAVA的POJO類)和V(如JSP,HTML等)一般是相同的,最主要的區別在C,它是HTTP處理請求、響應的關鍵。


SpringMVC和Struts 的發展歷程及其之間的區別 https://www.cnblogs.com/doit8791/p/5847498.html
SpringMVC常見注解https://www.cnblogs.com/sunniest/p/4555801.html
