您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“如何使用MyEclipse整合SSH模式”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
ssh(struts、spring、hibernate)模式就是把三個框架合理地結(jié)合在一起,以發(fā)揮各自在不同位置上的作用,而如何把他們整合在一起就是關(guān)鍵。其實把他們整合在一起并不難,但不是任何時候都需要把他們整合來使用,這要看場合,我們應(yīng)該合理的使用,合適就好。但不管怎么說它都是一種不錯的模式,用MyEclipse工具會很方便地把它們整合在一起。下面簡單說一下過程:
MyEclipse整合SSH過程概述
1.先加struts包和配置文件。可以手動添加,也可以在myeclipse的myeclipse菜單里面把struts的環(huán)境添加上去,后面的spring會用到struts的配置文件。
2.添加spring,可以像添加struts一樣把spring的環(huán)境添加上去,不過一定要添加spring的web包??梢园裺pring的配置文件和struts的配置文件一起放在WEN-INF目錄下。
3.添加Hibernate,添加Hibernate的時候?qū)Υ鼿ibernate的配置文件我們有兩種處理方式:一:按往常一樣新建一個配置文件,把它放在src目錄下(一般情況);二:無需新建配置文件,而是把Hibernate的配置信息加入到spring的配置文件里面,這種方式需要建立一個dataSource數(shù)據(jù)庫連接。進行ssh整合一般使用第二種方式。
4.把三個框架都添加上去之后,就需要把他們聯(lián)系起來,下面以一個登錄的例子說明他們是怎樣配合工作的:
MyEclipse整合SSH登陸范例
1)、首先從前臺發(fā)送一個登錄的請求,【如下】:
< body> < form action="loginAction.do" method="post"> < table border="1"> < tr>< td>name:< /td> < td>< input type="text" name="name"/>< /td>< /tr> < tr>< td>password:< /td> < td>< input type="password" name="password"/>< /td>< /tr> < tr>< td colspan="2" align="center"> < input type="submit" value="login"/> < input type="reset" value="reset"/> < /td> < /tr> < /table> < /form> < /body>
2)、請求被struts截獲,轉(zhuǎn)到struts的配置文件尋找相對應(yīng)的action【如下】,這時發(fā)現(xiàn)找到的是一個代理action,這個代理action就會找到用< plug-in>標(biāo)簽注冊的spring插件,從而找到spring的配置文件。
< action-mappings> < !-- login action --> < action name="loginActionForm" path="/loginAction" scope="request" type="org.springframework.web.struts.DelegatingActionProxy"> < forward name="success" path="/success.jsp">< /forward> < forward name="failed" path="/failed.jsp" redirect="true">< /forward> < /action> < /action-mappings> < message-resources parameter="com.yourcompany.struts.ApplicationResources" /> < plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> < set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" /> < /plug-in>
3)、在spring的配置文件中尋找跟path屬性的名稱相同的action,【如下】。在action調(diào)用了userService類,userService又調(diào)用了userDAO。在userDAO中我們需要做用戶的登錄驗證。
< !-- 依賴注入action --> < bean name="/loginAction" class="com.dc.action.LoginAction"> < property name="userService" ref="userService">< /property> < /bean> < !-- 依賴注入UserDAO --> < bean id="userDAO" class="com.dc.dao.UserDAOImpl"> < property name="sessionFactory" ref="SessionFactory">< /property> < /bean> < !-- 依賴注入UserService --> < bean id="userService" class="com.dc.dao.UserServiceImpl"> < property name="dao" ref="userDAO">< /property> < /bean>
前面說過,Hibernate的配置信息是添加在spring的配置文件里的,在上面的userDAO中引用的sessionFactory就需要用到這些信息【如下】。
< !-- 配置連接數(shù)據(jù)庫和事物管理參數(shù) --> < bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> < property name="driverClassName" value="com.mysql.jdbc.Driver"> < /property> < property name="url" value="jdbc:mysql://127.0.0.1:3306/test"> < /property> < property name="username" value="root">< /property> < property name="password" value="root">< /property> < /bean> < bean id="SessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> < property name="dataSource"> < ref bean="dataSource">< /ref> < /property> < property name="hibernateProperties"> < props> < prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect < /prop> < prop key="hibernate.show_sql">true< /prop> < prop key="hibernate.format_sql">true< /prop> < /props> < /property> < property name="mappingResources"> < list> < value>com/dc/pojo/User.hbm.xml< /value>< /list> < /property> < /bean>
userDAO的驗證方法【如下】:在這個類中繼承了一個HibernateDaoSupport類,繼承后在配置文件中就可以添加一個sessionFactory屬性,用于獲取HibernateSessionFactory。
public class UserDAOImpl extends HibernateDaoSupport implements UserDAO { public User checkUser(String name, String password) { String sql = "from User u where u.name=? and password=?"; List userList = this.getHibernateTemplate().find(sql.toString(), new Object[]{name, password}); return userList.size() == 0 ? null : (User) userList.get(0); } }
4)、找到action后處理用戶的登錄,【如下】。 userService調(diào)用了getUserByParam方法,而在getUserByParam方法中又調(diào)用了userDAO的checkUser方法。驗證通過后轉(zhuǎn)到成功頁面,否則轉(zhuǎn)到失敗頁面。
//用戶登錄驗證 public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { LoginActionForm laf = (LoginActionForm) form; String name = laf.getName(); String password = laf.getPassword(); User user=userService.getUserByParam(name, password); if(user!=null){ HttpSession session=request.getSession(); session.setAttribute("user", user); return mapping.findForward("success"); } return mapping.findForward("failed"); }
這就是一個簡單的流程,當(dāng)然還有一些細節(jié)的東西需要我們?nèi)ッ?。在這過程中,三個框架都發(fā)揮了各自的作用,如果在一些比較復(fù)雜的應(yīng)用里面這是很方便的。這種模式使一個系統(tǒng)變得靈活、易于擴展和維護,所以得到了比較廣泛的應(yīng)用。
“如何使用MyEclipse整合SSH模式”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。