`
jmswjzj
  • 浏览: 8954 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

转-Struts,Spring,Hibernate Web应用开发1

阅读更多
这个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)框架搭建好了。
 



转自:http://www.blogjava.net/jacky9881/archive/2008/01/02/172076.html
分享到:
评论

相关推荐

    项目实践精解:基于Struts-Spring-Hibernate的Java应用开发

    在Java世界中,Struts、Spring和Hibernate是三个非常重要的框架,它们构成了经典的"SSH"企业级应用开发栈。这个项目实践精解深入探讨了如何使用这三个框架来构建实际的Java应用程序,旨在提升开发者在实际项目中的...

    java-Struts2-Spring和Hibernate架构应用实例.doc

    "Java-Struts2-Spring和Hibernate架构应用实例" 本文主要讲述了如何使用Struts2、Spring和Hibernate框架来实现一个图书管理系统,涵盖了基本的增加、删除、修改、查询等功能。下面是对标题、描述、标签和部分内容的...

    轻量级J2EE企业应用实战--Struts+Spring+Hibernate整合开发笔记

    轻量级 J2EE 企业应用实战 -- Struts+Spring+Hibernate 整合开发笔记 本资源为轻量级 J2EE 企业应用实战开发笔记,涵盖 Struts、Spring 和 Hibernate 三大框架的整合开发实践。笔记从 JDK 安装和配置环境变量开始,...

    《企业应用架构设计-Struts2 Hibernate3 Spring 2》谢星星 第十九章整合源码

    《企业应用架构设计-Struts2 Hibernate3 Spring 2》是谢星星撰写的一本经典书籍,专注于讲解如何在企业级应用程序中有效地整合这三个强大的开源框架。第十九章的主题是“Struts2 Hibernate3整合源码”,这涉及到...

    s2sh开发jar包-struts spring hibernate

    Spring是一个全面的Java企业级应用开发框架,它提供了依赖注入(DI)和面向切面编程(AOP)等功能,简化了代码的编写和管理。Spring框架还包含了对事务管理、数据访问/集成、Web应用、测试等多个领域的支持。`spring...

    Spring,hibernate,struts jar 最新jar包

    Spring、Hibernate和Struts是Java开发中非常重要的三个框架,它们构成了经典的MVC(Model-View-Controller)架构,被广泛应用于企业级Web应用开发。这些框架极大地简化了开发过程,提高了开发效率,并且提供了良好的...

    基于Struts+Hibernate+Spring的Web_应用开发

    ### 基于Struts+Hibernate+Spring的Web应用开发 #### 一、实训目标概述 本实训指导书旨在帮助学生深入理解并掌握基于Struts、Hibernate与Spring三种技术的Web应用开发流程与技巧。通过分阶段的学习和实践,使学生...

    精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例全书

    《精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例全书》是一本深入探讨J2EE Web应用程序开发的专业书籍。J2EE,全称Java 2 Platform, Enterprise Edition,是Java平台上用于构建企业级分布式应用程序的...

    记录-笔记-用ANT构建-struts-spring-hibernate

    通过学习和实践这个SSH(Struts-Spring-Hibernate)的构建过程,开发者可以提升Java Web应用的开发效率,理解MVC架构和企业级应用的组件协作,同时掌握Ant工具的使用技巧,为后续的项目开发打下坚实基础。

    图解学习、搭建、整合Struts-Spring-Hibernate框架

    Struts-Spring-Hibernate(SSH)是Java Web开发中经典的三大框架组合,它们各自负责不同的职责,协同工作以提升应用程序的效率和可维护性。Struts处理MVC(Model-View-Controller)架构中的控制器部分,Spring作为...

    J2EE-Struts2-Spring-Hibernate整合的例子:添加

    总之,J2EE-Struts2-Spring-Hibernate的整合是一个常见的企业级应用开发模式,它利用了各自的优点,实现了高效的开发、强大的功能和良好的架构。这样的整合实例对于提升开发者的技术水平和解决实际问题的能力...

    spring_struts_hibernate整合开发书籍

    《Spring+Struts+Hibernate整合开发》是一本深入讲解企业级Java应用开发的书籍,它主要聚焦于三大著名开源框架——Spring、Struts和Hibernate的集成与应用。这些框架是Java Web开发中的基石,广泛应用于各种复杂的...

    JavaEE企业应用实战-Struts2+Spring3+Hibernate整合开发(第3版)

    - **JavaEE简介**:JavaEE(Java Platform, Enterprise Edition)是Java平台的企业版,提供了一套全面的企业级应用开发框架和技术标准。它基于JavaSE,并在其基础上扩展了许多面向大型复杂应用的技术,如Web服务、...

    轻量级 J2EE 企业应用实战:Struts+Spring+Hibernate 整合开发

    此外,Spring还提供了一个强大的事务管理、数据访问集成(包括对Hibernate的支持)、Web应用开发等模块,是现代Java应用开发不可或缺的部分。 **Hibernate** Hibernate是一个流行的开源ORM(Object-Relational ...

    开发基于Struts Spring Hibernate Ajax的网上信息发布平台(Struts Hibernate Spring Ajax)--Chapter1

    **Spring**: Spring 是一个全面的Java企业级应用开发框架,它的核心特性包括依赖注入(DI)和面向切面编程(AOP)。在本项目中,Spring不仅能够管理Struts的Action对象,还能够处理事务管理和数据访问。Spring的IoC...

    SSH 框架 struts-2.3.34 spring4.3.12 hibernate5.0.12

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个框架集合提供了一种高效且强大的方式来构建企业级应用,它整合了模型-视图-控制器(MVC)设计模式、依赖注入(DI)...

    struts-spring-hibernate图解

    Struts、Spring 和 Hibernate 是Java Web开发中的三个关键框架,它们各自解决不同的问题,并通过集成提供了强大的企业级应用开发能力。 Struts 是一个基于MVC(Model-View-Controller)设计模式的开源Web应用程序...

    精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码(带数据库)

    Java EE是企业级应用开发的重要框架,而"精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码"的资源提供了丰富的实践学习材料,旨在帮助开发者深入了解和掌握Java后端开发技术。这个项目案例涵盖了四...

    struts-spring-hibernate

    Struts、Spring 和 Hibernate 是Java Web开发中的三个关键框架,它们各自解决应用程序的不同问题,而“struts-spring-hibernate”则表示这三个框架的集成应用。这篇文章将详细讲解这三个框架的核心概念以及它们如何...

    Spring-Struts-Hibernate在maven下整合

    - `WEB-INF` 目录包含Web应用的私有资源,如`web.xml`(Web应用的部署描述符)、`struts.xml`(Struts2的配置文件)和`classes`(编译后的类文件)。 - `META-INF` 目录通常包含Maven的元数据,如`pom.xml`(项目...

Global site tag (gtag.js) - Google Analytics