java開發中經典的三大框架SSH


首先我們要明白什么是框架為什么用?相信一開始學習編程的時候都會聽到什么、什么框架之類的;首先框架是一個軟件半成品,都會預先實現一些通用功能,使用框架直接應用這些通用功能而不用重新實現,所以大多數企業都用框架都是提高開發效率,節約開發成本。

 

絕大多數框架都遵循着一種mvc設計模式思想,MVC是Model—View—Controler的簡稱。即模型—視圖—控制器。MVC是一種設計模式,它強制性的把應用程序的輸入、處理和輸出分開。MVC中的模型、視圖、控制器它們分別擔負着不同的任務。

 

視圖: 視圖是用戶看到並與之交互的界面。視圖向用戶顯示相關的數據,並接受用戶的輸入。視圖不進行任何業務邏輯處理。

 

模型: 模型表示業務數據和業務處理。相當於JavaBean。一個模型能為多個視圖提供數據。這提高了應用程序的重用性。

 

控制器: 當用戶單擊Web頁面中的提交按鈕時,控制器接受請求並調用相應的模型去處理請求。

 

 

從上圖可以看出mvc工作場景:MVC的處理過程:首先控制器接受用戶的請求,調用相應的模型來進行業務處理,並返回數據給控制器。控制器調用相應的視圖來顯示處理的結果。並通過視圖呈現給用戶。

 

然后再看看給予mvc模式的經典的框架SSH:分別是Struts、Spring、Hibernate 。

首先介紹struts2框架:

 

1、基於MVC模式的應用層框架技術!

2、Struts2主要是通過Action動作類,處理請求! (與傳統的servlet開發相比,只需要寫Action類即可!用Action取代之前的servlet開發!) (Struts是對servletApi進行的封裝!)

3、  Struts2的發展 :Struts2=Struts1 + xwork

4、Struts2功能的引入,是通過核心過濾器完成的! 如果想用struts的任何功能,必須經過核心過濾器!(被過濾器攔截!) (struts提供的標簽的訪問,要先經過核心過濾器:StrutsPrepareAndExecuteFilter!)

 

還有struts2提供了一些簡單的功能,方便開發;例如文件的上傳,請求數據封裝;代碼如下:

 

封裝數據請求一:

 

封裝數據請求二:

 

 

從上面兩種請求可以看出:一個是作為基本類型也就是字符串,另一個是對象。大多數用到的都是第二種。

 

struts2的配置文件簡單介紹一下struts2默認訪問后綴是.action最為后綴 , 默認執行的方法是execute!

 

struts2的配置文件大概是這樣的:

 

 

在介紹一下struts的工作原理吧:

 

1.客戶端發出一個指向servlet容器的請求;

2.請求會經過StrutsPrepareAndExecuteFilter過濾器;

3.過濾器和請求將訪問struts2的底層框架結構。在web容器啟動時,struts2框架會自動加載配置文件里相關參數,並轉換成相應的類。

 

如:ConfigurationManager、ActionMapper和ObjectFactory。ConfigurationManager 存有配置文件的一些基本信息,ActionMapper存有action的配置信息。在請求過程中所有的對象(Action,Results,Interceptors,等)都是通過ObjectFactory來創建的。過濾器會通過詢問ActionMapper類來查找請求中需要用到的Action。

 

4.如果找到需要調用的Action,過濾器會把請求的處理交給ActionProxy。ActionProxy為Action的代理對象。ActionProxy通過ConfigurationManager詢問框架的配置文件,找到需要調用的Action類。

 

5.ActionProxy創建一個ActionInvocation的實例。ActionInvocation在ActionProxy層之下,它表示了Action的執行狀態,或者說它控制的Action的執行步驟。它持有Action實例和所有的Interceptor。

 

6.ActionInvocation實例使用命名模式來調用,1. ActionInvocation初始化時,根據配置,加載Action相關的所有Interceptor。2. 通過ActionInvocation.invoke方法調用Action實現時,執行Interceptor。在調用Action的過程前后,涉及到相關攔截器(intercepetor)的調用。

 

7. 一旦Action執行完畢,ActionInvocation負責根據struts.xml中的配置找到對應的返回結果。

 

這些類不要太在意,大概知道干什么就可以了,如果想學精通就要查看底層類是使怎么寫的,大多數框架都有技術文檔。

 

通俗的來講:

1、發送http請求

2、Web服務器(tomcat/weblogic...)

3、執行struts核心過濾器StrutsPrepareAndExecuteFilter

4、加載struts配置文件中配置信息,找到對應的Action類並實例化

5、執行各類攔截器和Action中對應方法

6、配置文件中找到返回結果

7、轉發到具體頁面或其它操作

 

大概是這樣

struts還有一個攔截器的概念:Interceptor 表示攔截器!struts2是通過一個個攔截器來完成通用的功能的。

struts2大概介紹到這里,還有其他知識自己學習吧!

Hibernate框架:

首先我們要明白一個東西那就是ORM規則:Object Relation  Mapping  對象關系映射!

 

 

 

所有簡單來說Hibernate就是一個操作數據庫的東西一般有兩個配置文件,一個是關系對象配置文件,一個是主配置文件。例如:User.java

 

 

 

還有一個主配置文件hibernate.cfg.xml(核心配置文件)

 

 

 

寫一個類測試一些

 

 

hibernate執行流程圖如下:

 

 

原理: 1.讀取並解析配置文件 2.讀取並解析映射信息,創建SessionFactory 3.打開Session 4.創建事務Transation 5.持久化操作 6.提交事務 7.關閉Session 8.關閉SesstionFactory

 

Spring框架:

 

spring框架有6大功能模塊,需要用到那個模塊就引用哪個模塊,但核心模塊必須引用

分別是:Spring Core   核心功能,SpringAop    面向切面編程,SpringWeb    對web開發的支持(spring對struts框架的支持!),SpringJdbc     對jdbc的支持,SpringORM     對ORM的支持(spring對hibenrate的支持),SpringJEE     對javaee其他模塊的支持!(EJB)

 

 

可以看出Spring 主要是創建創建,與其他框架整合,表示可以幫其他框架創建對象!

舉個簡單例子如何創建對象

 

 

 

就簡單介紹一下

Spring核心, 就是指IOC容器!

IOC容器,

主要是創建對象!

Inversion  of  control  控制反轉!  所以,也叫控制反轉容器!

控制反轉,

對象的創建交給外部容器完成,程序需要對象,只需要從容器獲取即可!

IOC容器 = applicationContex.xml  + ApplicationContext類

創建對象之后,給對象屬性賦值, 這個叫“依賴注入”!

spring的xml文件大概這樣子

 

 

 

里面的一些配置就需要自己查看相應的文檔

 

這些框架都有自己的配置文件,都有相應的技術文檔,所有不要覺得框架很難。總的來說學習這些框架式很容易入手的,那就是多練習,然后在上網(大多數在論壇上都有項目)找幾個項目做。一個人的學習經驗來說,都是模仿別人的項目,自己敲多幾次就會了,好好學習吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM