Servlet
Servlet做了什麼?
-
本身不做任何業務處理
-
只是接收請求並決定調用哪個JavaBean去處理請求
-
確定用哪個頁面來顯示處理返回的數據
Servlet是什麼?
-
Server+Applet,是一種服務器端的Java應用程序
-
只有當一個服務器端的程序使用了Servlet API的時 候,這個服務端的程序才能稱之爲Servlet
JSP與Servlet之間有什麼關係?
Servlet是運行在服務器端的Java應用程序
1.創建Servlet
1.創建類實現javax.servlet.Servlet接口
2.創建類繼承javax.servlet.GenericServlet類
3.創建類繼承javax.servlet.http.HttpServlet類
示例:
通過實現javax.servlet.Servlet接口創建Servlet
package com.java.Servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginServlet extends HttpServlet{ //實現javax.servlet.Servlet接口
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("我是Servlet,我被訪問了!");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
需要實現doGet和doPost方法,因爲有時候不知道在jsp的表單提交中method是get和post,所有在應該方法中調用另一個方法來保證不管是get還是post都能調用到自身的方法。
2.部署運行Servlet
修改web.xml(部署描述文件)
-
添加
<servlet>
:把Servlet內部名映射到一個Servlet類名 -
添加
<servlet-mapping>
:把用戶訪問的URL映射到Servlet的內部名
注意:
<servlet-mapping>
與<servlet>
中的<servlet-name>
必須一致
<servlet>
<servlet-name>loginServlet</servlet-name>
<servlet-class>com.java.Servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>loginServlet</servlet-name>
<url-pattern>/loginServlet</url-pattern>
</servlet-mapping>
通過URL訪問Servlet:
MVC分層開發
一個網站的開發不可能是一個人活着幾個人就能寫出開的
所以在開發過程中一般都會用到分層開發
這裏我們講一下MVC模型
MVC模式(Model-View-Controller)是軟件工程的一種軟件框架,系統分爲三個基本部分:模型(Model)、視圖(View)和控制器(Controller):
Controller——負責轉發請求,對請求進行處理
View——負責界面顯示
Model——業務功能編寫(例如算法實現)、數據庫設計以及數據存取操作實現
分層思想:客戶端URL訪問 —> 表示層(JSP)—> servlet(控制器:1、獲取請求參數2、調用業務邏輯3、分發轉向)—> 業務層(調用業務邏輯層:service處理數據)—> 數據訪問層(dao)—> db(MySQL)
servlet實現mvc
1.創建Model模型層(M)
要注意的是數據庫存在外鍵映射時可在多的那一方添加額外的對象(多對一)或者在少的一方添加集合對象(一對多)
2.DBUtil包裝JDBC
包裝對數據庫的增刪改查
基本都是靜態方法,靜態屬性
靜態屬性:數據庫url,數據庫登錄名,登錄密碼 靜態方法:
1.獲取連接:返回一個連接對象
2.查詢方法:參數(連接對象,查詢語句,查詢參數)
3.更新方法:參數(連接對象,查詢語句,查詢參數)
4.關閉連接:參數(連接對象)
3.DAO:data access object數據訪問對象層:
每一個Model對象都有一個DAO,實現對各個對象的增上改查,實現相關“對象模型”的增刪改查,操作對象是model對象。分爲接口,實現類部分
4.創建View視圖層(JSP生成動態頁面)(V)
5.創建Control控制層(Servlet等java代碼,業務邏輯層)(C)
有一個DAO對象,用於操作數據庫,分爲接口,實現類部分
view層的各種客戶數據,以參數的形式傳遞給控制層的函數,通過這些參數構建Model對象,藉助DAO層實現對相關Model的增刪改查