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

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

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

    posts - 36, comments - 30, trackbacks - 0, articles - 3

    Struts,Spring,Hibernate Web應用開發1

    Posted on 2008-01-02 09:43 笑看人生 閱讀(1937) 評論(0)  編輯  收藏 所屬分類: Web開發技術
    這個Web應用很簡單,就是實現一個用戶注冊頁面,當用戶在register.jsp頁面輸入注冊信息,點保存,如果成功,進入registerSuccess.jsp頁面。這個應用雖然很小,但它也有三層組成,表示層由Struts框架負責,業務層由Spring框架負責,持久層由Hibernate框架負責。
    開發環境:MyEclipse 5+ MySQL4 + Struts1.3.5 + Spring2.0.1 + Hibernate3.2.1 + Tomcat5.0.19 + jdk1.4.2_06.
    1.    首先,我們在MyEclipse中新建一個Web Project ,login;
    2.然后把Struts,Spring,Hibernate框架所需要的jar包以及MySQL的驅動拷貝到WEB-INF\lib下;
    3.創建用戶注冊頁面register.jsp
     
     1<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
     2<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
     3<html>
     4 
     5<head>
     6 <title><bean:message key="register.title"/></title>
     7</head>
     8 
     9<body>
    10<html:errors />
    11 <html:form action="register.do">
    12    <table >
    13      <tr>
    14        <td><bean:message key="register.username"/>:</td>
    15        <td><html:text property="register.username" /></td>
    16      </tr>
    17      <tr>
    18        <td><bean:message key="register.password"/>:</td>
    19        <td><html:password property="register.password" /></td>
    20      </tr>
    21       <tr>
    22        <td><bean:message key="register.email"/>:</td>
    23        <td><html:text property="register.email" /></td>
    24      </tr>
    25      <tr>
    26        <td colspan="2" align="center">
    27        <html:submit><bean:message key="register.submit"/></html:submit>
    28        </td>
    29      </tr>
    30    </table>
    31 </html:form>
    32</body>
    33 
    34</html>

    4.創建注冊成功后顯示的頁面registerSuccess.jsp
     1<%@ taglib uri=" http://struts.apache.org/tags-bean " prefix="bean" %>
     2<html>
     3 
     4<head>
     5 <title><bean:message key="register.title"/></title>
     6</head>
     7 
     8<body>
     9 <bean:message key="register.success"/>
    10</body>
    11 
    12</html>
    13
     
    5.         創建消息資源文件registermessages.properties
     
    1register.title = Register
    2register.username = UserName
    3register.password = Password
    4register.email = Email
    5register.submit = Submit
    6register.success = RegisterSuccess!
    7
     
    6.      由于我們使用動態ActionForm,只需在Struts-config.xml中配置與register.jsp頁面中form對應的ActionForm。
    7.         創建配置文件Struts-config.xml
     1<?xml version="1.0" encoding="iso-8859-1"?>
     2<!DOCTYPE struts-config PUBLIC
     3        "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
     4        "http://struts.apache.org/dtds/struts-config_1_3.dtd">
     5<!--
     6 Default configuration file for examples application.
     7 Each module also has its own struts-config under: /WEB-INF/$MODULE/
     8 @version $Revision: 1.9 $ $Date: 2006-02-13 18:39:49 -0700 (Mon, 13 Feb 2006) $
     9-->
    10<struts-config>
    11 <form-beans >
    12   <!—配置register.jsp中form對應的ActionFrom-->
    13    <form-bean name="registerForm" type="org.apache.struts.action.DynaActionForm" >
    14        <form-property name="register" type="test.register.entity.Register"/>                     
    15    </form-bean>
    16 </form-beans>
    17 <!—配置對Struts Action請求的代理-->
    18 <controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/>
    19 <!—配置register.jsp中form對應的Action-->
    20 <action-mappings >
    21    <action      
    22      name="registerForm"
    23      path="/register"
    24      scope="request"
    25      type="test.register.action.RegisterAction"
    26      validate="false"
    27      input="register.jsp">
    28      <forward name="success" path="/registerSuccess.jsp" />
    29    </action>
    30   </action-mappings>
    31 
    32 <message-resources parameter="test.register.registermessages" />
    33 <!—配置插件,讓action能訪問sping容器-->
    34 <plug-in
    35       className="org.springframework.web.struts.ContextLoaderPlugIn">
    36       <set-property property="contextConfigLocation"
    37           value="/WEB-INF/action-servlets.xml" />
    38</plug-in>
    39 
    40</struts-config>
    41

    8.      創建實體類Register.java
     1package test.register.entity;
     2 
     3import java.io.Serializable;
     4 
     5publicclass Register implements Serializable{   
     6    privatestaticfinallongserialVersionUID = 1521645755684977819L;
     7    private Long id;
     8    private String username;
     9    private String password;
    10    private String email;
    11    
    12    public Register(){
    13       
    14    }

    15 
    16    public String getEmail() {
    17       returnemail;
    18    }

    19 
    20    publicvoid setEmail(String email) {
    21       this.email = email;
    22    }

    23 
    24    public Long getId() {
    25       returnid;
    26    }

    27 
    28    publicvoid setId(Long id) {
    29       this.id = id;
    30    }

    31 
    32    public String getPassword() {
    33       returnpassword;
    34    }

    35 
    36    publicvoid setPassword(String password) {
    37       this.password = password;
    38    }

    39 
    40    public String getUsername() {
    41       returnusername;
    42    }

    43 
    44    publicvoid setUsername(String username) {
    45       this.username = username;
    46    }

    47    
    48    
    49 
    50}

    51

    9.創建Hibernate映射文件,Register.hbm.xml
     1<?xml version="1.0"?>
     2<!DOCTYPE hibernate-mapping PUBLIC 
     3    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     4    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     5<hibernate-mapping 
     6    package="test.register.entity">
     7 
     8    <class name="Register" table="REGISTER">
     9       
    10       <id name="id">
    11           <generator class="native"/>
    12       </id>
    13              
    14    <property name="username" 
    15            not-null="true"
    16            length="15"
    17            column="USERNAME"/>
    18       
    19    <property name="password" 
    20            not-null="true"
    21            length="15"
    22            column="PASSWORD"/>
    23       
    24    <property name="email"
    25            not-null="true"
    26            length="15"
    27            column="EMAIL"/>       
    28       
    29    </class>
    30    
    31</hibernate-mapping>
    32
     
    9.         創建Spring配置文件applicationContext.xml
     1<?xml version="1.0" encoding="UTF-8"?>
     2<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
     3 
     4<beans>    
     5 
     6    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
     7<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
     8       <property name="url" value="jdbc:mysql://localhost/register"/>
     9       <property name="username" value="root"/>
    10       <property name="password" value="root"/>
    11    </bean>    
    12 
    13    <!-- Hibernate SessionFactory -->
    14    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    15       <property name="dataSource" ref="dataSource"/>
    16       <property name="mappingDirectoryLocations">
    17           <value>classpath:test\register\entity\</value>
    18       </property>
    19       <property name="hibernateProperties">
    20           <props>
    21              <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
    22              <prop key="hibernate.show_sql">true</prop>
    23              <prop key="hibernate.generate_statistics">true</prop>
    24           </props>
    25       </property>       
    26    </bean>    
    27    
    28   <bean id="registerDAO" class="test.register.dao.RegisterDAO">
    29        <property name="sessionFactory">
    30             <ref local="sessionFactory"/>
    31        </property>
    32 </bean>
    33 
    34   <bean id="registerService" class="test.register.service.RegisterService">
    35        <property name="registerDAO">
    36             <ref local="registerDAO"/>
    37        </property>
    38 </bean>
    39 
    40</beans>
    41

    10. 創建數據訪問對象RegisterDAO.java
     1package test.register.dao;
     2 
     3import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
     4 
     5import test.register.entity.Register;
     6 
     7publicclass RegisterDAO extends HibernateDaoSupport{
     8    
     9    public Register saveRegister(Register r){
    10       try{
    11           this.getHibernateTemplate().saveOrUpdate(r);
    12           return r;
    13       }
    catch (Exception e) {
    14           e.printStackTrace();
    15           returnnull;
    16       }
          
    17    }

    18}

    19

    12.創建服務對象RegisterService.java
     1package test.register.service;
     2 
     3import test.register.dao.RegisterDAO;
     4import test.register.entity.Register;
     5 
     6publicclass RegisterService {
     7    private RegisterDAO registerDAO;   
     8    
     9    publicRegisterDAO getRegisterDAO() {
    10       returnregisterDAO;
    11    }

    12 
    13    publicvoid setRegisterDAO(RegisterDAO registerDAO) {
    14       this.registerDAO = registerDAO;
    15    }

    16 
    17    public Register saveRegister(Register r){
    18       this.getRegisterDAO().saveRegister(r);
    19       return r;
    20    }

    21}

    22
     
    11. 創建web.xml
     1<?xml version="1.0" encoding="UTF-8"?>
     2<!DOCTYPE web-app PUBLIC
     3        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     4        "http://java.sun.com/dtd/web-app_2_3.dtd">
     5<web-app>
     6<context-param>
     7    <param-name>contextConfigLocation</param-name>
     8    <param-value>/WEB-INF/applicationContext.xml</param-value>
     9</context-param>
    10<listener>
    11    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    12</listener>
    13<servlet>
    14    <servlet-name>action</servlet-name>
    15    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    16    <init-param>
    17      <param-name>config</param-name>
    18      <param-value>/WEB-INF/struts-config.xml</param-value>
    19    </init-param>
    20    <init-param>
    21      <param-name>debug</param-name>
    22      <param-value>3</param-value>
    23    </init-param>
    24    <init-param>
    25      <param-name>detail</param-name>
    26      <param-value>3</param-value>
    27    </init-param>
    28    <load-on-startup>0</load-on-startup>
    29 </servlet>
    30 
    31 <servlet-mapping>
    32    <servlet-name>action</servlet-name>
    33    <url-pattern>*.do</url-pattern>
    34 </servlet-mapping>
    35 
    36 <welcome-file-list>
    37  <welcome-file>register.jsp</welcome-file>
    38 </welcome-file-list>
    39 
    40</web-app>
    41

    14.創建RegisterAction.java
    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.action.DynaActionForm;
     
    import test.register.entity.Register;
    import test.register.service.RegisterService;
     
    publicclass RegisterAction 
    extends Action{
        
        
    private RegisterService registerService;
     
        
    public RegisterService getRegisterService() {
           returnregisterService;
        }

     
        publicvoid setRegisterService(RegisterService registerService) 
    {
           
    this.registerService = registerService;
        }

     
        
    public ActionForward execute(ActionMapping mapping,
                                    ActionForm form, 
                             HttpServletRequest request, 
                              HttpServletResponse response) 
        
    throws Exception {
     
           Register r 
    = (Register)((DynaActionForm)form).get("register"); 
           getRegisterService().saveRegister(r);     
           
    return mapping.findForward("success");
        }

    }


    在RegisterAction.java中,為了獲取spring容器中的RegisterService對象,我們要對struts-config.xml作下修改,具體修改如下:
    在struts-config.xml增加controller元素
    <controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/>

    目的告訴Struts自動將對Action的請求委托給Spring上下文中的Struts Action來處理。
    并且為了讓Struts能訪問Spring容器,還必須在struts-config.xml注冊一個能訪問Spring上下文的插件:
    <plug-in      className="org.springframework.web.struts.ContextLoaderPlugIn">
           
    <set-property property="contextConfigLocation"
               value
    ="/WEB-INF/action-servlets.xml" />
    </plug-in>
     
    action-servlets.xml文件的具體內容如下:
    1<?xml version="1.0" encoding="UTF-8"?>
    2<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
    3 
    4<beans>    
    5    <bean name="/register" class="test.register.action.RegisterAction">
    6       <property name="registerService" ref="registerService"/>       
    7    </bean>     
    8</beans>
    9

    注意:這里bean是name屬性,而不是id。
    至此,一個完整的SSH(Struts,Spring,Hibernate)框架搭建好了。
     
    主站蜘蛛池模板: 亚洲精品在线不卡| 免费不卡在线观看AV| 亚洲H在线播放在线观看H| 久久亚洲精品无码观看不卡| 午夜宅男在线永久免费观看网| 两个人www免费高清视频| 老司机亚洲精品影院在线观看| 亚洲精品中文字幕无码AV| 亚洲精品国偷自产在线| 亚洲日韩在线第一页| 日韩在线免费电影| 无码国产精品一区二区免费I6| 日本卡1卡2卡三卡免费| 国产成人无码免费看片软件| 国产精品亚洲综合一区在线观看 | 亚洲精品第一国产综合精品| 亚洲真人无码永久在线| 日产国产精品亚洲系列| 青草草在线视频永久免费| 免费国产黄线在线观看| 91麻豆最新在线人成免费观看| 99re6在线精品视频免费播放 | 亚洲va无码va在线va天堂| 亚洲午夜AV无码专区在线播放| 国产乱弄免费视频| 日韩电影免费在线| 日本一道高清不卡免费| 午夜视频免费观看| 免费无码黄动漫在线观看| 女人18特级一级毛片免费视频| 无人在线观看完整免费版视频| 亚洲性线免费观看视频成熟| 最近中文字幕大全免费视频| 5555在线播放免费播放| 亚洲美女免费视频| 大学生一级毛片免费看| 性一交一乱一视频免费看| 日韩免费高清视频网站| 亚洲阿v天堂在线2017免费| 亚洲国产精品无码久久久久久曰 | 三上悠亚在线观看免费|