熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

使用MyEclipse整合SSH模式:登陸范例

2013-11-23 20:17:29  來源: Java開源技術 

  ssh(strutsspringhibernate)模式就是把三個框架合理地結合在一起以發揮各自在不同位置上的作用而如何把他們整合在一起就是關鍵其實把他們整合在一起並不難但不是任何時候都需要把他們整合來使用這要看場合我們應該合理的使用合適就好但不管怎麼說它都是一種不錯的模式用MyEclipse工具會很方便地把它們整合在一起下面簡單說一下過程

  MyEclipse整合SSH過程概述

  先加struts包和配置文件可以手動添加也可以在myeclipse的myeclipse菜單裡面把struts的環境添加上去後面的spring會用到struts的配置文件

  添加spring可以像添加struts一樣把spring的環境添加上去不過一定要添加spring的web包可以把spring的配置文件和struts的配置文件一起放在WENINF目錄下

  添加Hibernate添加Hibernate的時候對待Hibernate的配置文件我們有兩種處理方式按往常一樣新建一個配置文件把它放在src目錄下(一般情況)無需新建配置文件而是把Hibernate的配置信息加入到spring的配置文件裡面這種方式需要建立一個dataSource數據庫連接進行ssh整合一般使用第二種方式

  把三個框架都添加上去之後就需要把他們聯系起來下面以一個登錄的例子說明他們是怎樣配合工作的

  MyEclipse整合SSH登陸范例

  首先從前台發送一個登錄的請求「如下」

   < body>
< form action=loginActiondo method=post>
      < table border=>
    < 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= align=center>
         < input type=submit value=login/>
    < input type=reset value=reset/>
    < /td>
    < /tr>
      < /table>
< /form>
< /body>

  請求被struts截獲轉到struts的配置文件尋找相對應的action「如下」這時發現找到的是一個代理action這個代理action就會找到用< plugin>標簽注冊的spring插件從而找到spring的配置文件

  

  < actionmappings>
    < ! login action >
        < action name=loginActionForm path=/loginAction
            scope=request
            type=orgspringframeworkwebstrutsDelegatingActionProxy>
            < forward name=success path=/successjsp>< /forward>
            < forward name=failed path=/failedjsp redirect=true>< /forward>
        < /action>
    < /actionmappings>

  < messageresources
        parameter=comyourcompanystrutsApplicationResources />
    < plugin
        className=orgspringframeworkwebstrutsContextLoaderPlugIn>
        < setproperty property=contextConfigLocation
            value=/WEBINF/applicationContextxml />
    < /plugin>

  在spring的配置文件中尋找跟path屬性的名稱相同的action「如下」在action調用了userService類userService又調用了userDAO在userDAO中我們需要做用戶的登錄驗證

  

  < ! 依賴注入action >
    < bean name=/loginAction class=comdcactionLoginAction>
        < property name=userService ref=userService>< /property>
    < /bean>

  < ! 依賴注入UserDAO >
    < bean id=userDAO class=comdcdaoUserDAOImpl>
        < property name=sessionFactory ref=SessionFactory>< /property>
    < /bean>

  < ! 依賴注入UserService >
    < bean id=userService class=comdcdaoUserServiceImpl>
        < property name=dao ref=userDAO>< /property>
    < /bean>

  前面說過Hibernate的配置信息是添加在spring的配置文件裡的在上面的userDAO中引用的sessionFactory就需要用到這些信息「如下」

   < ! 配置連接數據庫和事物管理參數 >
    < bean id=dataSource
        class=monsdbcpBasicDataSource>
        < property name=driverClassName
            value=commysqljdbcDriver>
        < /property>
        < property name=url
            value=jdbc:mysql://:/test>
        < /property>
        < property name=username value=root>< /property>
        < property name=password value=root>< /property>
    < /bean>
    < bean id=SessionFactory
        class=orgspringframeworkormhibernateLocalSessionFactoryBean>
        < property name=dataSource>
            < ref bean=dataSource>< /ref>
        < /property>
        < property name=hibernateProperties>
            < props>
                < prop key=hibernatedialect>
                    orghibernatedialectMySQLDialect
                < /prop>
                < prop key=hibernateshow_sql>true< /prop>
                < prop key=hibernateformat_sql>true< /prop>
            < /props>
        < /property>
        < property name=mappingResources>
            < list>
                < value>com/dc/pojo/Userhbmxml< /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 uname=? and password=?;
        List userList = thisgetHibernateTemplate()find(sqltoString()
                new Object[]{name password});
        return userListsize() == ? null : (User) userListget();
    }
}

  找到action後處理用戶的登錄「如下」 userService調用了getUserByParam方法而在getUserByParam方法中又調用了userDAO的checkUser方法驗證通過後轉到成功頁面否則轉到失敗頁面

   //用戶登錄驗證
    public ActionForward execute(ActionMapping mapping ActionForm form
            HttpServletRequest request HttpServletResponse response) {
        LoginActionForm laf = (LoginActionForm) form;
        String name = lafgetName();
        String password = lafgetPassword();
        User user=userServicegetUserByParam(name password);
        if(user!=null){
            HttpSession session=requestgetSession();
            sessionsetAttribute(user user);
            return mappingfindForward(success);
        }
        return mappingfindForward(failed);
    }

  這就是一個簡單的流程當然還有一些細節的東西需要我們去摸索在這過程中三個框架都發揮了各自的作用如果在一些比較復雜的應用裡面這是很方便的這種模式使一個系統變得靈活易於擴展和維護所以得到了比較廣泛的應用

  以上就介紹了MyEclipse整合SSH的流程本文來自seekereye的博客《SSH整合》


From:http://tw.wingwit.com/Article/program/Java/ky/201311/28247.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.