`
lingduxyz
  • 浏览: 22373 次
文章分类
社区版块
存档分类
最新评论

SSH2完美整合流程

 
阅读更多

教程流程是重点,应熟练掌握。本教程做简单的账号注册演示,所用工具:Myeclipse-6.5、Struts-2.2.3、Hibernate- 3.2、Spring-2.0、MySql,本教程出自北大青鸟成都锦江校区(原文链接 http://www.scbdqn.com/course/netjava/3172.html),转载请注明原处,谢谢。

一、利用工具快速搭建环境

1、新建一个名为ssh2的Web项目

2、把STRUTS2的依赖JAR包添加到项目工程中。用WinRar解压Struts-2.2.3\apps\struts2- blank.war,把Struts-2.2.3\apps\struts2-blank\WEB-INF\lib下面的所有JAR包添加到WEB工程的 lib目录下。
3、添加Hibernate的依赖库。选中刚创建的项目,右键》具体操作如图所示
需要注意的地方已经勾选出来了,之后点下一步。
这里选择否,待会我们手工来编写。
这个不需要创建,因此不勾选。之后点完成。
4、添加Spring的依赖库。选中刚创建的项目,右键》具体操作如图所示
按下面的选择,不要急着下一步。
下面的选择之后,然后下一步。

Folder一定要写成 WebRoot/WEB-INF,否则容易找不到

不用它创建,然后点完成。

5、因为需要连接数据库,因此我们还需要数据库的依赖JAR包。去下载commons-dbcp-1.4.jar、commons-pool- 1.5.6.jar、mysql-connector-java-5.0.8-bin.jar,并添加进去。由于Struts与Spring整合了,所以 不要漏添加 struts2-spring-plugin-2.2.3.jar 文件,它位于 Struts-2.2.3\lib 目录下。

二、编写代码实现功能,处理常见异常

1、在 com.lingdus.bean 包下创建 Users.java 类

package com.lingdus.bean;

import java.io.Serializable;

public class Users implements Serializable {

    private int id;

    private String username;

    private String password;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

2、在 com.lingdus.bean 包下创建一个 Users.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.lingdus.bean.Users" table="scbdqn_users">
        <id name="id" column="id" type="int">
            <generator class="increment"></generator>
        </id>
        <property name="username" column="username" type="string"></property>
        <property name="password" column="password" type="string"></property>
    </class>
</hibernate-mapping>

3、在 com.lingdus.dao 下创建一个 UserDAO.java 文件

package com.lingdus.dao;

import com.lingdus.bean.Users;

public interface UserDAO {

    public void doRegister(Users user);
}

4、在 com.lingdus.dao.impl 下创建一个 UserDAOImpl.java 文件

package com.lingdus.dao.impl;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.lingdus.bean.Users;
import com.lingdus.dao.UserDAO;

public class UserDAOImpl extends HibernateDaoSupport implements UserDAO {

    public void doRegister(Users user) {

        this.getHibernateTemplate().save(user);
    }
}

5、在 com.lingdus.service 下创建一个 UserService.java 文件

package com.lingdus.service;

import com.lingdus.bean.Users;

public interface UserService {

    public void doRegister(Users user);
}

6、在 com.lingdus.service.impl 下创建一个 UserServiceImpl.java 文件

package com.lingdus.service.impl;

import com.lingdus.bean.Users;
import com.lingdus.dao.UserDAO;
import com.lingdus.service.UserService;

public class UserServiceImpl implements UserService {

    private UserDAO userDAO;

    public UserDAO getUserDAO() {
        return userDAO;
    }

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

    public void doRegister(Users user) {
        this.userDAO.doRegister(user);
    }
}
7、在 com.lingdus.action 下创建一个 UserRegisterAction.java 文件

package com.lingdus.action;

import java.util.Map;

import org.apache.struts2.ServletActionContext;

import com.lingdus.bean.Users;
import com.lingdus.service.UserService;
import com.opensymphony.xwork2.ActionSupport;

public class UserRegisterAction extends ActionSupport {

    private UserService service;

    private Users user;

    public UserService getService() {
        return service;
    }

    public void setService(UserService service) {
        this.service = service;
    }

    public Users getUser() {
        return user;
    }

    public void setUser(Users user) {
        this.user = user;
    }

    @Override
    public String execute() throws Exception {
        this.service.doRegister(this.user);
        if (0 == this.user.getId()) {
            return ERROR;
        }
        return SUCCESS;
    }
}

8、在 WebRoot\WEB-INF\applicationContext.xml 中替换成以下内容

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    <bean id="dataSource"
        class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
        <property name="driverClassName">
            <value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value>
        </property>
        <property name="url">
            <value>jdbc:sqlserver://localhost:1433;databaseName=ssh2</value>
        </property>
        <property name="username">
            <value>sa</value>
        </property>
        <property name="password">
            <value>sql2008</value>
        </property>
    </bean>
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="mappingResources">
            <list>
                <value>com/lingdus/bean/Users.xml</value>
            </list>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">
                    org.hibernate.dialect.SQLServerDialect
                </prop>
                <prop key="hibernate.show_sql">false</prop>
            </props>
        </property>
    </bean>
    <bean id="userDAO" class="com.lingdus.dao.impl.UserDAOImpl">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <bean id="userService"
        class="com.lingdus.service.impl.UserServiceImpl">
        <property name="userDAO" ref="userDAO"></property>
    </bean>
    <bean id="springUserRegisterAction"
        class="com.lingdus.action.UserRegisterAction">
        <property name="service" ref="userService"></property>
    </bean>
</beans>

9、在 src 目录下创建一个 struts.xml 文件,内容如下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
    "http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
    <package name="ssh2" extends="struts-default">
        <action name="doRegister" class="springUserRegisterAction">
            <result name="success">ok.jsp</result>
            <result name="error">error.jsp</result>
        </action>
    </package>
</struts>

10、在 WebRoot\WEB-INF\web.xml 中替换成以下内容

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    <filter>
        <filter-name>ssh2</filter-name>
        <filter-class>
            org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
        </filter-class>
    </filter>
    <filter-mapping>
        <filter-name>ssh2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
</web-app>

11、创建 ssh2 数据库 Users 表,字段id(int,仅设置主键)、username(varchar(255))、password(varchar(255))

12、删除lib目录下的 asm-2.2.3.jar、asm-3.1.jar 文件。

13、编写 index.jsp 文件,具体如下

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <base href="<%=basePath%>">

        <title>My JSP 'index.jsp' starting page</title>
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
    </head>

    <body>
        <form action="doRegister.action" method="post">
            账号:
            <input type="text" name="user.username" />
            <br />
            密码:
            <input type="password" name="user.passoword" />
            <br />
            <input type="submit" value="注册" />
        </form>
    </body>
</html>

14、搭建 Tomcat 并启动,看样子问题不大,教程就此结束。

2011-12-19 15:56:14 org.apache.catalina.core.AprLifecycleListener init
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\MyEclipse 6.5\bin;D:\java resource\apache-tomcat-6.0.33\bin
2011-12-19 15:56:14 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-8080
2011-12-19 15:56:14 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 1123 ms
2011-12-19 15:56:14 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2011-12-19 15:56:14 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.33
2011-12-19 15:56:15 org.apache.catalina.startup.HostConfig deployDescriptor
信息: Deploying configuration descriptor host-manager.xml
2011-12-19 15:56:15 org.apache.catalina.startup.HostConfig deployDescriptor
信息: Deploying configuration descriptor manager.xml
2011-12-19 15:56:15 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory docs
2011-12-19 15:56:15 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory examples
2011-12-19 15:56:15 org.apache.catalina.core.ApplicationContext log
信息: ContextListener: contextInitialized()
2011-12-19 15:56:15 org.apache.catalina.core.ApplicationContext log
信息: SessionListener: contextInitialized()
2011-12-19 15:56:16 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory ROOT
2011-12-19 15:56:16 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory ssh2
log4j:WARN No appenders could be found for logger (org.springframework.util.ClassUtils).
log4j:WARN Please initialize the log4j system properly.
2011-12-19 15:56:17 org.apache.catalina.core.ApplicationContext log
信息: Initializing Spring root WebApplicationContext
2011-12-19 15:56:27 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8080
2011-12-19 15:56:28 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2011-12-19 15:56:28 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/47  config=null
2011-12-19 15:56:28 org.apache.catalina.startup.Catalina start
信息: Server startup in 13407 ms

 

本教程转自北大青鸟成都锦江校区,原文链接http://www.scbdqn.com/course/netjava/3172.html

分享到:
评论

相关推荐

    SSH2完美整合流程.docx

    SSH2完美整合流程主要指的是将Struts2、Hibernate和Spring三个开源框架集成在一起,以构建高效、松耦合的Java Web应用程序。以下是该流程的详细步骤及知识点: 1. **Struts2框架**:Struts2是MVC设计模式的一个实现...

    SSH2完美整合_工作流项目

    SSH2完美整合_工作流项目 SSH2全称为Spring、Struts、Hibernate 2的缩写,这是一种在Java开发中广泛使用的开源框架组合,用于构建高效、可维护的企业级Web应用。Spring作为核心容器,提供了依赖注入(DI)和面向切...

    基于xml的ssh框架整合

    综上所述,基于XML的SSH框架整合是Java开发中的重要技术,它将Struts的MVC设计模式、Spring的IoC/DI和AOP以及Hibernate的ORM完美结合,提供了强大且灵活的开发解决方案。理解并熟练掌握SSH框架的整合,对于提升Java ...

    ssh整合(struts2+hibernate3+spring3)

    ### SSH整合:Struts2 + Hibernate3 + Spring3 SSH框架整合是指将Spring、Struts2和Hibernate三个流行的企业级Java框架结合在一起,构建出一个高效、可扩展、易维护的Web应用程序架构。这种整合充分利用了每个框架...

    Spring+SpringMVC+hibernate完美整合包

    这份"Spring+SpringMVC+hibernate完美整合包"包含了所有必要的文件,可以直接应用于项目中,为开发者省去了配置和整合的麻烦,加快了开发速度。在实际使用时,只需根据具体需求调整配置和代码,即可快速构建出符合...

    SSH简介

    SSH框架通过Spring管理业务逻辑层,Struts2处理控制器逻辑,Hibernate实现数据访问层,完美地体现了三层架构和MVC设计模式的思想。 #### 结论 SSH框架通过整合Spring、Struts2和Hibernate这三个强大的框架,为Java...

    一名初学者关于SSH整合的问题

    2. **Struts框架**:Struts是基于MVC模型的Web应用程序框架,负责处理HTTP请求,控制应用程序的流程,并将数据传递给视图层。它通过Action类来处理用户请求,与业务逻辑交互,并使用Tiles或JSP来展示结果。 3. **...

    SSH整合技术

    在SSH整合中,Struts作为前端控制器,负责处理用户请求,控制应用程序的流程;Hibernate则作为持久化层,处理数据库操作,提供对象关系映射功能;Spring作为中间件,不仅管理着Bean的生命周期,还负责将Struts与...

    Shiro和AJAX完美整合

    Apache Shiro 和 AJAX 的整合是现代 Web 应用程序中常见的需求,特别是在使用 Spring(SSH 框架的一部分)开发企业级应用时。Shiro 是一个强大且易用的 Java 安全框架,提供了身份验证、授权、会话管理和加密等功能...

    Struts、Spring和Hibernate完美整合的可运行实例代码

    这个可运行实例代码提供了SSH整合的具体实现,帮助开发者理解如何将这三个框架协同工作,创建一个完整的Web应用。 Struts是MVC(Model-View-Controller)架构的实现,主要用于控制应用程序的流程,处理用户请求并将...

    搭建ssh框架项目视频

    SSH框架,全称为Struts2、Spring和...通过这个“搭建ssh框架项目视频”,学习者可以跟随视频指导,逐步实践每一个步骤,从而深入了解SSH框架的工作原理和项目构建流程,为将来进行更复杂的Java Web开发打下坚实的基础。

    SSH三大框架经典入门教程 PDF清晰版 只要2C币

    SSH框架集成使用,可以实现数据访问、业务逻辑处理和视图展示的完美结合,提高开发效率,降低项目维护成本。在学习SSH框架的过程中,你需要掌握以下几个关键知识点: 1. Spring框架的基本概念和核心功能,包括IoC...

    社区管理系统(SSH架构)完美测试通过.rar

    总的来说,社区管理系统(SSH架构)是一个利用Java技术栈构建的、经过全面测试的软件解决方案,它整合了Spring的组件管理和AOP、Struts的MVC架构以及Hibernate的ORM功能,为社区的日常运营提供了便捷的数字化工具。...

    关于SSH的一个特别小的例子

    SSH(Struts + Spring + Hibernate)是一个经典的Java Web开发框架,它将MVC设计模式、依赖注入(DI)和面向切面编程(AOP)完美地结合在一起,为开发者提供了强大的后端支持。在这个特别小的例子中,我们将深入探讨...

    SSH集成框架网上商城

    在这个项目中,每个模块都有独立的业务逻辑和服务接口,通过SSH框架进行整合。例如,商品管理可能包括商品的添加、修改、删除以及查询,而用户管理则涉及注册、登录、个人信息管理等。 **6. 界面展示与用户体验** ...

    struts2 hibernate3 spring2

    SSH2的整合意味着这三个框架协同工作,Struts2负责前端请求的处理,Spring负责对象管理和依赖注入,而Hibernate则作为持久层框架,处理数据库交互。这样的组合大大简化了开发过程,提高了代码的可维护性和可测试性。...

    Library_ssh.rar_java mysql 管理系统_ssh mysql_ssh 说明_图书管理系统 Java_管理

    《图书管理系统——SSH与MySQL的完美融合》 在IT领域,开发高效且用户友好的管理系统是常见的需求。这里我们探讨的是一款基于Java和MySQL技术的图书管理系统,它利用了Struts(S)、Hibernate(H)和Spring(S)三...

    SSH所需的包(第二部份)

    这三大框架的集成,通常称为SSH整合,能够实现数据访问、业务逻辑处理和用户界面的完美对接。Spring作为整体架构的控制器,负责管理对象的生命周期和依赖关系;Struts处理HTTP请求,控制应用流程,提供视图与控制的...

    ssh集成项目,小项目,购物车

    SSH是Spring、Struts2和Hibernate三个框架的首字母缩写,它们分别是控制层、表现层和持久层的最佳实践组合,旨在简化企业级应用的开发流程。 **Spring框架** 是整个应用的核心,它提供了依赖注入(DI)和面向切面...

Global site tag (gtag.js) - Google Analytics