導航:首頁 > 源碼編譯 > extssh框架源碼

extssh框架源碼

發布時間:2023-05-30 09:17:26

java + ssh+ext是什麼意思

java是指說明項目是用java編程語亮羨言開發的
ssh是指常用的三大框架struts+spring+hibernate的建慧友成,說明開發這個項目使用這套框架敬碧拍來做的
Ext,是一個用javascript寫的,主要用於創建前端用戶界面,是一個與後台技術無關的前端ajax框架。因此,可以把Ext用在.Net、Java、Php等各種開發語言開發的應用中。

② SSH 協議原理、組成、認證方式和過程

SSH 是(Secure SHell protocol) 的簡寫,安全外殼協議(SSH)是一種在不安全網路上提供安全遠程登錄及其它安全網路服務的協議。
OpenSSH 是SSH (Secure SHell)協議的免費開源實現。SSH協議族可以用來進行遠程式控制制,或在計算機之間傳送文件。而實現此功能的傳統方式,如telnet(終端模擬協議)、 rcp ftp、 rlogin、rsh都是極為不安全的,並且會使用明文傳送密碼。OpenSSH提供了服務端後台程序和客戶端工具,用來加密遠程式控制制項和文件傳輸過程的中的數據,並由此來代替原來的類似服務。
在過去我們使用的rsh和telnet,因為包括登錄時的ID和密碼數據沒有加密就傳到網路上,存在安全上的問題。即使在內部網上,也有在網際網路上的竊取和篡改等危險性。SSH將包括密碼在內的所有數據都已進行了加密處理,可以進行更安全的遠程操作。在SSH中,由於協議標準的不同而存在SSH1和SSH2兩個不同的版本。SSH2是為了迴避SSH1所使用的加密演算法的許可證問題而開發的(現在這一許可證問題已經不存在了)。TLES 8中作為安裝SSH協議的應用程序採用了開放源碼的OpenSSH。OpenSSH與SSH1和SSH2的任何一個協議都能對應,但默認使用SSH2。

SSH 主要有三部分組成:

同時SSH協議框架中還為許多高層的網路安全應用協議提供擴展的支持。它們之間的層次關系可以用如下圖來表示:

對於SSH這樣以提供安全通訊為目標的協議,其中必不可少的就是一套完備的密鑰機制。由於SSH協議是面向互聯網網路中主機之間的互訪與信息交換,所以主機密鑰成為基本的密鑰機制。也就是說,SSH協議要求每一個使用本協議的主機都必須至少有一個自己的主機密鑰對,服務方通過對客戶方主機密鑰的認證之後,才能允許其連接請求。一個主機可以使用多個密鑰,針對不同的密鑰演算法而擁有不同的密鑰,但是至少有一種是必備的,即通過 DSS演算法產生的密鑰。關於DSS演算法,請參考 FIPS-186 文檔.SSH協議關於主機密鑰認證的管理方案有兩種,如下圖所示:

每一個主機都必須有自己的主機密鑰,密鑰可以有多對,每一對主機密鑰對包括公開密鑰和私有密鑰。在實際應用過程中怎樣使用這些密鑰,並依賴它們來實現安全特性呢?如上圖所示,SSH協議框架中提出了兩種方案。
在第一種方案中,主機將自己的公用密鑰分發給相關的客戶機,客戶機在訪問主機時則使用該主機的公開密鑰來加密數據,主機則使用自己的私有密鑰來解密數據,從而實現主機密鑰認證,確定客戶機的可靠身份。在圖2(a)中可以看到,用戶從主機A上發起操作,去訪問,主機B和主機C,此時,A成為客戶機,它必須事先配置主機B和主機C的公開密鑰,在訪問的時候根據主機名來查找相應的公開密鑰。對於被訪問主機(也就是伺服器端)來說則只要保證安全地存儲自己的私有密鑰就可以了。
在第二種方案中,存在一個密鑰認證中心,所有系統中提供服務的主機都將自己的公開密鑰提交給認證中心,而任何作為客戶機的主機則只要保存一份認證中心的公開密鑰就可以了。在這種模式下,客戶機在訪問伺服器主機之前,還必須向密鑰認證中心請求認證,認證之後才能夠正確地連接到目的主機上。
很顯然,第一種方式比較容易實現,但是客戶機關於密鑰的維護卻是個麻煩事,因為每次變更都必須在客戶機上有所體現;第二種方式比較完美地解決管理維護問題,然而這樣的模式對認證中心的要求很高,在互聯網路上要實現這樣的集中認證,單單是權威機構的確定就是個大麻煩,有誰能夠什麼都能說了算呢?但是從長遠的發展來看,在企業應用和商業應用領域,採用中心認證的方案是必要的。
另外,SSH協議框架中還允許對主機密鑰的一個折中處理,那就是首次訪問免認證。首次訪問免認證是指,在某客戶機第一次訪問主機時,主機不檢查主機密鑰,而向該客戶都發放一個公開密鑰的拷貝,這樣在以後的訪問中則必須使用該密鑰,否則會被認為非法而拒絕其訪問。

在整個通訊過程中,為實現 SSH的安全連接,伺服器端與客戶端要經歷如下五個階段:
* 版本號協商階段,SSH目前包括 SSH1和SSH2兩個版本, 雙方通過版本協商確定使用的版本
* 密鑰和演算法協商階段,SSH支持多種加密演算法, 雙方根據本端和對端支持的演算法,協商出最終使用的演算法
* 認證階段,SSH客戶端向伺服器端發起認證請求, 伺服器端對客戶端進行認證
* 會話請求階段, 認證通過後,客戶端向伺服器端發送會話請求
* 交互會話階段 ,會話請求通過後,伺服器端和客戶端進行信息的交互

Q1: SSH的版本和區別。
SSH2避免了RSA的專利問題,並修補了CRC的缺陷。SSH2用數字簽名演算法(DSA)和Diffie-Hellman(DH)演算法代替RSA來完成對稱密鑰的交換,用HMAC來代替CRC。同時SSH2增加了AES和Twofish等對稱加密演算法。
A1: SSH(Secure SHell)到目前為止有兩個不兼容的版本——SSH1和SSH2。SSH1又分為1.3和1.5兩個版本。SSH1採用DES、3DES、 Blowfish和RC4等對稱加密演算法保護數據安全傳輸,而對稱加密演算法的密鑰是通過非對稱加密演算法(RSA)來完成交換的。SSH1使用循環冗餘校驗碼(CRC)來保證數據的完整性,但是後來發現這種方法有缺陷。
更多內容請參考The SSHv1 Protocol & The SSHv2 Protocol

Q2: 什麼是HMAC?
A2: HMAC(Hash Message Authentication Code) ,散列消息鑒別碼,基於密鑰的Hash演算法的認證協議。消息鑒別碼實現鑒別的原理是,用公開函數和密鑰產生一個固定長度的值作為認證標識,用這個標識鑒別消息的完整性。使用一個密鑰生成一個固定大小的小數據塊,即MAC,並將其加入到消息中,然後傳輸。接收方利用與發送方共享的密鑰進行鑒別認證等。

Q3: 什麼是X11 forwarding?
A3: sh的X11 forwarding特性可以使X client和X server安全地通訊。使用X11 forwarding後,從X client到X Server方向的數據先被送至ssh server,ssh server利用和ssh client的安全通道轉發給ssh client,再由ssh client轉發給X server,從X server到X client的數據流同理。這里ssh server和ssh client充當了X client和X server間數據的轉發器,由於ssh server和X client、ssh client和X server一般在同一台機器上,它們之間是一種安全的進程間通訊,而ssh server和ssh client間的通訊也是安全的,所以X client和X server間的通訊就是安全的。

Q4: 什麼是TTY?
A4: 終端是一種字元型設備,它有多種類型,通常使用tty來簡稱各種類型的終端設備。tty是 Teletype的縮寫。Teletype是最早出現的一種終端設備,很象電傳打字機,是由Teletype公司生產的。設備名放在特殊文件目錄/dev/下。

Q5: 簡單描述下SSH運行的過程?

③ 怎樣看一個SSH項目的項目代碼

1.首先空世你得啟動,看登錄流程,再找一個功能點,針對增刪改查實現的技術
2.上面主要針對請求的發送響應、連接資料庫等;然後就是看前台頁面展示如何去後台數據,用到了哪些ext、或是easyUI技術
3.以上2點主斗賀肢要針對拍判有任務了能快速上手;學習項目技術就得看啟動時,配置文件怎麼寫的,xml文件的配置:事物、定時器、連接池、監聽器、webservice介面等
4.最後就是項目業務流程了

④ 如何搭建SSH框架,myeclipse搭建SSH框架詳解

搭建struts應用
2.1 引入需要遲慧棗的jar包
commons-fileupload-1.2.1.jar 文件上傳
commons-logging-1.0.4.jar 日誌包
freemarker-2.3.13.jar Sturts2的所有UI標記
ognl-2.6.11.jar OGNL表達式相關
struts2-core-2.1.6.jar Struts2的核心包
xwork-2.1.2.jar XWork2 庫。Struts2核心包,做為底層存在
2.2 加入配置文件 struts.xml, struts.properties
2.3 將struts加入到web.xml的配置中,將請求交由struts來處理
2.4 編寫Action類,無需繼承任何類和實現任何介面
2.5 在struts.xml中加入對action的配置
搭建spring的框架
2.1 加入jar包
SPRING_HOME/dist/spring.jar
SPRING_HOME/lib/log4j/log4j.jar
SPRING_HOME/jakarta-commons/commons-logging.jar
2.2 加入配置文件
SPRING_HOME/samples/jpetstore/war/WEB-INF/log4j.properties
SPRING_HOME/samples/jpetstore/war/WEB-INF/applicationContext.xml
2.3 將寫好的類加入到spring的管理(配置到xml中)
2.4 通過來載入spring的配置文件生成BeanFactory工廠對象,通過工廠對象來創建所需要的bean
hibernate框架搭建
1.1 加入jar包
HIBERNATE_HOME/hibernate3.jar -- hibernate核心包
HIBERNATE_HOME/lib/required/*.jar
(在hibernate官網下載的包中卻少一個必須包slf4j-nop-1.5.2.jar,需要自己在網上下載)
資料庫的jar包
1.2 hibernate.cfg.xml配置文件
HIBERNATE_HOME/project/etc/hibernate.cfg.xml
對應屬性在HIBERNATE_HOME/project/etc/hibernate.properties中尋找
hibernate.connection.url --- 訪問資料庫的url地址
hibernate.connection.username --- 訪問資料庫的用戶名
hibernate.connection.password --- 訪問資料庫的密碼
hibernate.connection.driver_calss --- 訪碼拆問資料庫所需的驅動包
hibernate.dialect --- 訪問資料庫的方言
1.3 Xxxx.hbm.xml 映射文件碧型
HIBERNATE_HOME/project/tutorials/eg/src/main/java/org/hibernate/auction/Xxxx.hbm.xml
將該文件以需要映射的類的類名.hbm.xml命名放在跟映射類同包中

⑤ 跪解:ssh框架的基本原理

Struts工作原理

MVC即Model-View-Controller的縮寫,是一種常用的設計模式。MVC 減弱了業務邏輯介面和數據接銷逗鋒口之間的耦合,以及讓視圖層更富於變化。MVC的工作原理,如下圖1所示:
Struts 是MVC的一種實現,它將 Servlet和 JSP 標記(屬於 J2EE 規范)用作實現的一部分。Struts繼承了MVC的各項特性,並根據J2EE的特點,做了相應的變化與擴展。Struts的工作原理,

視圖:主要由JSP生成頁面完成視圖,Struts提供豐富的JSP 標簽庫: Html,Bean,Logic,Template等,這有利於分開表現邏輯和程序邏輯。

控制:在Struts中,承擔MVC中Controller角色的是一個Servlet,叫ActionServlet。ActionServlet是一個通用的控制組件。這個控制組件提供了處理所有發送到Struts的HTTP請求的入口點。它截取和分發這些請求到相應的動作類(這些動作類都是Action類的子類)。另外控制組件也負責用相應的請求參數填充 Action From(通常稱之為FromBean),並傳給動作類(通常稱之為ActionBean)。動作類實現核心商業邏輯,它可以訪問java bean 或調用EJB。最後動作類把控制權傳給後續的JSP 文件,後者生成視圖。所有這些控制邏輯利用Struts-config.xml文件來配置。

模型:模型以一個或多個java bean的形式存在。這些bean分為三類:Action Form、Action、JavaBean or EJB。Action Form通常稱之為FormBean,封裝了來自虧晌於Client的用戶請求信息,如表單信息。Action通常稱之為ActionBean,獲取從ActionSevlet傳來的FormBean,取出FormBean中的相關信息,並做出相關的處理,一般是調用Java Bean或EJB等。

流程:在Struts中,用戶的請求一般以*.do作為請求服務名,所有的*.do請求均被指向ActionSevlet,ActionSevlet根據Struts-config.xml中的配置信息,將用戶請求封裝成一個指定名稱的FormBean,並將此FormBean傳至指定名稱的ActionBean,由ActionBean完成相應的業務操作,如文件操作,資料庫操作等。每一個*.do均有對應的FormBean名稱和ActionBean名稱,這些在Struts-config.xml中配置。

核心:Struts的核心是ActionSevlet,ActionSevlet的核心是Struts-config.xml。
Struts優缺點

優點:
1.開源軟體,能更深入的了解其內部實現機制。
2.Taglib標記庫,靈活動用,能大大提高開發效率。

3.頁面導航使系統的脈絡更加清晰。通過一個配置文件,即可把握整個系統各部分之間的聯系,這對於後期的維護有著莫大的好處。尤其是當另一批開發者接手這個項目時,這種優勢體現得更加明顯。

4. 提供Exception處理機制 .
5. 資料庫鏈接池管理

6. Struts 的Action必需是thread-safe方式,它僅僅允許一個實例去處理所有的請求。所以action用到的所有的資源都必需統一同步,這個就引起了線程安全的問題。
缺點:
Taglib是Struts的一大優勢,但對於初學者而言,卻需要一個持續學習的過程,甚至還會打亂你網頁編寫的習慣,但是,當你習慣了它時,你會覺得它真的很棒。
Struts將MVC的Controller一分為三,在獲得結構更加清晰的同時,也增加了系統的復雜度。
ActionForms使用不便、無法進行單元測試(StrutsTestCase只能用於集成)

Spring的原理和優點

Spring真正的精華是它的loc模式實現的BeanFactory和AOP,它自己在這個基礎上延伸的功能有些畫蛇添足。

Spring
它是一個開源的項目,而且目前非常活躍;它基於IoC(Inversion of Control,反向控制)和AOP的構架多層j2ee系統的框架,但它不強迫你必須在每一層 中指知必須使用Spring,因為它模塊化的很好,允許你根據自己的需要選擇使用它的某一個模塊;它實現了很優雅的MVC,對不同的數據訪問技術提供了統一的 介面,採用IoC使得可以很容易的實現bean的裝配,提供了簡潔的AOP並據此實現Transcation Managment,等等
優點

a. Spring能有效地組織你的中間層對象,不管你是否選擇使用了EJB。如果你僅僅使用了Struts或其他為J2EE的 API特製的framework,Spring致力於解決剩下的問題。
b. Spring能消除在許多工程中常見的對Singleton的過多使用。根據我的經驗,這是一個很大的問題,它降低了系統的可測試性和面向對象的程度。
c. 通過一種在不同應用程序和項目間一致的方法來處理配置文件,Spring能消除各種各樣自定義格式的屬性文件的需要。曾經對某個類要尋找的是哪個魔法般的屬性項或系統屬性感到不解,為此不得不去讀Javadoc甚至源編碼?有了Spring,你僅僅需要看看類的JavaBean屬性。Inversion of Control的使用(在下面討論)幫助完成了這種簡化。
d. 通過把對介面編程而不是對類編程的代價幾乎減少到沒有,Spring能夠促進養成好的編程習慣。
e. Spring被設計為讓使用它創建的應用盡可能少的依賴於他的APIs。在Spring應用中的大多數業務對象沒有依賴於Spring。
f. 使用Spring構建的應用程序易於單元測試。
g. Spring能使EJB的使用成為一個實現選擇,而不是應用架構的必然選擇。你能選擇用POJOs或local EJBs來實現業務介面,卻不會影響調用代碼。
h. Spring幫助你解決許多問題而無需使用EJB。Spring能提供一種EJB的替換物,它們適用於許多web應用。例如,Spring能使用AOP提供聲明性事務管理而不通過EJB容器,如果你僅僅需要與單個資料庫打交道,甚至不需要一個JTA實現。
i. Spring為數據存取提供了一個一致的框架,不論是使用的是JDBC還是O/R mapping產品(如Hibernate)。
Spring確實使你能通過最簡單可行的解決辦法來解決你的問題。而這是有有很大價值的。
缺點:使用人數不多、jsp中要寫很多代碼、控制器過於靈活,缺少一個公用控制器

Hibernate的原理和優點。

Hibernate使用了J2EE架構中的如下技術:JDBC、JTA、JNDI。其中JDBC是一個支持關系資料庫操作的一個基礎層;它與JNDI和JTA一起結合,使得Hibernate可以方便地集成到J2EE應用伺服器中去。 在這里,我們不會詳細地去討論Hibernate API介面中的所有方法,我們只簡要講一下每個主要介面的功能,如果你想了解得更多的話,你可以在Hibernate的源碼包中的net.sf.hibernate子包中去查看這些介面的源代碼。下面我們依次講一下所有的主要介面: 核心介面 以下5個核心介面幾乎在任何實際開發中都會用到。通過這些介面,你不僅可以存儲和獲得持久對象,並且能夠進行事務控制。

Session介面 Session介面對於Hibernate 開發人員來說是一個最重要的介面。然而在Hibernate中,實例化的Session是一個輕量級的類,創建和銷毀它都不會佔用很多資源。這在實際項目中確實很重要,因為在客戶程序中,可能會不斷地創建以及銷毀Session對象,如果Session的開銷太大,會給系統帶來不良影響。

SessionFactory 介面 這里用到了一個設計模式――工廠模式,用戶程序從工廠類SessionFactory中取得Session的實例。 令你感到奇怪的是SessionFactory並不是輕量級的!實際上它的設計者的意圖是讓它能在整個應用中共享。典型地來說,一個項目通常只需要一個SessionFactory就夠了,但是當你的項目要操作多個資料庫時,那你必須為每個資料庫指定一個SessionFactory。 SessionFactory在Hibernate中實際起到了一個緩沖區的作用,它緩沖了Hibernate自動生成的SQL語句和一些其它的映射數據,還緩沖了一些將來有可能重復利用的數據。

Configuration 介面 Configuration介面的作用是對Hibernate進行配置,以及對它進行啟動。在Hibernate的啟動過程中,Configuration類的實例首先定位映射文檔的位置,讀取這些配置,然後創建一個SessionFactory對象。

Query和Criteria介面 Query介面讓你方便地對資料庫及持久對象進行查詢,它可以有兩種表達方式:HQL語言或本地資料庫的SQL語句。Query經常被用來綁定查詢參數、限制查詢記錄數量,並最終執行查詢操作。 Criteria介面與Query介面非常類似,它允許你創建並執行面向對象的標准化查詢。 值得注意的是Query介面也是輕量級的,它不能在Session之外使用。

Callback 介面 當一些有用的事件發生時――例如持久對象的載入、存儲、刪除時,Callback介面會通知Hibernate去接收一個通知消息。一般而言,Callback介面在用戶程序中並不是必須的,但你要在你的項目中創建審計日誌時,你可能會用到它。以下是它的策略介面:

· 主鍵的生成 (IdentifierGenerator 介面)

· 本地SQL語言支持 (Dialect 抽象類)

· 緩沖機制 (Cache 和CacheProvider 介面)

· JDBC 連接管理 (ConnectionProvider介面)

.事務管理 (TransactionFactory, Transaction, 和 TransactionManagerLookup 介面)

· ORM 策略 (ClassPersister 介面)

· 屬性訪問策略 (PropertyAccessor 介面)

· 代理對象的創建 (ProxyFactory介面)

Hibernate為以上所列的機制分別創建了一個預設的實現,因此如果你只是要增強它的某個策略的功能的話,只需簡單地繼承這個類就可以了,沒有必要從頭開始寫代碼。

Hibernate運行在兩種環境下:可管理環境和不可管理環境

· 可管理環境――這種環境可管理如下資源:池資源管理,諸如資料庫連接池和,還有事務管理、安全定義。一些典型的J2EE伺服器(JBoss、Weblogic、WebSphere)已經實現了這些。

· 不可管理環境――只是提供了一些基本的功能,諸如像Jetty或Tomcat這樣的servlet容器環境。

優點:

Hibernate是JDBC的輕量級的對象封裝,它是一個獨立的對象持久層框架。Hibernate可以用在任何JDBC可以使用的場合,例如Java應用程序的資料庫訪問代碼,DAO介面的實現類,甚至可以是BMP裡面的訪問資料庫的代碼。

Hibernate是一個和JDBC密切關聯的框架,所以Hibernate的兼容性和JDBC驅動,和資料庫都有一定的關系,但是和使用它的Java程序,和App Server沒有任何關系,也不存在兼容性問題。

Hibernate不能用來直接和Entity Bean做對比,只有放在整個J2EE項目的框架中才能比較。並且即使是放在軟體整體框架中來看,Hibernate也是做為JDBC的替代者出現的,而不是Entity Bean的替代者出現的,

Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱資料庫。

Hibernate可以應用在任何使用JDBC的場合。

Hibernate 使用 Java 反射機制 而不是位元組碼增強程序來實現透明性。

Hibernate 的性能非常好,因為它是個輕量級框架。 映射的靈活性很出色。

它支持各種關系資料庫,從一對一到多對多的各種復雜關系。
缺點:它限制您所使用的對象模型。(例如,一個持久性類不能映射到多個表)。

讓我再列一次我已經列n次的框架結構:

傳統的架構:
1) Session Bean <-> Entity Bean <-> DB

為了解決性能障礙的替代架構:
2) Session Bean <-> DAO <-> JDBC <-> DB

使用Hibernate來提高上面架構的開發效率的架構:
3) Session Bean <-> DAO <-> Hibernate <-> DB

就上面3個架構來分析:
1、內存消耗:採用JDBC的架構2無疑是最省內存的,Hibernate的架構次之,EB的架構1最差。
2、運行效率:如果JDBC的代碼寫的非常優化,那麼JDBC架構運行效率最高,但是實際項目中,這一點幾乎做不到,這需要程序員非常精通JDBC,運用Batch語句,調整PreapredStatement的Batch Size和Fetch Size等參數,以及在必要的情況下採用結果集cache等等。而一般情況下程序員是做不到這一點的。因此Hibernate架構表現出最快的運行效率。EB的架構效率會差的很遠。
3、開發效率:在有JBuilder的支持下以及簡單的項目,EB架構開發效率最高,JDBC次之,Hibernate最差。但是在大的項目,特別是持久層關系映射很復雜的情況下,Hibernate效率高的驚人,JDBC次之,而EB架構很可能會失敗。

⑥ 用SSH框架寫一個簡單的網站登陸系統。

我把代碼P一下,但是不是按你的關鍵字,略加修改一下就行:
這個是登錄的,注冊的棗仔虧就多寫凳神一個action就行,......其實就是添加用戶,不過得先檢驗一下是否已經存在這個用戶!這里MyHibernateDAO是的自己的一個分頁extends自HibernateDAOSupport
表:
create table userinfo(userinfoID int identity(1,1) not null ,
username varchar(10) not null,
password varchar(20) not null,
realname varchar(10)not null,
tel varchar(20),
role varchar(10)not null,
userinfo varchar(5) not null,
PRIMARY KEY(userinfoID ),
);



package com.last..impl;

import java.util.List;

import com.last..MyHibernateDaoSupport;
import com.last..UserinfoDAO;
import com.last.po.Userinfo;

public class UserinfoDAOImpl extends MyHibernateDaoSupport implements
UserinfoDAO {

@Override
public void save(Userinfo userinfo) throws Exception {
this.getHibernateTemplate().save(userinfo);
}

@Override
public Userinfo findById(Integer userinfoID) throws Exception {
return this.getHibernateTemplate().get(Userinfo.class, userinfoID);
}

@SuppressWarnings("unchecked")
@Override
public Userinfo findByProperty(String propertyName, Object value)
throws Exception {
String hql="from Userinfo as u where u."+propertyName+"=?";
List<Userinfo> userinfo =this.getHibernateTemplate().find(hql, value);
if(userinfo != null && userinfo.size()==1)
{
return userinfo.get(0);
}
return null;
}

@Override
public List<戚叢Userinfo> findByPage(Userinfo userinfo, int pageNo)
throws Exception {

return null;
}

@Override
public void update(Userinfo userinfo) throws Exception {
this.getHibernateTemplate().update(userinfo);
}

@Override
public void delete(Userinfo userinfo) throws Exception {
this.getHibernateTemplate().delete(userinfo);
}

@SuppressWarnings("unchecked")
@Override
public List<Userinfo> findAll() throws Exception {
return this.getHibernateTemplate().find("from Userinfo");
}

}

service:

package com.last.service.impl;

import java.util.List;

import com.last..UserinfoDAO;
import com.last.po.Userinfo;
import com.last.service.UserinfoService;

public class UserinfoServiceImpl implements UserinfoService {

private UserinfoDAO userinfoDAO;

public UserinfoDAO getUserinfoDAO() {
return userinfoDAO;
}

public void setUserinfoDAO(UserinfoDAO userinfoDAO) {
this.userinfoDAO = userinfoDAO;
}

@Override
public void saveUserinfo(Userinfo userinfo) throws Exception {
this.userinfoDAO.save(userinfo);
}

@Override
public Userinfo findUserinfoByProperty(String propertyName, Object value)
throws Exception {
return this.userinfoDAO.findByProperty(propertyName, value);
}

@Override
public List<Userinfo> findAllUserinfo() throws Exception {
return this.userinfoDAO.findAll();
}

@Override
public void updateUserinfo(Userinfo userinfo) throws Exception {
this.userinfoDAO.update(userinfo);
}

@Override
public void deleteUserinfo(Userinfo userinfo) throws Exception {
this.userinfoDAO.delete(userinfo);
}

@Override
public boolean login(String username, String password) throws Exception {
System.out.println("進入到service");
System.out.println(username);
System.out.println(password);
if(username==null||"".equals(username))
{
return false;
}else{
Userinfo userinfo = this.userinfoDAO.findByProperty("username", username);
if(!password.equals(userinfo.getPassword()))
{
return false;
}
}
return true;
}

}

action:

package com.last.action;

import java.util.Map;

import com.last.po.Userinfo;
import com.last.service.UserinfoService;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {

/**
*
*/
private static final long serialVersionUID = 1L;
private Userinfo userinfo;
public Userinfo getUserinfo() {
return userinfo;
}
public void setUserinfo(Userinfo userinfo) {
this.userinfo = userinfo;
}

private UserinfoService userinfoService;
public UserinfoService getUserinfoService() {
return userinfoService;
}
public void setUserinfoService(UserinfoService userinfoService) {
this.userinfoService = userinfoService;
}

@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public String execute() throws Exception {

String username = this.userinfo.getUsername().trim();
String password = this.userinfo.getPassword().trim();

System.out.println("進入到execute");
if(this.userinfoService.login(username, password))
{
Map session = ActionContext.getContext().getSession();
session.clear();
Userinfo userinfo = this.userinfoService.findUserinfoByProperty("username", username);
session.put("userinfo", userinfo);
return SUCCESS;
}
addActionError("用戶錯誤或者密碼錯誤!");
return INPUT;
}
}

⑦ 求一個完整基於SSH2框架,且已實現基本的增刪改查項目源代碼 (純學習)

http://hi..com/wzqiajng/item/d89a0b9b22c767d11b49df16
這個是SSH2框架整合(Struts2.1.6+hibernate3.3.2+spring2.5.6)的一個簡單教程 裡面有
增刪改查的基本功能的

⑧ ssh三大框架簡介

SSH 為 struts+spring+hibernate的一個集成框架,是目前較流行的一種Web應用程序開源框架。
Struts2簡介:
Struts 2是Struts的下一代產品,是在 struts 1和WebWork的技術基礎上進行了合並的全新斗蠢的Struts 2框架。其全新的Struts 2的體系結構與Struts 1的體系結構差別巨大。Struts 2以WebWork為核心,採用攔截器的機制來處理用戶的請求,這樣的設計也使得業務邏輯控制器能夠與ServletAPI完全脫離開,所以Struts 2可以理解為WebWork的更新產品。雖然穗察從Struts 1到Struts 2有著太大的變化,但是相對於WebWork,Struts 2的變化很小。
Spring簡介:
Spring是一個開源框架,Spring是於2003 年興起空族陪的一個輕量級的Java 開發框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中闡述的部分理念和原型衍生而來。它是為了解決企業應用開發的復雜性而創建的。框架的主要優勢之一就是其分層架構,分層架構允許使用者選擇使用哪一個組件,同時為 J2EE 應用程序開發提供集成的框架。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限於伺服器端的開發。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。Spring的核心是控制反轉(IoC)和面向切面(AOP)。簡單來說,Spring是一個分層的JavaSE/EEfull-stack(一站式) 輕量級開源框架。
Hibernate簡介:
Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來
操縱資料庫。
Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命
意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。

⑨ ssh框架的框架結構

Struts對Model,View和Controller都提供了對應的組件。
ActionServlet,這個類是Struts1的核心控制器,負責攔截來自用戶的請求。
Action,這個類通常由用戶提供,該控制器負責接收來自ActionServlet的請求,並根據該請求調用模型的業務邏輯方法處理請跡茄此求,並將處理結果返回給JSP頁面顯示。
Model部分:
由ActionForm和JavaBean組成,其中ActionForm用於將用戶的請求參數封裝成ActionForm對象,該對象被ActionServlet轉發給Action,Action根據ActionForm裡面的請求參數處理用戶的請求。
JavaBean則封裝了底層的業務邏輯,包括資料庫訪問等。
View部分:
該部分採用JSP(或HTML、PHP……)實現。
Struts提供了豐富的標簽庫,通過標簽庫可以減少腳本的使用,自定義的標簽庫可以實現與Model的有效交互,並增加了現實功能。對應上圖的JSP部分。
Controller組件:
Controller組件有兩個部分組成——系統納冊核心控制器,業務邏輯控制器。
系統核心控制器,對應上邊的ActionServlet。該控制器繼承了HttpServlet類,因此可以配置成標注的Servlet。該控制器負責攔截所有的HTTP請求,然後根據用戶請求決定是否要轉給業務邏輯控制器。
業務邏輯控制器,負責處理用戶請求,本身不具備處理能力,而是調用Model來完成處理。對應Action部分。 Spring是一個開源框架,它由Rod Johnson創建。它是為了解決企業應用開發的復雜性而創建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限於伺服器端的開發。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。
目的:解決企業應用開發的復雜性
功能:使用基本的JavaBean代替EJB,並提供了更多的企業應用功能
范圍:任何Java應用
簡單來說,Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。
輕量——從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個大小隻有1MB多的JAR文件里發布。並且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應用中的對象不依賴於Spring的特定類。
控制反轉——Spring通過一種稱作控制反轉(IoC)的技術促進了松耦合。當應用了IoC,一個對象依賴的其它對象會通過被動的方式傳遞進來,而不是這個對象自己創建或者查找依賴對象。你可以認為IoC與JNDI相反——不是對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它。
面向切面——Spring提供了面向切面編程的豐富支持,允許通過分離應用的業務邏輯與系統級服務(例如審計(auditing)和事務(transaction)管理)進行內聚性的開發。應用對象只實現它們應該做的——完成業務邏輯——僅此而已。它們並不負責(甚至是意識)其它的系統級關注點,例如日誌或事務支持。
容器——Spring包含並管理應用對象的配置和生命周期,在這個意義上它是一種容器,你可以配置你的每個bean如何被創建——基於一個可配置原型(prototype),你的bean可以創建一個單獨的實例或者每次需要時都生成一個新的實例——以及它們是如何相互關聯的。然而,Spring不應該被混同於傳統的重量級的EJB容器,它們經常是龐大與笨重的,難姿迅以使用。
框架——Spring可以將簡單的組件配置、組合成為復雜的應用。在Spring中,應用對象被聲明式地組合,典型地是在一個XML文件里。Spring也提供了很多基礎功能(事務管理、持久化框架集成等等),將應用邏輯的開發留給了你。
所有Spring的這些特徵使你能夠編寫更干凈、更可管理、並且更易於測試的代碼。它們也為Spring中的各種模塊提供了基礎支持。 Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱資料庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。
Hibernate的核心介面一共有5個,分別為:Session、SessionFactory、Transaction、Query和Configuration。這5個核心介面在任何開發中都會用到。通過這些介面,不僅可以對持久化對象進行存取,還能夠進行事務控制。下面對這五個核心介面分別加以介紹。
·Session介面:Session介面負責執行被持久化對象的CRUD操作(CRUD的任務是完成與資料庫的交流,包含了很多常見的SQL語句。)。但需要注意的是Session對象是非線程安全的。同時,Hibernate的session不同於JSP應用中的HttpSession。這里當使用session這個術語時,其實指的是Hibernate中的session,而以後會將HttpSession對象稱為用戶session。
·SessionFactory介面:SessionFactory介面負責初始化Hibernate。它充當數據存儲源的代理,並負責創建Session對象。這里用到了工廠模式。需要注意的是SessionFactory並不是輕量級的,因為一般情況下,一個項目通常只需要一個SessionFactory就夠,當需要操作多個資料庫時,可以為每個資料庫指定一個SessionFactory。
·Configuration介面:Configuration介面負責配置並啟動Hibernate,創建SessionFactory對象。在Hibernate的啟動的過程中,Configuration類的實例首先定位映射文檔位置、讀取配置,然後創建SessionFactory對象。
·Transaction介面:Transaction介面負責事務相關的操作。它是可選的,開發人員也可以設計編寫自己的底層事務處理代碼。
·Query和Criteria介面:Query和Criteria介面負責執行各種資料庫查詢。它可以使用HQL語言或SQL語句兩種表達方式。

⑩ 請問SSH框架里如何向資料庫里批量增加數據 service里怎麼寫 有源代碼最好

service直接調用下面的方法即可;
//裡面的方法
private void testSaveUser()throws Exception
{
//打開Session
Session session = HibernateUtil.currentSession();
//開始事務
Transaction tx = session.beginTransaction();
/銷派/循環100 000次,插入100 000條記錄
for (int i = 0 ; i < 1000000 ; i++ )
{
//創建User實例
User u1 = new User();
u1.setName("xxxxx" + i);
u1.setAge(i);
u1.setNationality("china");
//在Session級別緩存User實例
session.save(u1);
//每當累加器是20的握禪倍數時,將Session中的數據刷入數據虧皮賀庫,並清空Session緩存
if (i % 20 == 0)
{
session.flush();
session.clear();
tx.commit();
tx = session.beginTransaction();
}
}
//提交事務
tx.commit();
//關閉事務
HibernateUtil.closeSession();
}

閱讀全文

與extssh框架源碼相關的資料

熱點內容
php源碼本地安裝 瀏覽:961
伺服器怎麼用不會斷電 瀏覽:301
主從伺服器有什麼用 瀏覽:213
jstlpdf 瀏覽:14
安卓原神在哪個app下載 瀏覽:808
單片機編程技術什麼意思 瀏覽:104
e點課堂源碼 瀏覽:45
免費打擊墊app哪個好 瀏覽:532
程序員必裝的6款軟體 瀏覽:750
基於單片機的遙控器設計 瀏覽:521
安卓如何取消圓圖標 瀏覽:11
收件伺服器怎麼樣 瀏覽:48
建築設計規范pdf 瀏覽:98
如何合並兩個pdf 瀏覽:174
刷機包必須要解壓的單詞 瀏覽:483
android課表實現 瀏覽:864
頭條app在哪裡能看見有什麼活動 瀏覽:511
冰櫃壓縮機電容80歐 瀏覽:609
安卓各個版本圖標什麼樣 瀏覽:152
無錫哪裡有製作手機app 瀏覽:538