當前位置:首頁 » 編程語言 » javassh框架

javassh框架

發布時間: 2022-05-06 07:28:32

java中的SSH是什麼

SSH 為 struts+spring+hibernate的一個集成框架,是目前較流行的一種Web應用程序開源框架。
集成SSH框架的系統從職責上分為四層:表示層、業務邏輯層、數據持久層和域模塊層,以幫助開發人員在短期內搭建結構清晰、可復用性好、維護方便的Web應用程序。其中使用Struts作為系統的整體基礎架構,負責MVC的分離,在Struts框架的模型部分,控制業務跳轉,利用Hibernate框架對持久層提供支持,Spring做管理,管理struts和hibernate。具體做法是:用面向對象的分析方法根據需求提出一些模型,將這些模型實現為基本的Java對象,然後編寫基本的DAO(Data Access Objects)介面,並給出Hibernate的DAO實現,採用Hibernate架構實現的DAO類來實現Java類與資料庫之間的轉換和訪問,最後由Spring做管理,管理struts和hibernate。
具體內容包括:
Struts
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部分。
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是一個開源框架,它由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
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語句兩種表達方式。

❷ java SSH框架 ssh分別充當什麼角色

SSH 為 struts+spring+hibernate的一個集成框架。
其中使用Struts作為系統的整體基礎架構,負責MVC的分離,在Struts框架的模型部分,控制業務跳轉,利用Hibernate框架對持久層提供支持,Spring做管理,管理struts和hibernate。具體做法是:用面向對象的分析方法根據需求提出一些模型,將這些模型實現為基本的Java對象,然後編寫基本的DAO(Data Access
Objects)介面,並給出Hibernate的DAO實現,採用Hibernate架構實現的DAO類來實現Java類與資料庫之間的轉換和訪問,最後由Spring做管理,管理struts和hibernate。

❸ java的SSH框架各層有什麼意義它是mvc的概念嗎還是架構層次上的

SSH(struts+spring+hibernate)是Java EE一種強大的框架技術來的。
按照我個人理解來說吧,這樣你也容易明白:
struts:就是一個核心控制器,經常用來處理和控制數據請求和頁面跳轉等。
spring: 說白了就是Java Bean對象管理池,使用SSH框架時,許多對象需要封裝、創建等操作,總不能每次Action的操作都讓開發者進行一次處理吧,所以通過spring來管理所有bean對象,這樣開發者下次需要使用這個對象時,直接使用就好了,而已spring還能控制對象作用域等等這些。
hibernate:個人理解就是個資料庫連接映射池,你知道就好了。

MVC樓下已經有人告訴你了,說白了SSH就是包含了MVC的設計邏輯在裡面

❹ JAVA SSH框架搭建流程

首先,明確spring,struts,hibernate在環境中各自的作用。

struts:
用來響應用戶的action,對應到相應的類進行處理。需要struts對應的包。

hibernate:
用來把實體類對應到資料庫。提供增刪改查的基本操作實現。需要hibernate對應的包以及mysql的jdbc驅動包。

spring:
管理struts:在xml配置文件中為struts的action進行值注入。
管理hibernate:在xml配置文件中配置hibernate的配置信息(dataSource,sessionFactory),即不需要原來的hibernate的xml文件。為hibernate的操作注入sessionfactory屬性值。
需要提供spring對應的包,除此以外,還需要提供一個整合spring與struts的包:truts2-spring-plugin-2.0.11.1.jar

下面就搭建步驟進行詳細說明:
1、新建一個web project,導入包,需要的包放在文件夾sshlib中。
2、修改web.xml的配置信息,內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee "
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance "
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd ">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<!-- 下面的listener,是spring提供的,它會在創建時自動查找WEB-INF下的applicationContext.xml文件 ,從而創建spring容器-->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<!-- 下面的配置作用是:在MyEclipse中,系統會自動到WEB-INF下尋找 applicationContext.xml文件,而系統
會自動將applicationContext.xml放置到WEB-INF下的classes下,所以會產生找不到applicationContext.xml的錯誤,需要指明applicationContext.xml
的放置位置。這就是下面的信息作用。在Eclipse中也許不需要此配置信息。-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/applicationContext.xml
</param-value>
</context-param>
<!-- 下面的配置信息,用來配置說明使用struts過濾器 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
<!--
下面的配置信息用來說明:程序中運行的action放置在哪個包下面,對於list.action的請求,它會自動在這個包下面尋找ListAction.class的類
如果沒有這句話,那麼所有的action請求只能在struts.xml中進行配置。
-->
<init-param>
<param-name>actionPackages</param-name>
<param-value>
com.action
</param-value>
</init-param>
</filter>
<!--
下面的配置表示對於所有請求都交給struts來處理。
-->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>

3、接下來用來配置struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd ">

<struts>
<!-- 指定Web應用的默認編碼集。該屬性對於處理中文請求參數非常有用,對於獲取中文請求參數值,應該將該屬性值設置為GBK或者GB2312 當設置該參數為GBK時,相當於調用HttpServletRequest的setCharacterEncoding方法 -->
<constant name="struts.i18n.encoding" value="utf-8" />
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/" extends="struts-default">
<interceptors>
<!-- 定義攔截器 -->
<interceptor name="crudInterceptor"
class="com.action.CrudInterceptor" />
<interceptor-stack name="appStack">
<interceptor-ref name="crudInterceptor" />
<!-- 下面一行自帶的攔截器必須加上,否則出錯 -->
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
<!-- 使用默認攔截器配置Action都需要攔截器堆棧
即所有struts請求都自動先交給攔截器處理。關於攔截器的具體規則在攔截器對應類(com.action.CrudInterceptor)中進行了解釋。
-->
<default-interceptor-ref name="appStack"></default-interceptor-ref>
</package>
</struts>

4、接下來配置applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans "
xmlns:aop="http://www.springframework.org/schema/aop "
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance "
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd ">

<!-- 數據源 -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"
value="org.gjt.mm.mysql.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/user" />
<property name="username" value="root" />
<property name="password" value="" />
</bean>
<!-- sessionFactory配置 -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mappingResources">
<list>
<value>com/ssh/User.hbm.xml</value>
</list>
</property>
<!-- 定義sessionFactory的屬性 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQL5InnoDBDialect
</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
</bean>

<!-- hibernate的類名,屬性名和資料庫之間的對應關系的自定義 com.ynstudio.tools.LocalNamingStrategy -->
<bean id="namingStrategy"
class="org.hibernate.cfg.ImprovedNamingStrategy">
</bean>
<!-- 定義DAO的bean -->
<bean id="userDao"
class="com.ssh.UserDaoImpl">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!--
下面的代碼用來向Action類注入屬性值
-->
<bean id="crudAction" class="com.action.CrudAction">
<property name="userDao" ref="userDao"></property>
</bean>
</beans>

5、上述配置文件完成後,就開始業務邏輯部分。
首先完成hibernate的curd操作部分內容。
設計一個User實體類。包含資料庫中User表的欄位。
新建一個User.hbm.xml文件,實現實體類與資料庫的關聯。內容如下:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd ">
<hibernate-mapping>
<class name="com.ssh.User" table="user">
<id name="id" column="id">
<generator class="increment" />
</id>
<property name="username" column="username" />
<property name="password" column="password" />
<property name="birthday" column="birthday" />
<property name="email" column="email" />
</class>

</hibernate-mapping>
接下來需要實現操作。
設計一個類繼承了HibernateDaoSupport類。關於HibernateDaoSupport類,請參考相關文檔。

6、完成hibernate的設計後,接下來設計struts的攔截器和struts的action。
struts的攔截器:
package com.action;

import java.lang.reflect.Method;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

/**
* 這個類的是攔截器。
* 對於如下URL:
* http://xxxxx:xxxx//xxx/hello.action?method:list
* actionInvocation.invoke()方法會自動調用名稱了HelloAction類的list方法。
* 在action中根據該方法的返回值決定頁面顯示或跳轉位置。
* result值除了可以再action類中定義,還可以在struts.xml中配置。
* 配置時可採用如下語句:
* <action name="hello" class="crudAction">
* <result name="list">/list.jsp</result>
* <result name="modify">/modify.jsp</result>
* </action>
* 此處需要格外注意的是:class屬性的值,此值是applicationContext.xml中的id。
* 該bean中注入了action類中屬性userDao的值。
* 所以,如果需要使用struts.xml中的action配置,需要使用該id,否則,系統不會給其注入值,最終導致空指針異常。
* @author HeXiaoXing
*
*/
public class CrudInterceptor extends AbstractInterceptor{

public String intercept(ActionInvocation actionInvocation) throws Exception {
/*
*下面代碼演示了獲取請求的類名與方法名的一半方式,但本例中不涉及。 全部注釋掉。
*/
// Object action = actionInvocation.getAction();
// Class actionClass = action.getClass();
// String actionClassName = actionClass.getSimpleName();
// String methodName = actionInvocation.getProxy().getMethod();

return actionInvocation.invoke();
}

}

struts的action,關於此action的全部內容,請參考源程序CrudAction。

7、完成了類設計後,就是頁面的設計,關於頁面的設計,不再一一敘述,給粗源文件,請自行參考。
需要提出的是,在轉向時,url的格式必須是method:方法名。這是約定的,不可以寫成method=方法名。

❺ java中的ssh框架原理

典型的J2EE三層結構,分為表現層、中間層(業務邏輯層)和數據服務層。三層體系將業務規則、數據訪問及合法性校驗等工作放在中間層處理。客戶端不直接與資料庫交互,而是通過組件與中間層建立連接,再由中間層與資料庫交互。

表現層是傳統的JSP技術,自1999年問世以來,經過多年的發展,其廣泛的應用和穩定的表現,為其作為表現層技術打下了堅實的基礎。

中間層採用的是流行的Spring+Hibernate,為了將控制層與業務邏輯層分離,又細分為以下幾種。

Web層,就是MVC模式裡面的「C」(controller),負責控制業務邏輯層與表現層的交互,調用業務邏輯層,並將業務數據返回給表現層作組織表現,該系統的MVC框架採用Struts。

Service層(就是業務邏輯層),負責實現業務邏輯。業務邏輯層以DAO層為基礎,通過對DAO組件的正面模式包裝,完成系統所要求的業務邏輯。

DAO層,負責與持久化對象交互。該層封裝了數據的增、刪、查、改的操作。

PO,持久化對象。通過實體關系映射工具將關系型資料庫的數據映射成對象,很方便地實現以面向對象方式操作資料庫,該系統採用Hibernate作為ORM框架。

Spring的作用貫穿了整個中間層,將Web層、Service層、DAO層及PO無縫整合,其數據服務層用來存放數據。

一個良好的框架可以讓開發人員減輕重新建立解決復雜問題方案的負擔和精力;它可以被擴展以進行內部的定製化;並且有強大的用戶社區來支持它。框架通常能很好的解決一個問題。然而,你的應用是分層的,可能每一個層都需要各自的框架。僅僅解決UI問題並不意味著你能夠很好的將業務邏輯和持久性邏輯和UI 組件很好的耦合。

不可否認,對於簡單的應用,採用ASP或者PHP的開發效率比採用J2EE框架的開發效率要高。甚至有人會覺得:這種分層的結構,比一般採用JSP + Servlet的系統開發效率還要低。

筆者從一下幾個角度來闡述這個問題。

— 開發效率:軟體工程是個特殊的行業,不同於傳統的工業,例如電器、建築及汽車等行業。這些行業的產品一旦開發出來,交付用戶使用後將很少需要後續的維護。但軟體行業不同,軟體產品的後期運行維護是個巨大的工程,單純從前期開發時間上考慮其開發效率是不理智的,也是不公平的。眾所周知,對於傳統的ASP和 PHP等腳本站點技術,將整個站點的業務邏輯和表現邏輯都混雜在ASP或PHP頁面里,從而導致頁面的可讀性相當差,可維護性非常低。即使需要簡單改變頁面的按鈕,也不得不打開頁面文件,冒著破壞系統的風險。但採用嚴格分層J2EE架構,則可完全避免這個問題。對表現層的修改即使發生錯誤,也絕對不會將錯誤擴展到業務邏輯層,更不會影響持久層。因此,採用J2EE分層架構,即使前期的開發效率稍微低一點,但也是值得的。

— 需求的變更:以筆者多年的開發經驗來看,很少有軟體產品的需求從一開始就完全是固定的。客戶對軟體需求,是隨著軟體開發過程的深入,不斷明晰起來的。因此,常常遇到軟體開發到一定程度時,由於客戶對軟體需求發生了變化,使得軟體的實現不得不隨之改變。當軟體實現需要改變時,是否可以盡可能多地保留軟體的部分,盡可能少地改變軟體的實現,從而滿足客戶需求的變更?答案是——採用優秀的解耦架構。這種架構就是J2EE的分層架構,在優秀的分層架構里,控制層依賴於業務邏輯層,但絕不與任何具體的業務邏輯組件耦合,只與介面耦合;同樣,業務邏輯層依賴於DAO層,也不會與任何具體的DAO組件耦合,而是面向介面編程。採用這種方式的軟體實現,即使軟體的部分發生改變,其他部分也盡可能不要改變。

注意:即使在傳統的硬體行業,也有大量的介面規范。例如PCI介面、顯卡或者網卡,只要其遵守PCI的規范,就可以插入主板,與主板通信。至於這塊卡內部的實現,不是主板所關心的,這也正是面向介面編程的好處。假如需要提高電腦的性能,需要更新顯卡,只要更換另一塊PCI介面的顯卡,而不是將整台電腦拋棄。如果一台電腦不是採用各種介面組合在一起,而是做成整塊,那將意味著即使只需要更新網卡,也要放棄整台電腦。同樣,對於軟體中的一個個組件,當一個組件需要重構時,盡量不會影響到其他組件。實際上,這是最理想的情況,即使採用目前最優秀的架構,也會有或多或少的影響,這也是軟體工程需要努力提高的地方。

技術的更新,系統重構:軟體行業的技術更新很快,雖然軟體行業的發展不快,但小范圍的技術更新特別快。一旦由於客觀環境的變化,不得不更換技術時,如何保證系統的改變最小呢?答案還是選擇優秀的架構。

在傳統的Model 1的程序結構中,只要有一點小的需求發生改變,將意味著放棄整個頁面。或者改寫。雖然前期的開發速度快,除非可以保證以後永遠不會改變應用的結構,否則不要採用Model 1的結構。

採用Hibernate作為持久層技術的最大的好處在於:可以完全以面向對象的方式進行系統分析、系統設計。

DAO模式需要為每個DAO組件編寫DAO介面,同時至少提供一個實現類,根據不同需要,可能有多個實現類。用Spring容器代替DAO工廠

通常情況下,引入介面就不可避免需要引入工廠來負責DAO組件的生成。Spring實現了兩種基本模式:單態模式和工廠模式。而使用Spring可以完全避免使用工廠模式,因為Spring就是個功能非常強大的工廠。因此,完全可以讓Spring充當DAO工廠。

由Spring充當DAO工廠時,無須程序員自己實現工廠模式,只需要將DAO組件配置在Spring容器中,由 ApplicationContext負責管理DAO組件的創建即可。藉助於Spring提供的依賴注入,其他組件甚至不用訪問工廠,一樣可以直接使用 DAO實例。

優點:
Struts跟Tomcat、Turbine等諸多Apache項目一樣,是開源軟體,這是它的一大優點。使開發者能更深入的了解其內部實現機制。
除此之外,Struts的優點主要集中體現在兩個方面:Taglib和頁面導航。Taglib是Struts的標記庫,靈活動用,能大大提高開發效率。另外,就目前國內的JSP開發者而言,除了使用JSP自帶的常用標記外,很少開發自己的標記,或許Struts是一個很好的起點。
關於頁面導航,我認為那將是今後的一個發展方向,事實上,這樣做,使系統的脈絡更加清晰。通過一個配置文件,即可把握整個系統各部分之間的聯系,這對於後期的維護有著莫大的好處。尤其是當另一批開發者接手這個項目時,這種優勢體現得更加明顯。
缺點:
Taglib是Struts的一大優勢,但對於初學者而言,卻需要一個持續學習的過程,甚至還會打亂你網頁編寫的習慣,但是,當你習慣了它時,你會覺得它真的很棒。
Struts將MVC的Controller一分為三,在獲得結構更加清晰的同時,也增加了系統的復雜度。
Struts從產生到現在還不到半年,但已逐步越來越多運用於商業軟體。雖然它現在還有不少缺點,但它是一種非常優秀的J2EE MVC實現方式,如果你的系統准備採用J2EE MVC架構,那麼,不妨考慮一下Struts。

❻ java現在還是學習ssh三大框架嗎

在JavaEE的開發過程中,時常會用到Web應用程序的框架,SSH是曾經一度比較熱門的框架,其作用同樣是為了搭建一個架構清晰、有較好的可復用性、便於維護和管理的系統。具體來說,SSH是指Struts、Spring、Hibernate三大框架,Struts用來作為基礎性的架構,Hibernate用於數據的持久層,而Spring用來對前兩者進行管理,編寫基本的DAO介面。其實,三大框架在實踐中也經歷了不斷地進化,從SSH框架發展為SSM框架,稍早的一些項目使用Spring、Struts2、Mybatis來寫,而現在一般情況下使用Spring、SpringMVC、Mybatis來做項目。
現在Java流行的框架,我給你介紹一下

一.springmvc框架
簡介:SpringWebMVC是一種基於Java的實現了WebMVC設計模式的請求驅動類型的輕量級Web框架,即使用了MVC架構模式的思想,將web層進行職責解耦,基於請求驅動指的就是使用請求-響應模型,框架的目的就是幫助我們簡化開發,SpringWebMVC也是要簡化我們日常Web開發的。
二.spring框架
簡介:
Spring是一個開源框架,是為了解決企業應用程序開發復雜性而創建的。框架的主要優勢之一就是其分層架構,分層架構允許您選擇使用哪一個組件,同時為J2EE應用程序開發提供集成的框架。
三.mybatis框架
簡介:
MyBatis的前身叫iBatis,本是apache的一個開源項目,2010年這個項目由apachesoftwarefoundation遷移到了googlecode,並且改名為MyBatis。MyBatis是支持普通SQL查詢,存儲過程和高級映射的優秀持久層框架。MyBatis消除了幾乎所有的JDBC代碼和參數的手工設置以及結果集的檢索。MyBatis使用簡單的XML或註解用於配置和原始映射,將介面和Java的POJOs(PlanOldJavaObjects,普通的Java對象)映射成資料庫中的記錄。

❼ Java中SSH框架怎樣搭建

方法/步驟

1
先新建一個test項目。

2
先建立與資料庫的聯系,在MyEclipse的右上角找到一個右上角帶加號的小圖標,選擇Other...-->MyEclipse
Database Explorer-->在左邊空白處點擊右鍵選擇New-->Database
Driver-->按下圖步驟來。

3
下面開始SSH框架的搭建,SSH表示Struts2、Spring 3.0、Hibernate。現在添加Struts。項目名稱點右鍵選擇MyEclipse-->Add Struts Capabilities...

4
按照步驟3 添加好Struts後,開始添加Spring,項目名稱點右鍵選擇MyEclipse-->Add Spring Capabilities...

5
然後在WebRoot/WEB-INF/web.xml中寫入代碼
<!--spring 配置-->
<!-- spring配置 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<!-- spring配置 -->

6
添加 Hibernate 包。項目名稱點右鍵選擇MyEclipse-->Add Hibernate Capabilities...

7
這樣SSH框架就搭建好了。要測試的話直接運行,要是能在網頁中正常顯示就說明搭建的框架沒有問題!比如我的test網頁。這就說明我的搭建沒有問題哦!

❽ java 中ssh三大框架各自特點,區別

ssh即Struts,Spring,Hibernate
在WEB應用中
Struts充當控制器,將視圖(view)與業務邏輯(model)分開,
Spring負責bean的管理與事務處理,整合Struts與Hibernate
Hibernate負責持久層(dto、),即與資料庫的交互,顯著的特點是,跨資料庫,提高生產力
附,視圖(view)由jsp、html等組成;業務邏輯(model)由後台的dto、、service、facade層組成

❾ java面試 談談對ssh三大框架的理解

首先hibernate是一個持久層框架,輕量級(性能好),orm映射靈活,對表與表的映射關系處理的很完善,對jdbc做了良好的封裝,使得我們開發時與資料庫交互不需要編寫大量的sql語句。
而struts是一個mvc的web層框架,底層是對servlet的大量封裝,擁有強大的攔截器機制,主要負責調用業務邏輯Service層。

三大框架的大致流程jsp->struts->service->hibernate。因為struts負責調用Service從而控制了Service的生命周期,使得層次之間的依賴加強,也就是耦合。
所以我們引用了spring,spring在框架中充當容器的角色,用於維護各個層次之間的關系。通過IOC反轉控制DI依賴注入完成各個層之間的注入,使得層與層之間實現完全脫耦,增加運行效率利於維護。
並且spring的AOP面向切面編程,實現在不改變代碼的情況下完成對方法的增強。比較常用的就是spring的聲明式事務管理,底層通過AOP實現,避免了我們每次都要手動開啟事物,提交事務的重復性代碼,使得開發邏輯更加清晰。

這樣應付面試應該可以了,不過他可能會細問,比如hibernate的懶載入,spring的AOP和IOC原理等,這個還需要在准備准備

❿ java中的ssh框架到底是什麼

SSH 為 struts+spring+hibernate的一個集成框架,是目前較流行的一種Web應用程序開源框架。
集成SSH框架的系統從職責上分為四層:表示層、業務邏輯層、數據持久層和域模塊層,以幫助開發人員在短期內搭建結構清晰、可復用性好、維護方便的Web應用程序。其中使用Struts作為系統的整體基礎架構,負責MVC的分離,在Struts框架的模型部分,控制業務跳轉,利用Hibernate框架對持久層提供支持,Spring做管理,管理struts和hibernate。具體做法是:用面向對象的分析方法根據需求提出一些模型,將這些模型實現為基本的Java對象,然後編寫基本的DAO(Data Access Objects)介面,並給出Hibernate的DAO實現,採用Hibernate架構實現的DAO類來實現Java類與資料庫之間的轉換和訪問,最後由Spring做管理,管理struts和hibernate。
系統的基本業務流程是: 在表示層中,首先通過JSP頁面實現交互界面,負責傳送請求(Request)和接收響應(Response),然後Struts根據配置文件(struts-config.xml)將ActionServlet接收到的Request委派給相應的Action處理。在業務層中,管理服務組件的Spring IoC容器負責向Action提供業務模型(Model)組件和該組件的協作對象數據處理(DAO)組件完成業務邏輯,並提供事務處理、緩沖池等容器組件以提升系統性能和保證數據的完整性。而在持久層中,則依賴於Hibernate的對象化映射和資料庫交互,處理DAO組件請求的數據,並返回處理結果。
採用上述開發模型,不僅實現了視圖、控制器與模型的徹底分離,而且還實現了業務邏輯層與持久層的分離。這樣無論前端如何變化,模型層只需很少的改動,並且資料庫的變化也不會對前端有所影響,大大提高了系統的可復用性。而且由於不同層之間耦合度小,有利於團隊成員並行工作,大大提高了開發效率。

熱點內容
交叉編譯優化 發布:2025-05-14 03:48:52 瀏覽:529
動圖在線壓縮 發布:2025-05-14 03:35:24 瀏覽:132
w7共享無法訪問 發布:2025-05-14 03:35:24 瀏覽:482
為什麼微信會出現賬號密碼錯誤 發布:2025-05-14 03:03:30 瀏覽:692
幻影腳本官網 發布:2025-05-14 03:01:13 瀏覽:826
servlet的webxml怎麼配置 發布:2025-05-14 02:51:46 瀏覽:772
怎麼取消手勢密碼 發布:2025-05-14 02:51:11 瀏覽:639
openvpn搭建vpn伺服器搭建 發布:2025-05-14 02:47:52 瀏覽:998
密碼忘了從哪裡找 發布:2025-05-14 02:39:09 瀏覽:548
我的世界什麼伺服器有前途 發布:2025-05-14 02:30:31 瀏覽:528