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。
