JavaWeb——Servlet與MVC分層開發

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(部署描述文件)

  1. 添加<servlet>:把Servlet內部名映射到一個Servlet類名

  2. 添加<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的增刪改查

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章