<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    李順利
    隨筆-50  評論-170  文章-0  trackbacks-0

    Struts+Spring+Hibernate整合注冊登錄

     

    開發環境:

    1.       MyEclipse Enterprise Workbench 7.0 Milestone-1MyEclipse 7.0 M1

    2.       Spring 2.5

    3.       Struts 1.3

    4.       Hibernate 3.2

    5.       Tomcat6.0

    6.       MySql 5.0

    7.       其他(SVN等)

     

    開發需求:

    1.       開發分為簡單的用戶注冊模塊和用戶登錄模塊

    其中在用戶注冊模塊中,用戶名是唯一的,也就是說需要對用戶名進行驗證

    在用戶登錄模塊中需要對用戶的用戶名和密碼進行驗證,驗證通過,登錄成功

    2.

     

    開發步驟:

    1.       前期準備:新建數據庫(testuser

    clip_image002

     

    2.       MyEclipseDB Browser中新建DataBase Driver。(新建Driver template選擇mysql,具體配置相信大家應該很熟悉了)

     

    clip_image004

     

    3.       新建一個web工程,工程名我定為SSHUser

    4.       添加對Struts的支持

    在工程上右鍵選擇MyEclipse->add Struts Capabilities,如下圖,(后面對其他的支持就不截圖了,原理一樣)

    clip_image006

     

    clip_image008

     

    5.       添加對Spring的支持

     

    clip_image010

    注:添加了Spring 2.5 web libraries這個包

     

    6.       添加對Hibernate的支持

    clip_image012

    注:添加Spring 2.5 Persistence Core Libraries

    clip_image014clip_image016clip_image018

     

    clip_image020

     

    7.       把數據庫user映射到web工程中

    DB Browser中選擇user右鍵選擇Hibernate…

    clip_image022

     

    clip_image024

     

    8.       新建兩個Action Form:reg login

    clip_image026

    clip_image028

     

    clip_image030

     

    9.       編寫代碼和配置文件(略,提供源碼壓縮包給大家)

    就寫一些程序當中最精彩的部分了

    1)         整合SSH后,寫了一個程序,后面發布(tomcat)的話,就會報下面的錯,上網搜了一下解決方案,http://www.cnblogs.com/QQParadise/archive/2009/04/09/1404757.html

    說“由于Spring中的“asm-2.2.3.jar”Hibernate中的“asm.jar”包沖突。解決辦法是移除Spring2.0 AOP Libraries中的“asm-2.2.3.jar”即可”,我看了一下,確實有這兩個包,刪除asm-2.2.3.jar,發布成功。

     

     

    2009-06-07 09:43:36,134 ERROR [org.springframework.web.context.ContextLoader] - Context initialization failed

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name '/reg' defined in file [D:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\testd\WEB-INF\classes\applicationContext-actions.xml]: Cannot resolve reference to bean 'userManager' while setting bean property 'um'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userManager' defined in file [D:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\testd\WEB-INF\classes\applicationContext-beans.xml]: Cannot resolve reference to bean 'UserDAO' while setting bean property 'dao'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'UserDAO' defined in file [D:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\testd\WEB-INF\classes\applicationContext-beans.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in file [D:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\testd\WEB-INF\classes\applicationContext-common.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V

         at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:275)

    ……

     

    2)         由于本程序要用到DAO,在用戶管理類中我一開始使用

     

    UserDAO dao = new UserDAO();

     

        public void addUser(User user)

        {

           dao.save(user);

        }

     后面一直會報一個空指針異常的錯誤(java.lang.NullPointerException),后來也是在網上找了好久,才發現一個我不小心的地方,就是我已經使用了Spring進行依賴注入,不過上面的語句根本就沒有注入,所以會報空指針異常的錯誤,改為下面的語句,使用Spring進行注入,也就是使用set方法就行注入即可(初學者經常犯的錯誤吧)。

     

        private UserDAO dao;

     

        public void setDao(UserDAO dao)

        {

           this.dao = dao;

        }

     

     

        public void addUser(User user)

        {

           dao.save(user);

        }

     

    <bean id="userManager" class="com.usc.manager.userManagerImpl">

           <property name="dao" ref="UserDAO"/>

        </bean>

     

    3)         Struts生成jsp文件的時候,會出現一個Cancel按鈕,如果不處理的話,單擊會報org.apache.struts.action.InvalidCancelException異常,網上說的話:Cancel按鈕的機制和submit機制是一樣的,沒有處理,如果要解決的話,在Struts配置文件中的每個action里面加上cancellable="true",雖然這樣能夠解決異常,但是治標不治本,此時如果點擊Cancel按鈕會當一個submit按鈕來進行提交,我覺得真有點違背常理,所以我的解決方案就是1.刪除cancel按鈕,2.修改為reset按鈕(我覺得是最好的解決方案)

     

    4)         配置文件

    Spring的配置文件

    Spring的配置文件主要是對Spring的一些機制進行配置,如:配置sessionFactory、配置sessionFactory、配置事務的傳播特性、配置那些類的哪些方法參與事務、配置action,配置一些bean

    Struts的配置文件

    主要是修改actiontype屬性,設置為spring管理,修改為

    type="org.springframework.web.struts.DelegatingActionProxy">

     

     

             本人也是剛學SSH不久,難免會有一些錯誤的理解,如果有什么建議或者意見的,我們可以一起學習,謝謝 ,Q506817493

     

    木子寫于200967

     



    博客中的一些下載已經放到了百度云了,請根據需要下載。【點我去百度云下載】

    最后弱弱地說一下,如果可以的話,轉載請提供出處( ),謝謝。
    posted on 2010-01-07 21:09 李順利 閱讀(3991) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 久久亚洲精品中文字幕| 无码国产精品一区二区免费| 亚洲AV无码久久精品成人 | 久久九九全国免费| 最新亚洲成av人免费看| 一级毛片不卡免费看老司机| 免费一级特黄特色大片在线 | 亚洲人成网亚洲欧洲无码久久 | 日韩欧毛片免费视频| 亚洲AV无码国产精品色| 免费A级毛片无码A∨免费| 久久亚洲精品人成综合网| 99视频全部免费精品全部四虎| 亚洲精品中文字幕无码AV| 国产99视频精品免费观看7| 亚洲日本天堂在线| 国产又粗又长又硬免费视频| 黄色免费在线网址| 亚洲人成网7777777国产| 99爱在线观看免费完整版| www.亚洲成在线| 又爽又高潮的BB视频免费看| 成年大片免费高清在线看黄| 久久亚洲av无码精品浪潮| 免费国产成人18在线观看| 亚洲第一成年人网站| 免费无码又爽又刺激毛片| 一级特黄a免费大片| 亚洲国产精品一区二区久久| 16女性下面扒开无遮挡免费| 日韩国产欧美亚洲v片 | 国产日韩AV免费无码一区二区三区| 337p日本欧洲亚洲大胆裸体艺术| 日韩精品免费在线视频| 亚洲妇女熟BBW| AV在线播放日韩亚洲欧| 1000部拍拍拍18勿入免费视频软件 | 亚洲国产精品免费视频| 亚洲精品第一国产综合野| 亚洲成人高清在线| 久久国产免费观看精品3|