eagames  
          日歷
          <2005年11月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910
          統計
          • 隨筆 - 22
          • 文章 - 0
          • 評論 - 2
          • 引用 - 0

          導航

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          收藏夾

          test

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

           

          現在創建spring框架

           

          配置struts-config.xml文件,添加(spring)的插件

           

          <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
              <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
            </plug-in>

           

          修改LoginAction配置

           

          原:

          <action
                attribute="loginForm"
                input="/login.jsp"
                name="loginForm"
                path="/login"
                scope="request"
                validate="true"
                type="com.test.struts.action.LoginAction" />

           

            </action-mappings>

           

          改為:

          <action
                attribute="loginForm"
                input="/login.jsp"
                name="loginForm"
                path="/login"
                scope="request"
                validate="true"
                type="
          org.springframework.web.struts.DelegatingActionProxy" />

            </action-mappings>

           

          綠色字體部份為修改內容

          這里將使用spring的代理器來對Action進行控制

           

          當提交到/login.do是將控制權交給了spring,然后由spring來決定是否轉回到strutsAction

           

          現在來配置spring

           

          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "
          http://www.springframework.org/dtd/spring-beans.dtd">

           

          <beans>
           
          <bean name="/login" class="net.xiaxin.action.LoginAction" singleton="false"></bean>
          </beans>

           

          綠色字體是關于轉交控制權的配置內容

           

          屬性singleton="false",指明了Action 的實例獲取方式為每次重新創建。解決了Struts中令人詬病的線程安全問題(Struts中,由一個Action實例處理所有的請求,這就導致了類公用資源在并發請求中的線程同步問題。)(摘自spring開發指南)

           

          建立數據庫在 這里我使用的是mysql4.1.1x

           

          CREATE TABLE `user` (
            `ID` int(11) NOT NULL auto_increment,
            `USERNAME` varchar(50) NOT NULL default '',
            `PASSWORD` varchar(50) NOT NULL default '',
            PRIMARY KEY  (`ID`)
          ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

           

          創建Hibernate框架

          使用MyEclipse的數據Database Explorer工具創建User.hmb.xmlAbstractUser.javaUser.java映射文件

          創建完成后可以將自動生成的hibernate.cfg.xml刪除

           

          創建UserDAO.javaUserDAOImp.java

           

          修改LoginAction.java文件,使用userDao的方法來進行用戶驗證

          package com.test.struts.action;

           

          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;

           

          import org.apache.struts.action.Action;
          import org.apache.struts.action.ActionForm;
          import org.apache.struts.action.ActionForward;
          import org.apache.struts.action.ActionMapping;
          import org.apache.struts.validator.DynaValidatorForm;

           

          import com.test.UserDAO;


          public class LoginAction extends Action {


           private UserDAO userDAO;

           

           public UserDAO getUserDAO() {
            return userDAO;
           }

           

           public void setUserDAO(UserDAO userDAO) {
            this.userDAO = userDAO;
           }

           

           public ActionForward execute(ActionMapping mapping, ActionForm form,
             HttpServletRequest request, HttpServletResponse response) {
            DynaValidatorForm loginForm = (DynaValidatorForm) form;
            // TODO Auto-generated method stub
            String username = (String) loginForm.get("username");
            String password = (String) loginForm.get("password");
            loginForm.set("password", null);
            if (userDAO.isValidUser(username,password)) {
             return mapping.findForward("indexGo");
            } else {
             return mapping.getInputForward();
            }
           }

          }
          綠色字體為修改部份

           

          現在剩下最后的spring配置了

          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

           

          <beans>
           <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
            <property name="driverClassName">
             <value>com.mysql.jdbc.Driver</value>
            </property>
            <property name="url">
             <value>jdbc:mysql://localhost:3306/test</value>
            </property>
            <property name="username">
             <value>root</value>
            </property>
            <property name="password">
             <value></value>
            </property>
           </bean>

           

           <bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
            <property name="dataSource">
             <ref local="dataSource" />
            </property>
            <property name="mappingResources">
             <list>
              <value>com\test\Hibernate\User.hbm.xml</value>
             </list>
            </property>
            <property name="hibernateProperties">
             <props>
              <prop key="hibernate.dialect">net.sf.hibernate.dialect.MySQLDialect</prop>
              <prop key="hibernate.show_sql">true</prop>
             </props>
            </property>
           </bean>

           

           <bean id="transactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager">
            <property name="sessionFactory">
             <ref local="sessionFactory" />
            </property>
           </bean>

           

           <bean id="userDAO" class="com.test.UserDAOImp">
            <property name="sessionFactory">
             <ref local="sessionFactory" />
            </property>
           </bean>

           

           <bean id="userDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
            <property name="transactionManager">
             <ref bean="transactionManager" />
            </property>
            <property name="target">
             <ref local="userDAO" />
            </property>
            <property name="transactionAttributes">
             <props>
              <prop key="insert*">PROPAGATION_REQUIRED</prop>
              <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
              <prop key="is*">PROPAGATION_REQUIRED,readOnly</prop>
             </props>
            </property>
           </bean>

           

           <bean name="/login" class="com.test.struts.action.LoginAction" singleton="false">
            <property name="userDAO">
             <ref bean="userDAOProxy" />
            </property>
           </bean>
          </beans>

           

          現在可以進行測試了!

          posted on 2005-11-22 21:39 EA_Games 閱讀(443) 評論(0)  編輯  收藏 所屬分類: StrutsHibernateSpring
           
          Copyright © EA_Games Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 海丰县| 元阳县| 古交市| 蒲城县| 香港 | 钦州市| 朝阳县| 海兴县| 阳朔县| 四子王旗| 屯门区| 兴城市| 稷山县| 弋阳县| 民勤县| 泽普县| 高邑县| 诸暨市| 松江区| 海安县| 涞水县| 任丘市| 文山县| 仪陇县| 长汀县| 静乐县| 华蓥市| 铜鼓县| 怀仁县| 乌什县| 淅川县| 井陉县| 政和县| 简阳市| 营口市| 阳信县| 合作市| 太谷县| 崇义县| 洪江市| 泽普县|