SSH的简单入门体验(Struts2.1+Spring3.1+Hibernate4.1)- 查询系统(上)

所谓SSH,指的是struts+spring+hibernate的一个集成框架,它是目前较流行的一种Web应用程序的开源框架。

集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。(摘自百度百科)

毕业实习布置了一个利用SSH框架做一个查询系统的作业,结果跟驾校科目三的考试冲突了,很悲剧的没有赶上第一次的检查作业,只能等国庆后再去补交了。我从SSH框架的布置到系统的简单实现一共花了三天的时间,里面的概念还不是很明白,只是知道怎么做而已。写下这篇文章也是为了以后重新入门SSH的时候有个入门介绍,防止以后还要从头开始学起(虽然觉得以后如果要写SSH的项目的话肯定要重新系统的学习一遍,无视无视~)

一、准备工具

  1. MyEclipse2014GA版本
  2. MySql5.6 和 其驱动包
  3. Tomcat 8

我这里提供一下MyEclipse的下载链接吧,正好网盘里有(附带破解),其他的工具请大家自行斟酌,因为MyEclipse已经自带数据库和Tomcat了,大家可以使用自带的工具。我这里是使用了上述的工具。

MyEclipse下载链接:百度网盘

MyEclipse破解文件下载链接:百度网盘

二、新建Web项目,导入SSH

  1. 首先第一步是新建一个web project的项目

    点击next,下一步

    点击finish,完成web project的创建。
  2. 接下来我们导入SSH框架所需的文件
    首先在CnDemo项目根文件夹上右键

    我没记错的话myeclipse早几期的版本菜单是add xxxx的样式,大家对号入座就行了。
  3. 首先是安装spring框架,选择Install Spring Facet.

    点击finish,这样spring3.1框架就导入进去了。
  4. 添加Hibernate,不过在此之前你要先建立数据库的链接

    这是我的数据库连接,使用了mysql。在Connection Url这里要填写你要连接的域名和数据库名以及用户名和密码。要导入对应的数据库驱动jar文件才行。最后不要忘记测试一下数据库是否能用。
  5. 导入Hibernate框架,选择Install Hibernate Facet.


    点击完成,创建完毕。
  6. 最后是导入struts框架,选择Install Apache Struts(2.x) Facet.

    点击完成就好了。

以上这样配置,就算基本上把SSH最简单的框架给搭建好了。

三、关于SSH的配置文件

其中最重要的是这两个配置文件
spring配置文件:applicationContext.xml。里面存放实体来控制整个系统。
struts配置文件:struts.xml。里面存放action的映射。

  1. 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" xmlns:p="http://www.springframework.org/schema/p"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd"
        xmlns:tx="http://www.springframework.org/schema/tx">
    
        <!-- 数据库实体 -->
        <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
            <property name="driverClassName" value="com.mysql.jdbc.Driver">
            </property>
            <property name="url" value="jdbc:mysql://localhost/querydb"></property>
            <property name="username" value="root"></property>
            <property name="password" value="shen"></property>
        </bean>
    
        <!-- hibernate实体 -->
        <bean id="sessionFactory"
            class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
            <property name="dataSource">
                <ref bean="dataSource" />
            </property>
            <property name="hibernateProperties">
                <props>
                    <prop key="hibernate.dialect">
                        org.hibernate.dialect.MySQLDialect
                    </prop>
                    <!-- hibernate 数据的更新方式 -->
                    <prop key="hibernate.hbm2ddl.auto">update</prop>
                    <!-- 解决no session found -->
                    <!--使用getCurrentSession()需要加入如下配置 -->
                    <prop key="hibernate.current_session_context_class">thread</prop>
                    <!-- hibernate分页出现 ResultSet may only be accessed in a forward direction需要设置hibernate结果集滚动 -->
                    <!-- <prop key="jdbc.use_scrollable_resultset">false</prop> -->
                </props>
    
            </property>
    
            <!-- 配置实体Hibernate的描述文件 -->
            <property name="mappingResources">
                <list>
                    <!-- 实体类列表 -->
                    <value>cpacm/pojo/Archive.hbm.xml</value>
                </list>
            </property>
        </bean>
    
        <!-- 控制层 struts实体(Action实体) -->
        <bean id="ArchiveAction" class="cpacm.action.ArchiveAction" scope="prototype">
            <property name="archiveService" ref="ArchiveService"></property>
        </bean>
    
        <!-- 逻辑层 service -->
        <bean id="ArchiveService" class="cpacm.service.ArchiveService">
            <property name="archiveDao" ref="ArchiveDao"></property>
        </bean>
    
        <!-- 数据层,用于数据库的操作 -->
        <bean id="ArchiveDao" class="cpacm.dao.ArchiveDao">
            <property name="sessionFactory" ref="sessionFactory" />
        </bean>
    
        <!-- spring自带的事物管理 -->
        <bean id="transactionManager"
            class="org.springframework.orm.hibernate4.HibernateTransactionManager">
            <property name="sessionFactory" ref="sessionFactory" />
        </bean>
        <tx:annotation-driven transaction-manager="transactionManager" />
    
        <bean id="txManager"
            class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource" />
        </bean>
        <tx:advice id="txAdvice" transaction-manager="txManager">
            <tx:attributes>
                <tx:method name="save*" propagation="REQUIRED" />
                <tx:method name="add*" propagation="REQUIRED" />
                <tx:method name="create*" propagation="REQUIRED" />
                <tx:method name="insert*" propagation="REQUIRED" />
                <tx:method name="findByQuery*" propagation="REQUIRED" />
                <tx:method name="*" read-only="true" />
            </tx:attributes>
        </tx:advice>
    
        <aop:config proxy-target-class="true">
            <aop:advisor advice-ref="txAdvice"
                pointcut="execution(* net.noday..service..*.*(..))" />
    
        </aop:config>
    
    </beans>

    其中,bean的注入基本方法为


  2. struts.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
    <struts>
        <!-- action由spring进行实例化 -->
        <constant name="struts.objectFactory" value="spring" />
    
        <constant name="struts.devMode" value="true"></constant>
    
        <package name="MySSH" extends="struts-default">
            <!-- <action name="test" class="cpacm.struts2.demoAction" method="execute">
                <result name="success">/Strut2Test.jsp</result> </action> -->
    
            <!-- 全局的通用的action -->
            <global-results>
                <result name="error">/error.jsp</result>
                <!-- <result name="success">/success.jsp</result> -->
            </global-results>
    
            <!-- Action列表,其中class=xxx为spring中的id -->
            <action name="query" class="ArchiveAction" method="Query">
                <result name="Query">/frame/ArcDataGrid.jsp</result>
            </action>
            <action name="tag" class="ArchiveAction" method="toUpdate">
                <result name="toUpdate">/frame/ArcUpdate.jsp</result>
            </action>
            <action name="update" class="ArchiveAction" method="Update">
                <result name="success">/frame/ArcDataGrid.jsp</result>
            </action>
            <action name="delete" class="ArchiveAction" method="Delete">
                <result name="success">/frame/ArcDataGrid.jsp</result>
            </action>
            <action name="queryByclassId" class="ArchiveAction" method="QueryByclassID">
                <result name="success">/frame/ArcDataGrid.jsp</result>
            </action>
            <action name="ArcAdd" class="ArchiveAction" method="Add">
                <result name="success">/frame/ArcAddData.jsp</result>
            </action>
        </package>
    
    </struts>


以上基本就是配置的全部过程了,可能很简单,但也是五脏俱全了。篇幅有限,接下来会在下一篇讲述怎么建一个完整的系统。

时间: 2024-10-11 04:13:03

SSH的简单入门体验(Struts2.1+Spring3.1+Hibernate4.1)- 查询系统(上)的相关文章

SSH的简单入门体验(Struts2.1+Spring3.1+Hibernate4.1)- 查询系统(下)

我们继续吧,SSH最大的优点就是实现的系统的松耦合,能够将后台和前台有机的分离开来. 一.目录结构 一个好的程序要有一个好的开始.我们先来看看整个目录结构吧 主要的是三层架构概念,或者说是mvc的概念. 二.Hibernate实体类 首先大家要懂得Hibernate运行的机制,简单的说就是你建一个类,然后将这个类映射到Hibernate中作为数据库的一张表,通过对这个类的操作来进行数据库的增删改查.具体的概念可以上网度查找资料或者通过书籍来学习.由于我也没有系统的学过,这里就不便详细的阐述了.

MyEclipse搭建SSH框架 Struts2.1+Spring3.0+hibernate3.3

1.         配置Tomcat 配置Tomcat所在路径 配置Tomcat使用JDK版本 如果Tomcat为7.0则添加Tomcat-juli.jar包 2.         new一个web project. 2.右键项目,为项目添加Struts支持. 点击Finish.src目录下多了struts.xml配置文件. 3.使用MyEclipse DataBase Explorer建立数据源. new一个数据源.填入数据源信息. jdbc:Oracle:thin:@localhost(数

Struts2+Hibernate3+Spring3 整合

Struts2+Hibernate3+Spring3 整合 一.SSH的下载 首先SSH的下载就已经是一个难点.SSH三个地方同时推出各自的新技术,已经要求利用Maven完成其版本的同步.毕竟spring的版本,决定其能整合什么版本的Struts与hibernate.Spring3.0.5就不能整合Hibernate4.x了.因此本文选取的SSH的版本,分别为struts 2.3.20 GA.Hibernate3.6.10Final.Spring3.0.5,最后有一个log4j,因为Spring

整合Struts2.2+Spring3.0

2014-08-08 学习李刚老师的j2ee整合struts2+spring3 JAR包链接 http://download.csdn.net/detail/u010393809/7732235 项目outline 1.引入JAR包,上面已经贴了JAR包下载链接 2.配置Struts2,只需要引入struts2必需的那几个包,此时暂时不要引入struts2-spring-plugin-2.2.1.jar,不然会抛出javaPointerNull的异常 配置web.xml; 配置struts.xm

【java开发系列】—— spring简单入门示例

1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控制反转\依赖注入,和AOP面向切面编程. 1 控制反转IOC\依赖注入DI,因为翻译的不同,因此有两个名字. 控制反转意思就是说,当我们调用一个方法或者类时,不再有我们主动去创建这个类的对象,控制权交给别人(spring). 依赖注入意思就是说,spring主动创建被调用类的对象,然后把这个对象注入到我们

响应式网页设计简单入门(强烈推薦!!!!)

响应式网页设计简单入门 Overview: 构造基本的HTML页面 动态加载样式表 Viewport 字体缩放 侧边栏 导航菜单 图片自适应 其他 总结 说到响应式网页设计(Responsive web design),最近在谷歌加上碰到个奇葩贴子,通过一个原始到无法再简单的网页Motherfucking Website及满屏幕的fuck道出了网页设计的真谛,这孩子不是个激进分子就是个报复社会型的货没错,虽然整篇文章就像是泼妇骂街,但我特么是笑着读完的.. 统计了下全文共用Fuck (包括fuc

菜鸟学SSH(十六)——Struts2内部是如何工作的

前面说完了Spring.Hibernate,很自然今天轮到struts了.struts的核心原理就是通过拦截器来处理客户端的请求,经过拦截器一系列的处理后,再交给Action.下面先看看struts官方的工作原理图: 图1 struts原理图 简单分析一下:首先客户端发来HttpServletRequest请求,传递给FilerDispatcher(ActionMapper是访问静态资源(struts的jar文件等)时用的,平时很少用),然后FilerDispatcher会为我们创建一个Acti

Swift简单入门教程:30分钟玩转Swift

通常来说,编程语言教程中的第一个程序应该在屏幕上打印“Hello, world”.在 Swift 中,可以用一行代码实现:    println("hello, world") 如果你写过 C 或者 Objective-C 代码,那你应该很熟悉这种形式——在 Swift 中,这行代码就是一个完整的程序.你不需要为了输入输出或者字符串处理导入一个单独的库.全局作用域中的代码会被自动当做程序的入口点,所以你也不需要main函数.你同样不需要在每个语句结尾写上分号. 这个教程会通过一系列编程

openBSD简单入门

//**安全是一个过程,而不是一个产品,安全比性能要重要.**// ----------------------------------- 一.前言 二.环境 三.配置网络及镜像源 四.packages安装 五.添加普通用户 六.ports安装 ----------------------------------- 一.前言 OpenBSD是一个多平台的,基于4.4BSD的类UNIX操作系统,是BSD衍生出的三种免费操作系统(另外两种是NetBSD和FreeBSD)之一,被称为世界上最安全的操作