JavaBean與MVC設計模式

JavaBean

定義:
JavaBean(就是一個Java類)的定義:滿足一下2點 ,就可以稱JavaBean

a.public 修飾的類 ,public 無參構造
b.所有屬性(如果有) 都是private,並且提供set/get (如果boolean 則get 可以替換成is)

作用
JavaBean的作用:
a.減輕的jsp複雜度
b.提高代碼複用(以後任何地方的 登錄操作,都可以通過調用LoginDao實現)

分類
使用層面,Java分爲2大類:
a.封裝業務邏輯的JavaBean (LoginDao.java封裝了登錄邏輯) 邏輯
可以將jsp中的JDBC代碼,封裝到Login.java類中 (Login.java)

b.封裝數據的JavaBean (實體類,Student.java Person.java ) 數據
對應於數據庫中的一張表
Login login = new Login(uname,upwd) ;//即用Login對象 封裝了2個數據(用戶名 和密碼)

封裝數據的JavaBean 對應於數據庫中的一張表 (Login(name,pwd))
封裝業務邏輯的JavaBean 用於操作 一個封裝數據的JavaBean

可以發現,JavaBean可以簡化 代碼(jsp->jsp+java)、提供代碼複用(LoginDao.java)

MVC設計模式

M:Model ,模型 :一個功能。用JavaBean實現。

V:View,視圖: 用於展示、以及與用戶交互。使用html js css jsp jquery等前端技術實現

C:Controller,控制器 :接受請求,將請求跳轉到模型進行處理;模型處理完畢後,再將處理的結果
返回給 請求處 。 可以用jsp實現, 但是一般建議使用 Servlet實現控制器。
在這裏插入圖片描述

Servlet

Servlet:
Java類必須符合一定的 規範:
a.必須繼承 javax.servlet.http.HttpServlet
b.重寫其中的 doGet()或doPost()方法

doGet(): 接受 並處 所有get提交方式的請求
doPost():接受 並處 所有post提交方式的請求

Servlet要想使用,必須配置
Serlvet2.5:web.xml
Servle3.0: @WebServlet


Servlet3.0,與Servlet2.5的區別:
Servlet3.0不需要在web.xml中配置,但 需要在 Servlet類的定義處之上編寫 註解@WebServlet(“url-pattern的值”)
匹配流程: 請求地址 與@WebServlet中的值 進行匹配,如果匹配成功 ,則說明 請求的就是該註解所對應的類


項目的根目錄:WebContent 、src

Servlet流程:
請求 -> < url-pattern> -> 根據< servlet-mapping>中的< servlet-name> 去匹配 < servlet> 中的< servlet-name>,然後尋找到< servlet-class>,求中將請求交由該< servlet-class>執行。

在這裏插入圖片描述

Servlet生命週期:5個階段

加載
初始化: init() ,該方法會在 Servlet被加載並實例化的以後 執行
服務 :service() ->doGet() doPost
銷燬 :destroy(), Servlet被系統回收時執行
卸載

init():
	a.默認第一次訪問 Servlet時會被執行 (只執行這一次)
	b.可以修改爲 Tomcat啓動時自動執行
		i.Servlet2.5:  web.xml
			  <servlet>
				...
  				 <load-on-startup>1</load-on-startup>
    			</servlet>
			其中的“1”代表第一個。
		ii.Servlet3.0
			@WebServlet( value="/WelcomeServlet" ,loadOnStartup=1  )


service() ->doGet()  doPost :調用幾次,則執行幾次
destroy():關閉tomcat服務時,執行一次。

在這裏插入圖片描述

Servlet繼承關係

ServletConfig:接口 
ServletContext getServletContext():獲取Servlet上下文對象   application
String  getInitParameter(String name):在當前Servlet範圍內,獲取名爲name的參數值(初始化參數)



a.ServletContext中的常見方法(application):
getContextPath():相對路徑
getRealPath():絕對路徑
setAttribute() 、getAttribute()
--->
String getInitParameter(String name);在當前Web容器範圍內,獲取名爲name的參數值(初始化參數)

HttpServletRequest中的方法:(同request),例如setAttrite()、getCookies()、getMethod()
HttpServletResponse中的方法:同response

三層優化

1.加入接口
建議面向接口開發:先接口-再實現類
–service、dao加入接口
–接口與實現類的命名規範
接口:interface, 起名 實體類Service
實現類:implements 起名 實體類ServiceImpl

以後使用接口/實現類時,推薦寫法:
接口 x = new 實現類();
IStudentDao studentDao = new StudentDaoImpl();

2.DBUtil 通用的數據庫幫助類,可以簡化Dao層的代碼量
幫助類 一般建議寫在 xxx.util包

在這裏插入圖片描述

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