SSH环境通用整合配置(Spring2.5+Hibernate3.3+Struts1.3)

 SSH整合通用

准备:

需要:
Spring2.5+Hibernate3.3+Struts1.3


❶hibernate核心安装包下的:
hibernate3.jar
lib\required\*.jar
lib\optional\ehcache-1.2.3.jar
hibernate 注解安装包下的
lib\test\slf4j-log4j12.jar

 

❷Spring安装包下的
dist\spring.jar
dist\modules\spring-webmvc-struts.jar
lib\jakarta-commons\commons-logging.jar、commons-dbcp.jar、commons-pool.jar
lib\aspectj\aspectjweaver.jar、aspectjrt.jar
lib\cglib\cglib-nodep-2.1_3.jar
lib\j2ee\common-annotations.jar
lib\log4j\log4j-1.2.15.jar

 

❸Struts
下载struts-1.3.8-lib.zip,需要使用到解压目录下的所有jar,建议把jstl-1.0.2.jar和standard-1.0.2.jar更换为1.1版本。Spring中已经存在一个antlr-2.7.6.jar,所以把struts中的antlr-2.7.2.jar删除,避免jar冲突。

 

❹数据库驱动jar 

 

 

开始配置:

一、web配置

web.xml

<?xml version="1.0" encoding="GBK"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
version="2.5" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">


  <display-name />
  <!-- 路径为目录时,默认的读取的文件,默认为index.jsp -->
  <welcome-file-list>
    <welcome-file>_.jsp</welcome-file>
  </welcome-file-list>
  
  
  <!-- SSH整合必须 -->
  <!-- 整合Struts1.x -->
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value><!-- 引用Struts1.x的配置文件 -->
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>3</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>3</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
  </servlet>
  
   <!-- Struts1.x拦截特定后缀的请求路径,进行action处理 -->
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <!-- end-整合Struts1.x -->
  
   <!-- SSH整合必须 -->
   <!-- 整合Spring2.5 -->
   <context-param>
     <param-name>contextConfigLocation</param-name>
     <param-value>classpath:applicationContext.xml</param-value><!-- 引用Sping的配置文件 -->
   </context-param>
   <listener>
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
   </listener>
  
 	<!-- OpenSessionInViewFilter,解决Spring和Hibernate整合后,读取数据库时Hibernate的session已经关闭的问题 -->
	<filter>
		<filter-name>hibernateFilter</filter-name>
		<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>hibernateFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<!-- end-整合Spring2.5 -->
	
	<!-- 自定义的拦截器,拦截器定义越靠前,优先级越高 -->
	<!-- 使用Spring提供的编码转换,解决乱码问题 -->
	<filter>
		<filter-name>CharacterEncodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>GB18030</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>CharacterEncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	
	<!-- 分页拦截器,用以读取当前页的显示行数和首行的偏移量 -->
	<filter>
		<filter-name>PaginateFilter</filter-name>
		<filter-class>com.oa.rs.PaginateFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>PaginateFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	
	
	<!-- 整合Javascript类库DWR -->
	<servlet>
		<servlet-name>dwr-invoker</servlet-name>
		<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
		<init-param>
			<param-name>debug</param-name>
			<param-value>true</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
	    <servlet-name>dwr-invoker</servlet-name>
	    <url-pattern>/dwr/*</url-pattern>
	 </servlet-mapping>
	  
  
</web-app>

 

 

二、Struts配置

struts-config.xml

<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">

<struts-config>

  <!-- ActionForm类,包含request的参数变量 -->
  <form-beans >
     <form-bean name="userForm" type="com.oa.struts.action.form.UserActionForm" />
     <form-bean name="orgForm" type="com.oa.struts.action.form.OrgActionForm" />
     <form-bean name="personForm" type="com.oa.struts.action.form.PersonActionForm" />
     <form-bean name="moduleForm" type="com.oa.struts.action.form.ModuleActionForm" />
   </form-beans>
	
  <!-- 全局异常 -->
  <global-exceptions />
  
  <!-- 全局转向 -->
  <global-forwards >
  	<forward name="public_add_success" path="/common/public_add_success.jsp"></forward>
  	<forward name="public_update_success" path="/common/public_update_success.jsp"></forward>
  	<forward name="public_delete_success" path="/common/public_delete_success.jsp"></forward>
  	<forward name="login" path="/login.jsp"></forward>
  </global-forwards>
  
  <!-- action类关联配置 -->
  <action-mappings >
  	<!-- name:  所引用ActionForm,
  		 parameter:   方法标识名,标识名对应的值是Action类所使用的方法(函数)名,	如parameter="method",请求参数method=addUser,即使用addUser方法
  		 path:   关联请求的url,如user.do,
  		 scope:    actionForm的生存范围 
  		 type:   关联的Action类,和Spring整合后,则统一使用代理类org.springframework.web.struts.DelegatingActionProxy,使由Spring管理Action类
  		 forward name,path:  转向的路径标识名和路径
  	-->
    <action
	      name="userForm"
	      parameter="method"
	      path="/user"
	      scope="request"
	      type="org.springframework.web.struts.DelegatingActionProxy">
	      	<forward name="index"  path="/user/index.jsp"></forward>
	      	<forward name="add"  path="/user/add_input.jsp"></forward>
	      	<forward name="update"  path="/user/update_input.jsp"></forward>
	      	<forward name="user_role_list"  path="/user/user_role_list.jsp"></forward>
	      	<forward name="user_role_input"  path="/user/user_role_input.jsp"></forward>
      </action>
      
      <action
	      name="loginForm"
	      parameter="method"
	      path="/login"
	      scope="request"
	      type="org.springframework.web.struts.DelegatingActionProxy">
	      	<forward name="index"  path="/success.jsp"></forward>
      </action>
      
       <action
	      name="orgForm"
	      parameter="method"
	      path="/org"
	      scope="request"
	      type="org.springframework.web.struts.DelegatingActionProxy">
	      	<forward name="index"  path="/org/index.jsp"></forward>
	      	<forward name="add_input"  path="/org/add_input.jsp"></forward>
	      	<forward name="update_input"  path="/org/update_input.jsp"></forward>
	      	<forward name="success"  path="/org.do?method=index"></forward>
	      	<forward name="select"  path="/org/select_org.jsp"></forward>
      </action>
      
      <action
	      name="personForm"
	      parameter="method"
	      path="/person"
	      scope="request"
	      type="org.springframework.web.struts.DelegatingActionProxy">
	      	<forward name="index"  path="/person/index.jsp"></forward>
	      	<forward name="add"  path="/person/add_input.jsp"></forward>
	      	<forward name="update"  path="/person/update_input.jsp"></forward>
      </action>
      
      <action
	      name="moduleForm"
	      parameter="method"
	      path="/module"
	      scope="request"
	      type="org.springframework.web.struts.DelegatingActionProxy">
	      	<forward name="index"  path="/module/index.jsp"></forward>
	      	<forward name="add"  path="/module/add_input.jsp"></forward>
	      	<forward name="update"  path="/module/update_input.jsp"></forward>
      </action>
      
  </action-mappings>
  <!-- 关联资源文件 -->
  <message-resources parameter="com.oa.rs.resources.properties" />
</struts-config>

 

 三、Spring配置

Spring文件配置:

这里使用分开配置,然后一起导入同一个文件方式

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"
       xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">


	<import resource="applicationContext-config.xml" />
	<import resource="applicationContext-action.xml" />
	<import resource="applicationContext-implement.xml" />
</beans>

 

1)数据源、事务管理及其他集成配置

applicationContext-config.xml

<?xml version="1.0" encoding="GBK"?>

<!-- config beans -->

<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-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">



<!-- sessionFactory配置,有多种方法,这里采用引用Hiberate的配置文件方式 -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
	<property name="configLocation"  >
		<value>classpath:hibernate.cfg.xml</value>
	</property>
</bean>
<!-- 事务管理依赖注入 -->
<bean id="transationManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
	<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 事务管理配置 -->
<tx:advice id="txAdvice" transaction-manager="transationManager">
	<tx:attributes>
		<tx:method name="*" propagation="REQUIRED"/>
		<!--<tx:method name="add*" propagation="REQUIRED"/>
		<tx:method name="del*" propagation="REQUIRED"/>
		<tx:method name="update*" propagation="REQUIRED"/>
		<tx:method name="*" read-only="true"/>
	--></tx:attributes>
</tx:advice>
<!-- 事务管理切入点 -->
<aop:config>
	<aop:pointcut expression="execution (* com.oa.manager.*.*(..))"  id="allManagerMethod"/>
	<aop:advisor advice-ref="txAdvice" pointcut-ref="allManagerMethod"/>
</aop:config>

<!-- jbpm工作流配置 -->
	<bean id="jbpmConfiguration" class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean">
		<property name="configuration" value="classpath:jbpm.cfg.xml"></property>
	</bean>

</beans>

  

2)继承了HibernateTemplate的*Impl实现类,注入包含了数据源的sessionFactory,使可以进行数据库连接和操作

applicationContext-implement.xml

<?xml version="1.0" encoding="UTF-8"?>

<!-- Implement IoC -->

<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"
       xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">


<!--user beans -->
<bean id="UserManagerImpl" class="com.oa.manager.impl.UserManagerImpl">
	<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="OrgManagerImpl" class="com.oa.manager.impl.OrgManagerImpl">
	<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="PersonManagerImpl" class="com.oa.manager.impl.PersonManagerImpl">
	<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="ModuleManagerImpl" class="com.oa.manager.impl.ModuleManagerImpl">
	<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="RoleManagerImpl" class="com.oa.manager.impl.RoleManagerImpl">
	<property name="sessionFactory" ref="sessionFactory" />
</bean>

</beans>

 

3)action类中所定义的一些业务接口类实现依赖注入

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>

<!-- action beans -->
<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"
       xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">

<!-- action beans -->
<bean name="/user" class="com.oa.struts.action.UserAction">
	<property name="iu" ref="UserManagerImpl"/>
	<property name="ip" ref="PersonManagerImpl"/>
	<property name="ir" ref="RoleManagerImpl"/>
</bean>
<bean name="/login" class="com.oa.struts.action.LoginAction">
	<property name="iu" ref="UserManagerImpl"/>
</bean>
<bean name="/org" class="com.oa.struts.action.OrgAction">
	<property name="io" ref="OrgManagerImpl"/>
</bean>
<bean name="/person" class="com.oa.struts.action.PersonAction">
	<property name="ip" ref="PersonManagerImpl"/>
</bean>
<bean name="/module" class="com.oa.struts.action.ModuleAction">
	<property name="im" ref="ModuleManagerImpl"/>
</bean>
</beans>

 

 四、Hibernate配置

Hibernate配置:

<?xml version='1.0' encoding='GBK'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>

	<session-factory>
		<property name="connection.driver_class">com.mysql.jdbc.Driver</property> <!-- 连接mysql的jdbc驱动 -->
		<!-- <property name="connection.url">jdbc:mysql://192.168.1.19:3306/oa2?userUnicode=true&amp;characterEncoding=utf-8</property> -->
		<property name="connection.url">jdbc:mysql://192.168.1.28:3306/new_oa2</property> <!-- 连接mysql的url -->
		<property name="connection.username">root</property> <!-- 连接mysql的用户 -->
		<property name="connection.password">123qwe</property> <!-- 连接mysql的密码 -->
		<property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 操作时的方言 -->
		<property name="show_sql">true</property> <!-- 显示sql操作语句 -->
		<property name="hbm2ddl.auto">update</property> <!-- 采用更新表方式,不存在表示创建,存在表时更新 -->
		
		<!-- 数据池方式暂略 -->
		<!-- ... -->
		
		<!-- 二级缓存 -->
		<property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
		
		<!-- POJO映射 -->
		<mapping resource="com/oa/model/User.hbm.xml" />
		<mapping resource="com/oa/model/Organization.hbm.xml" />
		<mapping resource="com/oa/model/Person.hbm.xml" />
		<mapping resource="com/oa/model/Module.hbm.xml" />
		
	</session-factory>

</hibernate-configuration>

  

【后端】主流后端语言:JAVA、C、C++、GO、PYTHON 软件开发领域,语言本身在各自领域都有适用场景,有许多流行的编程语言可供选择,每种语言都有其独特的特点和适用场景。 阅读详情

相关推荐

【可穿戴算法开发】-PPG信号检测方法

文章目录一、PPG(光电容积脉搏波法)信号的检测原理二.PPG技术目前存在的问题(挑战)三. **心电信号产生的原理** 随着经济的发展,在人们生活水平提高的同时,高脂肪摄入和低运动量成为了人们普遍的生活模式,近年来高血压、高血脂已经发展为危险性最高的病症。心电、血压、血氧等生理参数是预防和分析心血管疾病的重要生理参数。 常用的心电测量仪器有:多导ECG心电图仪、PPG心率检测器、心率带等; 常...

wxq_1993的博客 2万+

SSH通用配置

通用配置 spring与hibernate配置文件合并 [color=blue]applicationContext.xml[/color] [code="xml"] PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATIO...

howRV 182

jason-2卫星介绍及其数据下载

两台仪器发射脉冲宽度均为105.6μs,带宽320MHz(C频段)和320/100MHz(Ku频段),脉冲重复频率1800Hz(Ku频段)和300Hz(C频段),功率78W,数据传输速率22.5kbit/s。共发射了3颗卫星(Jason - 1/2/3),星上有效载荷均主要为雷达高度计和微波辐射计。Jason - 1卫星主要有效载荷为波塞冬 - 2和“贾森微波辐射计”,Jason - 2卫星进行了改进,主要携带了波塞冬 - 3和先进微波辐射计,此外,Jason - 2卫星还携带了“多里斯”系统。

beautyaaaa的博客 1606

SSH之IDEA2017整合Struts2+Spring+Hibernate

推荐大家使用maven解决依赖问题,可以省去手动解决依赖的问题,项目参考:链接 摘要 IDEA无疑是Java编程的利器,在下面我们将介绍如何使用IDEA来整合SSH(Struts2 + Spring + Hibernate);介绍將分为三个部分来讲,分别是新建工程,Spring引入并测试, Hibernate引入并测试,Struts2引入并测试; 下面使用的IDEA的版本是2017.1 以下...

kevin的专栏 3万+

深入解析UEFI PEI阶段:PeiCore的三次调用与内存管理机制

本文深入解析UEFI启动流程中的PEI阶段,重点探讨PeiCore的三次调用与内存管理机制。详细介绍了PeiCore在临时内存中的初始化、堆栈切换至永久内存的过程,以及最终交接给DXE阶段的关键步骤,为开发者提供调试技巧与实战案例,助力解决UEFI启动问题。

weixin_28452161的博客 651

EDA环境下的LSF进阶调优:如何为Cadence/VCS等工具正确配置cgroups与daemon starter

本文深入探讨了在EDA环境中如何为Cadence/VCS等工具正确配置LSF的cgroups与daemon starter,解决资源分配与特殊应用兼容性问题。通过详细解析cgroups技术、daemon starter配置及混合资源管理策略,帮助提升LSF集群的效率和稳定性,特别适用于高性能计算和芯片设计场景。

weixin_33724046的博客 461

SSH框架(Struts2+Spring+Hibernate)搭建整合详细步骤

​ 在实际项目的开发中,为了充分利用各个框架的优点,我们通常都会把Spring与其他框架整合在一起使用。本节将针对 SSH(Struts2、Hibernate和 Spring)框架的整合内容进行详细讲解。 ​

unber的博客 2517

封装CTP API为Java SDK

本文介绍了在Windows环境下使用Java调用CTP API的编译实现过程。首先需要准备CTP API SDK、JDK、SWIG和Visual Studio等工具,配置好开发环境。然后通过搭建目录结构、编写SWIG接口文件ctp.i,实现C++到Java的代码转换。文中详细说明了文件目录组织方式,并提供了处理中文乱码的代码示例。通过这一系列步骤,最终将CTP的C++接口转换为Java可调用的形式,为Java项目获取期货实时报价数据提供支持。

weixin_43952815的博客 1222

Spring2.5+Struts2+Hibernate3整合之五

转载请注明:来自http://blog.csdn.net/M_ChangGong/ 作者:张燕广该篇主要编写Service层代码以及针对Service层功能的Junit测试代码在src下创建包com.zyg.ssh.service,在该包下创建接口StudentService,其代码如下:package com.zyg.ssh.service;import java.util.

长弓的专栏 4088

WPS Office 2019 For Linux二次开发全流程:从源码下载到Demo运行

本文详细介绍了在Linux环境下进行WPS Office 2019 C++二次开发的全流程,涵盖从开发环境准备、源码获取、核心依赖(Qt与WPS)安装配置,到最终编译运行官方Demo的完整步骤。文章重点解析了环境搭建中的常见问题与解决方案,旨在帮助开发者快速上手WPS二次开发。

weixin_29001423的博客 390

如何缩减layout电路面积?减少晶体管的数量——以全加器为例【VLSI】

How to reduce the number of transistors to reduce circuit area? -- Take the Binary Full Adder as an example 优化面积的方法 1. 减少晶体管的数量 2. 改变gate matrix的布局

Jie_MSD的博客 6437

struts2+spring4+hibernate5整合实例

struts2作为一个很传统的mvc框架,在一些项目中,仍然发挥着重要的作用,另外hibernate和spring的结合也是很常见的,这里介绍struts2+hibernate5+spring4的整合,因为struts2支持最高的spring是4版本,所以这里采用的是spring4。整合的思路比较简单,可以从struts2+spring整合,然后接着整合hibernate+spring。也可以反过...

feinifi的博客 1777

一文吃透 ABAP RESTful Application Programming Model(RAP):从数据建模与行为,到业务服务暴露,再到服务消费

本文介绍了SAP ABAP统一编程模型RAP的核心架构与实践方法,通过构建完整的ZTRAVEL和ZBOOKING业务对象,演示了从数据建模、行为定义到服务暴露的全流程。文章详细说明了RAP三层架构(数据与行为层、服务提供层、服务消费层)的实现方式,包括CDS视图实体定义、行为定义(BDEF)中的事务能力声明、投影与服务绑定等关键步骤。特别强调了ABAP Cloud环境下的开发限制和最佳实践,如使用GUID和late numbering机制,以及如何通过EML语言操作业务对象。最后提供了完整的代码示例,展示了

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 522

SSH框架搭建之整合Spring、Struts2、Hibernate

SSH框架搭建之整合Spring、Struts2、Hibernate,添加框架依赖,配置数据源会话工厂,进行简单测试

weixin_46741943的博客 1122

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

整合Struts2+Spring3+Hibernate3三大框架实现淘宝商城

本系统采用SSH(Struts,Spring,Hibernate)框架来开发。SSH框架是目前J2EE领域里最热门而且用得较为成熟的一套开源框架,它是基于MVC设计模式之上,在充分发挥MVC设计模式优点的同时,也创造出了自己的开发特点,降低了应用程序的耦合性,更进一步提高了应用程序的复用性、移植性、灵活性、扩展性和应用性能。SSH是一套轻量级的开发框架,相对于EJB重量级开发框架,SSH在继承了它

极客未来的博客 3407

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

传智播erp项目学习,Struts1+Spring2+Hibernate3的配置

   今天开始学习erp项目,赖家才老师讲的,赖老师讲课风趣幽默,听起来特别提神。学了Spring好长时间了,还没有在项目中用过,这次就用ssh做erp项目。赖老师今天主要讲了Struts1+Spring2+Hibernate3的配置,确实要比Struts1+Hibernate3的配置复杂,赖老师按步骤都讲的非常透彻,学起来也就不难了。       下面总结一下Struts1+Spring2+Hi

TuiRoger的专栏 2739

ssh第四讲--Struts2、Spring5、Hibernate整合

Struts2、Spring5、Hibernate整合 软件:MyEclipse 一、创建Maven项目: new一个maven项目 将jdk换成1.8、web module换成3.0 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"

Inmaturity_7的博客 661

eclipse整合Struts2+Spring 2.5+Hibernate3.2

首先,把SSH框架必需的的JAR包,添加到Web项目中去 Struts2需要的包: struts2-core-2.x.x.jar  : Struts 2框架的核心类库 xwork-2.x.x.jar :XWork类库,Struts 2在其上构建 freemarker-2.

arvin的学习笔记 1638

SSH的整合,Spring与Hibernate整合,与Struts2整合,ssh整合

前言,Spring管理实务,Hibernate控制持久层,Struts控制action层 一,Spring和hibernate的整合 导入Hibernate的jar包,在Hibernate文件夹下的 lib的required文件夹下。 导入Spring的jar包,在Spring的文件夹自行找(以上两个框架请自行上网下载 1、导入hibernate的包和Spring的包    1.1、导入

guin_guo的博客 1020

Spring+Struts2+Hibernate(ssh)三大框架整合流程

整合ssh三大框架详细流程,分两种方式整合Hibernate 一、SSH整合前的准备;二、Spring整合Struts2;三、Spring整合Hibernate一(带有Hibernate配置文件);四、Spring整合Hibernate二(不带有Hibernate配置文件);五、相关问题(如:延迟加载异常)

honhong1024的博客 2万+

SSH框架整合(struts2、hibernate和spring)环境搭建

鼓捣了一小时,终于搭建了一个SSH的开发环境,感激涕零,哈哈!! SSH的整合思想: SSH的整合思想就是:struts2用在web层,spring用在service层,hibernate用在dao层;struts2和hibernate要分别与spring进行整合! 1、struts2与spring整合的思想是:把创建Action对象的步骤交给spring,通过spring的配置文件完成! 2、h...

Carme7o的博客 361

Struts2+Hibernate+Spring整合教程

上次在博客中写到了SSM框架的搭建,考虑到社会中大多数公司也有用到SSH框架,今天把笔记资料整理了下,把SSH整合的教程发出来,希望能够对有帮助的同学一点帮助。                     IDE:   Eclipse Mars Release (4.5.0)           DB:   MySQL 5.1.73           服务器:  Tomcat 7.0

samile的专栏 906

SSH框架整合实战:从零搭建可运行的Struts2+Spring+Hibernate示例项目

在企业级Java Web开发中,SSH(Struts2+Spring+Hibernate)框架整合涉及版本兼容、依赖冲突、事务管理等核心问题。理解MVC分层架构与IoC/DI原理,掌握依赖注入和事务边界的配置方法,是提升老系统维护效率的关键。通过Maven管理依赖、Spring管理Bean生命周期、Hibernate实现ORM映射,开发者可快速构建稳定的增删改查应用。本文提供一套实测稳定的版本组合与完整配置方案,覆盖从环境准备到启动测试的全流程,并附常见报错排查清单,帮助开发者一次跑通SSH整合项目。

weixin_34026276的博客 371

java struts spring hibernate,SSH电商项目实战之一:整合Struts2、Hibernate和Spring

今天开始做一个网上商城的项目,首先从搭建环境开始,一步步整合S2SH。这篇博文主要总结一下如何整合Struts2 、Hibernate4.3和Spring4.2。整合三大框架得先从搭建各部分环境开始,也就是说首先得把Spring,Hibernate和Struts2的环境搭建好,确保它们 没有问题了,再做整合。这篇博文遵从的顺序是:先搭建Spring环境-->然后搭建Hibernate环境...

weixin_40009099的博客 282

SSH(struts2.2+spring3.1+hibernate3.3)框架简单搭建

自从开通博客以来,都没有写过技术博客,觉得应该是时候把自己学的东西开始记录一下,毕竟随着自己学习的东西越来越多,还是怕会忘记以前学习的东西的。        最近都是在用SSH框架做项目,框架原先是老师搭的,但是自己钻研了一下,感觉搭建这个框架也不是很难,但是要具体了解这个是干嘛的?为什么那么做?其实都不算是很了解。这个框架我估计已经用了半年了吧,时间也不长,做的项目也不是很多,所以自己简略的见

筑墙的博客 768

整合SSH框架-hibernate到hibernate+spring再到spring5.0+hibernate5.1+struts2.5+mysql

SSH框架整合目的导向主要是通过操作网页完成对数据库的操作Spring 5.0Hibernate 5.1Struts 2.5Mysql 5.0 (SQLYONG)JDK 8IDE ECLIPSE 0准备工作0.1Jar包下载https://download.csdn.net/download/qq_24691413/10391210 0.2数据库建表—mysql数据库比较简单0.3创建web项目—...

马一文 1084

Spring整合Struts2和Hibernate5

Spring整合Struts和Hibernate 一. 整合方式分类 1.零障碍整合(带hibernate的配置文件) 2. 不带有hibernate配置文件 二. spring的整合的思想 将Struts中和hibernate中需要创建的对象和配置文件中的信息整合到spring中 Hibernate中的sessionFactory 三. 具体的实...

ѧѦ ѧ 776
上一篇: Ant和xdoclet结合使用
下一篇: 总结了Struts1与Struts2的12点区别
iMarsX
博客等级 码龄16年 3粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值