写了好多篇的Android代码了,在写几篇关于Java的,博客园里肯定都是java的前辈啊,写的不好多给意见。

SSH,什么是SSH呢,Struts+Spring+Hibernate,这三个就是整个的SSH了。

集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。

,
Jar包的链接:链接:http://pan.baidu.com/s/1gfv7EYB 密码:qrpf
如果链接失效了,发我的邮箱,我给你们发送dingchao7323@qq.com

需要的Jar包:

首先看配置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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.1.xsd http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd"> <!-- Spring和Hibernate的整合分为两种
第一种:加载整个hibernate配置文件
第二种:首先配置数据与然后配置会话工厂
-->
<!-- 这个是需要hibernate.cfg。xml文件 -->
<!-- 第一种配置:加载整个hibernate配置文件 1
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
</bean>
-->
<!-- ==============================================第二种方式===================================================== -->
<!-- 第二种不要sessionFactory 2 2 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="url" value="jdbc:oracle:thin:@localhost:1521:****"></property>
<property name="driverClassName" value="oracle.jdbc.OracleDriver"></property>
<property name="username" value="****"></property>
<property name="password" value="****"></property>
</bean>
<!-- 加载数据库连接 2-->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<!-- 加载实体类配置文件 -->
<!-- 加载工具例如 show_sql -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
<!-- 加载实体类配置文件 -->
<!-- 第二种的 另外另种配置实体类方式 1 这一个是找的具体的***。hbm.xml文件-->
<!-- <property name="mappingResources">
<list>
<value>com/dc/entity/Dept.hbm.xml</value>
<value>com/dc/entity/Emp.hbm.xml</value>
</list>
</property> -->
<!-- 第二种的 另外另种配置实体类方式 2 这个是找的所在的包 -->
<property name="mappingDirectoryLocations">
<list>
<value>classpath:com/dc/entity/</value>
</list>
</property>
</bean>
<!-- ==============================================第二种方式===================================================== --> <!-- 只是上边不一样,这俩个都有 -->
<!-- hibernateTemplate -->
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean> <!-- ============================Dao的配置 ============================-->
<bean id="empDao" class="com.dc.dao.impl.SaleOrderLineDaoImpl">
<property name="hibernateTemplate" ref="hibernateTemplate"></property>
</bean>
<!-- SaleOrderDaoImpl -->
<bean id="SaleOrderDao" class="com.dc.dao.impl.SaleOrderDaoImpl">
<property name="hibernateTemplate" ref="hibernateTemplate"></property>
</bean> <!-- ============================Service的配置============================ -->
<bean id="empService" class="com.dc.service.impl.SaleOrderLineServiceImpl">
<property name="soldao" ref="empDao"></property>
</bean>
<!-- SaleOrderServiceImpl -->
<bean id="SaleOrderService" class="com.dc.service.impl.SaleOrderServiceImpl">
<property name="sodao" ref="SaleOrderDao"></property>
</bean> <!-- ============================Action的配置============================ -->
<bean id="empAction" class="com.dc.action.SaleOrderLineAction">
<property name="solSer" ref="empService"></property>
</bean> <bean id="getInfoById" class="com.dc.action.SaleOrderLineAction">
<property name="solSer" ref="empService"/>
</bean> <bean id="getMaxOdrId" class="com.dc.action.SaleOrderAction">
<property name="soSer" ref="SaleOrderService"></property>
</bean>
<bean id="addSaleOrder" class="com.dc.action.SaleOrderAction">
<property name="soSer" ref="SaleOrderService"></property>
</bean> <!-- ==============================================配置事物管理器===================================================== -->
<!-- 配置事务管理器 -->
<bean id="txTran" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 声明式事物 -->
<!-- <tx:method name="" read-only="false" propagation="REQUIRED"></tx:method> read-only查询时使用 propagation修改时使用 -->
<tx:advice id="txAdvice" transaction-manager="txTran">
<tx:attributes>
<tx:method name="save*" propagation="REQUIRED"/>
<tx:method name="insert*" propagation="REQUIRED"/>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="up*" propagation="REQUIRED"/>
<tx:method name="dl*" propagation="REQUIRED"/>
<!-- 下面的是查询的 -->
<tx:method name="get*" read-only="true"/>
<tx:method name="find*" read-only="true"/>
<tx:method name="ser*" read-only="true"/>
<tx:method name="load*" read-only="true"/> </tx:attributes>
</tx:advice> <!-- -->
<aop:config>
<aop:pointcut expression="execution(* com.dc.dao.*.*(..))" id="pointcut"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut"/>
</aop:config> </beans>

struts.xml的配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts> <!-- 该属性设置Struts 2是否支持动态方法调用,该属性的默认值是true。如果需要关闭动态方法调用,则可设置该属性为false。 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<!-- 该属性设置Struts 2应用是否使用开发模式。如果设置该属性为true,则可以在应用出错时显示更多、更友好的出错提示。该属性只接受true和flase两个值,该属性的默认值是false。通常,应用在开发阶段,将该属性设置为true,当进入产品发布阶段后,则该属性设置为false。 -->
<constant name="struts.devMode" value="true" />
<constant name="struts.i18n.encoding" value="UTF-8" />
<constant name="struts.configuration.xml.reload" value="true" />
<constant name="strus.objectFactory" value="spring"></constant>
<package name="default" namespace="/" extends="struts-default"> <action name="show" class="empAction">
<result name="success">findAllSaleOrderLine.jsp</result>
</action>
<!-- <action name="getSaleOrderLineInfoByoolId" class="com.dc.action.SaleOrderLineAction"
method="getInfoById"> <result name="success">getSaleOrderLineInfoByoolId.jsp</result>
</action> --> <!-- 不建议使用这个,配合上边的constant -->
<action name="getSaleOrderLineInfoByoolId" class="getInfoById"
method="getInfoById">
<result name="success">getSaleOrderLineInfoByoolId.jsp</result>
</action> <action name="getMaxOdrId" class="getMaxOdrId" method="getMaxOdrId">
<result name="success">addSaleOrder.jsp</result>
</action> <action name="addSaleOrder" class="addSaleOrder" method="addSaleOrder">
<result name="success" type="redirectAction">show</result>
<result name="error" type="redirectAction">getMaxOdrId</result>
<!-- <result name="input">index.jsp</result> -->
</action>
</package> </struts>

web.xml的配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>Spring_04_Sale</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param> <listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<filter>
<filter-name>OpenSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>com.dc.util.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>

Java的SSH框架整合的更多相关文章

  1. SSH框架整合

    SSH框架整合 一.原理图 action:(struts2) 1.获取表单的数据 2.表单的验证,例如非空验证,email验证等 3.调用service,并把数据传递给service Service: ...

  2. dwr与ssh框架整合教程

    (1)dwr与ssh框架整合教程dwr框架介绍. DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开 发人员开发包含AJ ...

  3. Spring+Hibernate+Struts(SSH)框架整合

    SSH框架整合 前言:有人说,现在还是流行主流框架,SSM都出来很久了,更不要说SSH.我不以为然.现在许多公司所用的老项目还是ssh,如果改成流行框架,需要成本.比如金融IT这一块,数据库dao层还 ...

  4. MVC+Spring.NET+NHibernate .NET SSH框架整合 C# 委托异步 和 async /await 两种实现的异步 如何消除点击按钮时周围出现的白线? Linq中 AsQueryable(), AsEnumerable()和ToList()的区别和用法

    MVC+Spring.NET+NHibernate .NET SSH框架整合   在JAVA中,SSH框架可谓是无人不晓,就和.NET中的MVC框架一样普及.作为一个初学者,可以感受到.NET出了MV ...

  5. SSH框架整合过程总结

    ---------------------siwuxie095                                 SSH 框架整合过程总结         (一)导入相关 jar 包(共 ...

  6. SSH框架整合思想

    --------------------siwuxie095                                 SSH 框架整合思想         1.SSH 框架,即 Struts2 ...

  7. ssh框架整合之登录以及增删改查

    1.首先阐述一下我用得开发工具,myeclipse2017+oracle,所以我的基本配置步骤可能不一样,下面我用几张图来详解我的开发步骤. ---1先配置structs (Target 选择apac ...

  8. J2EE进阶(十)SSH框架整合常见问题汇总(一)

    SSH框架整合常见问题汇总(一) 前言 以下所列问题具有针对性,但是遇到同类型问题时均可按照此思路进行解决. HTTP Status 404 - No result defined for actio ...

  9. SSH框架整合的其它方式

    --------------------siwuxie095 SSH 框架整合的其它方式 1.主要是整合 Spring 框架和 Hibernate 框架时,可以不写 Hibernate 核心配置文件: ...

随机推荐

  1. USB总线标准

    1.USB总线类型: OHCI(Open Host Controller Interface)是支持USB1.1的标准,但它不仅仅是针对USB,UHCI(Universal Host Controll ...

  2. C++对象生存期&&static

    生存期,即从诞生到消失的时间段,在生存期内,对象的值或保持不变,知道改变他的值为止.对象生存期分为静态生存期和动态生存期两种. 静态生存期 指对象的生存期与程序运行期相同.在namespace中声明的 ...

  3. 全球第一免费开源ERP Odoo WMS库存管理高级路线设置详解

    概览 路线就是推规则和拉规则的合并整理.Odoo可以配置高级推/拉路线的配置, 例如 : 管理产品的制造链条 为每个产品管理默认位置 根据业务需求在仓库中定义路线, 例如质检, 售后和供应商退货 租用 ...

  4. arcgis api 4.x for js 结合 react 入门开发系列初探篇(附源码下载)

    你还在使用 JQuery 或者 Dojo 框架开发 arcgis api 4.x for js 吗?想试试模块化开发吗?随着前端技术的发展,arcgis api 4.x for js 也有了结合 re ...

  5. ArcPy 批量给shp字段赋值

    工作中需要做大量图层的拼接,为了在拼接完成后还能知道原始数据文件是什么,所以写了个Python脚本对每个图层的SOURCE字段进行赋值. 附上Python代码: # -*- coding: utf-8 ...

  6. js实现在当前页面搜索高亮显示字的方法

    在html页面上,有时候会遇到一些检索高亮显示的问题,具体用js是实现的方式,代码展示. Jsp页面设置方式 <li class="pull-left" id="s ...

  7. golang中的defer

    1.defer的作用 defer 语句会将函数推迟到外层函数返回之后执行. 即defer后面的函数在defer语句所在的函数执行结束的时候会被调用 2.defer的语法 defer后面必须是函数调用语 ...

  8. 一文搞懂RAM、ROM、SDRAM、DRAM、DDR、flash等存储介质

    一文搞懂RAM.ROM.SDRAM.DRAM.DDR.flash等存储介质 存储介质基本分类:ROM和RAM RAM:随机访问存储器(Random Access Memory),易失性.是与CPU直接 ...

  9. Javascript高级编程学习笔记(95)—— WebGL(1) 类型化数组

    WebGL webgl 是针对 canvas 的 3D上下文,与其它Web技术不同,WebGL并非是W3C制定的标准,而是由 Khronos Group 制定的. 类型化数组 WebGL所涉及的复杂运 ...

  10. ubuntu 16.04安装perf

    ljc@ubuntu:~$ perf 程序“perf”尚未安装. 您可以使用以下命令安装: sudo apt install linux-tools-common ljc@ubuntu:~$ sudo ...