《java web整合開發實踐 基於struts2 + hibernate + Spring》


https://www.cnblogs.com/tuhooo/p/6491906.html

 

一、java web基礎

核心標准  URL    HTTP    HTML

HTTP  請求:請求行  請求報頭  請求體

           響應:狀態行  響應報頭  響應正文

tomcat輕量級的web應用服務器

 

關閉被占用端口的進程的方法:http://blog.csdn.net/u011182412/article/details/53893587

①netstat   -ano|findstr  8080  ②taskkill  /pid  查出來的/f

mysql下載地址:https://dev.mysql.com/downloads/file/?id=474803 

mysql安裝教程:https://www.cnblogs.com/chengxs/p/5986095.html

 

myeclipse 下載地址及安裝教程:http://www.cnblogs.com/hoobey/p/5512924.html

 

JDBC(Java Database connectivity)是java程序與數據庫系統通信的標准api

 使用JDBC訪問MySql數據庫的代碼:

 

JSP指的是Java Server Pages   java服務器動態網頁

 bean代表實體類用來與數據庫表或者其他進行映射

二、表現層  Struts技術

MVC    Model模型  View視圖  Controller控制器

模型層代表的是企業數據和其對應的業務邏輯,它控制着對數據的處理和更新。

視圖層是模型層中的各個模型的具體表現形式。

控制層在MVC結構中連接模型層和視圖層,起到紐帶作用。將視圖層的交互信息進行過濾等處理后,再傳送到模型層相應的業務邏輯處理程序進行處理。

 

struts2的體系結構

Struts2的工作流程:

(1)瀏覽器發出請求

(2)控制層中的核心控制器FilterDispatcher根據請求調用相應的Action

(3)Struts2的攔截器鏈(即一系列攔截器)自動對請求調用一些通用的控制邏輯。

(4)回調Aciton中的execute()方法,並在方法內調用業務邏輯組件,即javabean處理請求。

(5)execute()方法返回后產生一個輸出。

(6)該輸出經過攔截器鏈自動處理

(7)控制層最后將數據返還並更新視圖層。

1、FilterDispatcher控制層:

根據用戶提交的URL和struts.xml中的配置,選擇合適的action,讓這個action處理用戶請求。

2、Action模型層:

負責把用戶請求的參數組裝成合適的數據模型,並調用響應的業務邏輯進行真正的功能處理,然后產生下一個視圖展示所需要的數據。最后得到下一個視圖所需要的信息,並傳遞給控制層中的攔截器鏈。

3、Result視圖層

主要用來與用戶進行交互,它將從控制層得到的數據通過適合的展示方式展現給用戶,讓用戶與之交互更加簡潔簡單。

 

工程配置文件web.xml    配置了struts2的核心filter以及進入web頁面后的首頁index.jsp

配置文件struts.properties  配置了web頁面的默認編碼集

控制器文件struts.xml 配置了action和對應請求之間的對應關系

前段頁面index.jsp   success.jsp       視圖層,表示信息

后台struts處理程序TestAction.java

 

標簽:

 

 action業務邏輯處理對象

 

三、持久層Hibernate

持久化指的是將內存中的數據保存到磁盤等存儲設備中。文本文件、xml、關系數據庫。

ORM  object relation map 對象關系映射

Hibernate下載地址:https://sourceforge.net/projects/hibernate/files/hibernate-orm/5.2.15.Final/hibernate-release-5.2.15.Final.zip/download

                                  https://sourceforge.net/projects/hibernate/files/hibernate3/3.6.10.Final/hibernate-distribution-3.6.10.Final-dist.zip/download

tools在esclipsse中的配置方法:http://blog.sina.com.cn/s/blog_14ecbc3ed0102wszm.html

使用Hibernate開發項目的步驟:

(1)准備開發環境,創建Hibernate項目

(2)在數據庫中創建數據表

(3)創建持久化類

(4)設計映射文件,使用Hibernate映射文件將POJO對象映射到數據庫

(5)創建Hibernate的配置文件Hibernate.cfg.xml

(6)編寫輔助工具類HibernateUtils類,用來實現對Hibernate的初始化並提供獲得Session的方法

(7)編寫DAO層類       DAO指數據庫訪問對象

(8)編寫Service層類

(9)編寫測試類

 

Configure類主要用來讀取配置文件,啟動Hibernate,並負責管理Hibernate的配置信息。一個程序只創建一個configure對象。

SessionFactory主要用來生成session對象。初始化Hibernate

Session對象的生命周期以Transaction對象的事務開始和結束為邊界,提供了一系列與持久化相關的操作。持久化管理器

Transaction主要用於管理事務,是Hibernate的數據庫事務接口,它對底層的事務接口進行了封裝

Query是Hibernate的查詢接口,用於向數據庫中查詢對象,並控制執行查詢的過程。

 

四、業務層框架Spring技術

spring框架基於java平台,為應用程序的開發提供了全面的基礎設施支持。

 

下載地址:http://repo.spring.io/release/org/springframework/spring/

 

五、SSH框架整合開發

表示層:struts框架

業務層:struts的actions類+業務邏輯實現類

中文編碼 UTF-8,引入控制編碼的過濾器com.util.SetCharacterEncodingFilter ,在web.xml中

 

在spring中集成hibernate實際上就是將hibernate中用到的數據源DataSource、SessionFactory實例以及事務管理器都交給spring容器管理,由spring向發開人員提供統一的模板化操作。

datasource主要配置數據庫的連接屬性,sessionFactory主要管理Hibernate的配置、

 

Spring集成Struts主要有兩種上下文裝載方式和3種整合方法。

上下文裝載:

       在web.xml文件中裝載spring上下文:①使用ServletContextListener配置         監聽器類

                                                                ②使用load-on-startup Servlet配置         Servlet

Spring集成struts2的目的是將struts2中的action的實例化工作交由spring容器統一管理,同時使得struts2中的action實例能夠訪問spring提供的業務邏輯組件資源。而spring容器自身所具有的依賴注入的優勢也可以充分發揮。

spring集成struts2的步驟:①將spring3框架所依賴的jar包復制到WEB-INF的lib文件夾下;

                                          ②將以下struts2類包添加到類路徑下。

                                          ③編寫struts2配置文件struts.xml,將objectfactory設置為spring

                                          ④配置web.xml文件,讓web應用啟動時能自動加載spring容器

實例步驟:(1)新建項目

                 (2)新建包,定義類,是一個action

                 (3)在spring的配置文件applicationContext.xml中配置struts2的action實例,以便                             使用spring容器提供給我們的各種功能。

                 (4)在struts.xml中配置所有struts2的action,注class屬性不再使用類全名。而使用                                bean的實例名。

                 (5)編寫web.xml文件,使用contextloaderlistener初始化spring容器

                 (6)編寫success.jsp

 

IoC(Inversion of Control) 即控制反轉,它使程序組件或類之間盡量形成一種松耦合的結構,開發者在使用類的實例之前,需要先創建對象的實例。但是ioc將創建實例的任務交給ioc容器,這樣開發應用代碼時只需要直接使用類的實例。

bean就是由spring容器初始化、裝配及被管理的對象。

 

六、SSH框架實例一  用戶管理系統

1、四個功能:用戶的添加、用戶的刪除、用戶信息的更新以及查詢指定用戶信息。

2、系統結構:

    表現層:由多個JSP頁面組成

    MVC層:使用Struts2框架技術

   業務邏輯層:使用業務邏輯組件構成

    DAO層:由DAO組件組成

    Hibernate持久層:使用Hibernate3框架

    數據庫層:使用MySQL數據庫來存儲系統數據

3、搭建過程:

 

數據庫層,mysqldb庫中的USER表

Hibernate持久層設計包含:

       定義系統中用到的持久化類(java類,數據表的字段,setget方法)    

       編寫各個持久化類對應的映射文件(XXX.hbm.xml)  java類名映射table

DAO層設計:主要包含sessionFactory的配置、DAO接口的創建以及DAO接口的實現類。

       spring管理SessionFactory            創建DAO接口           創建DAO實現類

④業務邏輯層設計:

       創建業務邏輯組件接口                       創建業務邏輯組件的實現類

       對DAO層類增加一層封裝

⑤表現層開發:

       各個顯示頁面的開發           業務控制器action的開發

⑤完成用戶登錄設計

整合struts2和spring    創建用戶登錄action  用戶登錄頁面    配置控制器    

⑥使用spring技術集成struts和hibernate

spring集成hibernate,通過applicationContext.xml文件完成,在該文件中定義數據源,並完成對SessionFactory的配置和管理,和bean的配置,依賴注入

整合struts2和spring,通過web.xml文件完成,配置篩選器、監聽器。

 

七、基於struts、spring、hibernate的輕量級架構

(1)表現層:有struts實現,主要完成如下任務:管理用戶請求和響應;提供一個控制器代理以調用業務邏輯和各層的處理;處理從其他層拋出給strutsaction的異常;為顯示提供數據模型。

(2)持久層:由hibernate實現。它通過一個面向對象的查詢語言或正則表達式的API來檢索對象的相關信息。還負責存儲、更新、刪除數據庫記錄。同時hibernate支持大部分主流數據庫,且支持父表/子表關系、事務處理、繼承和多態。

(3)業務層:由spring實現,利用延時注入思想組裝代碼,提高了系統擴展性和靈活性,實現插件式編程。利用AOP思想,集中處理業務邏輯,減少重復代碼,構建了較理想的解決方案。利用其對hibernate的會話工廠、事務管理的封裝,可以更簡潔地應用hibernate。

三層的整合:

struts和spring:在struts中action的創建交給spring,但是要注意action是多實例的;

hibernate和spring:hibernate的核心類是sessionFactory,這里要把sessionFactory的創建交給spring管理;hibernate的核心文件中進行了數據庫信息的配置,這里也要交給spring處理;為dao對象配置持久層的spring提供的template。

 


免責聲明!

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



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