- 浏览: 221862 次
- 性别:
- 来自: 湖南
文章分类
- 全部博客 (94)
- jQuery实例 (2)
- 数据库篇章 (13)
- Java杂谈 (5)
- SSH技术 (33)
- 工作流 (3)
- ajax技术 (2)
- Web前端 (13)
- Struts2 笔记 (1)
- Struts1 笔记 (0)
- 软件面试题目 (0)
- DWR技术篇章 (4)
- 智力题集 (4)
- 正则表达式 (3)
- C语言经典实例 (10)
- C语言学习 (1)
- ibatis and lucene (2)
- jsp_javascript (5)
- 单个功能模块实现源码 (2)
- jsp网站 (1)
- Linux (1)
- 文件解析 (5)
- 各种分页方法 (3)
- android (0)
- XML 技术 (1)
- HTTP通信 & XML (0)
- springMVC (0)
- 平台框架 (1)
最新评论
-
aiwei:
可不可以解释一下每个参数的意思?看不明白啊
Java 动态加载jsp页面 在div 刷新这么简单 就可以实现了 -
hzau_chen:
:i
很强大的jsp手写分页插件 实现json 等一些ajax技术 联合查询 模糊查询 条件查询 -
yzz9i:
你想怎么操作?这个是可以直接使用的
jsp里面实现 注册成功后 系统自动发送电子邮件 -
Zhang987526341:
我想请问在数据库里面还要加字段什么的吗,
jsp里面实现 注册成功后 系统自动发送电子邮件 -
tlk20071:
我现在要写一个类似的东西,但是一点都不熟悉,你能不能帮忙讲解一 ...
一个简单功能强大的Google Map 搜索源码 【我在CSDN上也有发布】
ssh整合技术全过程总结分析
为了更清晰的分析ssh整合的流程,(也是为了巩固自己所学的)在这里我将要
先分析整合步骤,然后在将步骤细化分析(根据我所了解的)。部分代码块可能也
将贴出。
ssh整合步骤:
第一步:添加支持
1:建表、配置数据库连接(切换到database视图或hibernate视图)
2:循序添加hibernate、spring、struts支持(切换到j2ee视图,建web工程,
添加hibernate、spring、struts(myeclipse菜单-->add project-->hibernate、spring、struts)
说明:在整合了spring时候hibernate无需创建sessionfactory也就说在添加hibernate支持时候不
需要勾上那个创建sessionfactory的勾
3:生成pojo类,创建dao包将DAO类放在一起(切换到database视图或hibernate视图找到相应的数据库中的表右键:Hibernate Reverse
Engineering)
选项说明:Java src folder 选择所在项目的src目录 下面多选框下面前三个都勾上
对于pojo类的映射文件配置。需注意表级联问题,未配置好可能导致某些操作失败(操作主表时,从表也同时操作.):在映射文件后面的set 设置cascade 属性。如:
cascade = save-update(级联添加) 同时添加主表和n个从表 、cascade = all 都级联
4:如果涉及到DWR 那么还得把DWR开发包拷在lib下,dwr.xml、dwr20.dtd(提示文件)复制到WEB-INF
目录下(至于怎么配置,下面我们详细贴出)
第二步:后台业务、.xml文件配置(如果是用MyEclipse6.5 开发的可能会出现个金典异常,解决办法就是 选择项目->Build Path->Configure
->Libraries 中Remove asm-2.2.3.jar 开发包 ,再lib下delet)
1:开始写业务层,抽取接口类。写dao层。因为业务层是调用dao层的,所以先把业务写好了就算完成了第二
步就算完成半了。
2:可以选择配置web.xml文件。
1)为spring支持的applicationContext.xml文件指定路径配置(默认会认为在WEB-INF下面)
代码:
<!-- 指定路径 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:app*.xml</param-value>
</context-param>
2)为了避免在事务还没完成session就关闭的情况我们可以设置OpenSessionInViewFilter过滤器。这是
涉及到懒加载的问题。其实还有几种常见的方法可以避免。如:在pojo类的主键映射文件中的set
添加一个属性为 lazy="false" (立即加载关联表,默认为true) 还有种就是用代码控制立即加载关键
字 fetch。如:join fetch from A a join fetch a.
<!-- 过滤器 -->(映射可以是所有文件)
<filter>
<filter-name>openssion</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
3)为了解决编码问题的过滤器(映射可以是所有文件)
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
</filter>
4)配置文件加载的监听器 (没有映射)
<!-- 监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
5)配有DWR就必须为之注册
<servlet>
<servlet-name>dwr</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</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
说明:如果是整合ssh2 时候就可能在DWR测试时候会报错因为ssh2的核心过滤器会将其拦截,导致
测试时候报错。解决办法我们将在下一篇ssh2整合流程分析讲解给出具体解决方案
(上面的映射文件可以是所有文件)
3:现在可以创建action类了、及配置。控制
添加了struts支持就会在web.xml中自动注册核心控制器 ActionServlet
这里涉及到核心控制器的工作流程了。在action中会重写execute方法。简单说客户端发送HTTP请求,都会被核心控制器拦截
核心控制器请求填充ActionForm.再转到Action.在Action中我们只要将form中的信息填充到
我们自己的ActionForm中就可以了如: 部门表Form类 部门Form(将form中信息填充到该form中) = (部门表Form) form;
要说的几点需注意:
1)注册页面:注意action是.do结尾
2)写类,继承ActionForm(FormBean),界面属性,并生成set/get方法
(类型可以是: 8种基本数据类型级包装类和它们组成的数组。 还可以 String,java.sql.Date及其数组)
3)写类,继承Action,重写execute方法,调用业务 。可以一个action类处理一个业务,也可在一个
action类中处理多个业务,就必须这样几个地方。 在页面action .do后面可添加一个参数p="xx",
在struts-config.xml-> action-mapping->action 中添加属性 parameter="p" 在请求的action类中直接
获取参数p的值,在调用对应的方法。
4)在WEB-INF建struts-config.xml文件,注册actionForm,action
并确定界面/actionForm/Action三者的关系.
action具体配置文件struts-config.xml:
代码:
1.配置actionForm
<form-beans>
<form-bean name="" type="">
</form>
</form-beans>
2.配置action
<action-mappings>
<action path="/emp" parameter="" type="action类/代理">
</action>
</action-mappings>
说明:/emp jsp页面中action 的 emp.do? 代理类:type="org.springframework.web
.struts.DelegatingActionProxy"
4:配置spring的applicationContext.xml
添加了spring支持的主要特点是IOC(控制反转,依赖注入),AOP(面向切面编程)大大降低
层与层之间的耦合度。就关系的事务了。要做的第一件事就是换文件头子。
1)换文件头子
<?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:util="http://www.springframework.org/schema/util"
xmlns:p="http://www.springframework.org/schema/p"
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.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
2)dao层bean已经自动生成了,需要创建一下bean。
<!-- service bean --> 如:
<bean id="tsaleformService" class="com.service.TSaleformServiceImpl">
<property name="tsaleformDAO" ref="TSaleformDAO"></property>
<property name="tsDetail3DAO" ref="TSaleformDetailDAO"></property>
</bean>
<!-- action bean --> 如:
<bean name="/emp" class="com.struts.action.SaleformShowAction">
<property name="itSaleformService" ref="tsaleformService"></property>
</bean>
<!-- 事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
说明:sessionFactory 是自动生成的下面bean id.
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
</bean>
<!-- 事务属性 次要业务-->
<tx:advice id="mycy">
<tx:attributes>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
<!-- 织入 -->
<aop:config>
<aop:advisor advice-ref="mycy" pointcut="execution(* com.service.*.*(..))"/>
</aop:config>
说明:com.service.*.*(..) com包下.service业务层包下.所有类.所有方法(..)
5: 现在该配置DWR了配置文件 dwr.xml。
1)将
文件打开 配置为:<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
"dwr20.dtd">
说明:就是将"dwr20.dtd" 中前面那段"http:...dwr20.dtd" 什么的剪切掉 剩下就"dwr20.dtd"就ok
2) <dwr>
<allow>
<convert match="com.pojos.*" converter="bean"></convert>
<create javascript="myjs" creator="spring">
<param name="beanName" value="tsaleformService"></param>
</create>
</allow>
</dwr>
说明:需导入dwr.dtd 文件用于提示用,记得话 不要当然没问题
com.pojos.* 所有pojo类 , converter="bean" 固定的,bean 也可以换成hibernate,
javascript="myjs" 是自定义的,creator="spring" 固定的,param name="beanName"固
定的,value="tsaleformService"中 tsaleformService 是applicationContext.xml中
<!-- service bean -->下面的对应的业务层bean 的id 如上id。
第三步:现在就关系到如何进行DWR测试。在浏览器中在工程名下直接/dwr .dwr 是刚才在web.xml
中所配置的映射名 如上:<servlet-name>dwr</servlet-name>。
测试成功将会出现你的自定义 "myjs" 链接 。进入就可进行测试业务层事务了.
这段总结是我在一个上午总结的总结的不是很专业、很全,我也是带着复习的心情边开着电脑对着源码思索一步步、一个个字
打出来的!希望对有需要的人有所帮助,与人同乐就是我最大的快乐。
很高兴跟大家互相关注,打算在把ssh2的一些地方整理下。
评论
.在沿海地方面试问及ibatis 也比较多..
嗯啊. 把这块学好学熟练,是很有必要的..
http://www.iteye.com/news/20177-bbossmvc-bbossaop
蒽.去看看新技术 .. 很高兴大家分享!
.. 蒽.还得好好了解了解
http://www.iteye.com/news/20177-bbossmvc-bbossaop
发表评论
-
Java在项目中怎么让系统运行的更快,其实有好多方法 下面主要写到怎么运用系统级缓存
2012-02-08 17:11 0下面代码就已开发的系统为例子,也给自己学习学习。 ... -
(JAVA)未登录获取系统数据,例如一些公告之类的展示数据
2012-01-14 15:30 948在jsp页面上可以 通过Java代码得到 。 <% ... -
Java 中怎么发送 Email 邮件
2012-01-11 14:47 2604下面是我写的一段发生 ... -
Java 中实现定时服务 在ssh框架中跟普通工程里面创建的方式,区别
2012-01-11 14:33 1206闲话不多说 直接看下面代码 引用 网上这么说的: 1、 S ... -
Java 方便调用的工具类
2012-01-09 19:01 1770//时间格式化 (string型转date型 date转s ... -
Java 里面怎么发送XML数据请求 和怎么处理返回的XML数据
2012-01-04 15:33 0设计了几个关键地方:1 怎么发送请(发送有那些参数,参数怎么处 ... -
创建系统参数 (实例化参数)
2011-12-15 15:45 1268参数文件 引用qnr.properties 之中属性:ex ... -
Exception in thread "main":com/sun/mail/util/LineInputStream
2011-12-07 16:00 1040经过摸索,问题终于解决了。大家 MyEclipse6.5的j ... -
IO 流读取文件时候出现乱码 文件编码格式问题 怎么转换解决方法
2011-11-08 12:18 4513在使用下面这个写法时候UTF-8文件编码 在读取时候出现乱码问 ... -
很强大的jsp手写分页插件 实现json 等一些ajax技术 联合查询 模糊查询 条件查询
2011-10-13 10:02 11177这个插件里面分页功能很强大,调用者只需赋几个值就可以了。 下 ... -
Java 动态加载jsp页面 在div 刷新这么简单 就可以实现了
2011-09-29 17:43 11962引用 <script type="text/j ... -
注释方式 类生成数据库表
2011-09-21 17:24 973类对象: package com.pojos; im ... -
c:foreach 中jsp页面 中怎么对时间类型进行格式化问题
2011-09-14 12:00 7646具体实现很简单 就两步走: 引用 <%@ taglib ... -
给配置了c3p0的application.xml 配置一个单独的连接文件 applicationContext.xml 数据库连接就不要老是该来改去了
2011-09-09 17:52 2067原本的applicationContext.xml 部分配置( ... -
dao 分页方法
2011-09-01 16:05 1340看看这个类很简单实用: public Map feny ... -
ssh 整合 中怎么使用 c3p0 链接池 经测试已成功 不受 hibernate的8小时限制
2011-08-30 09:44 1419实现方式很简单,只操作 applicationContex ... -
怎么控制 显示 DIV 里面的 字数 只显示部分文字
2011-08-29 09:19 4280在 DIV 里面加如下 样式就可以了。 <div st ... -
FCKeditor 在jsp [ssh 框架中]中怎么调用 实现 图片上传/文件浏览【自己看文档摸索出来的】跟大家一块分享
2011-08-25 14:58 23231:下载 解压FCKeditor_2.6.4.1.zip ... -
使用 过滤器 filter处理session超时问题
2011-08-24 16:11 1546新建一个过滤器命名为:FilterDemo,该类继承自:jav ... -
最好用 最简单的日期时间javascript代码
2011-08-19 16:49 955<script>setInterval(&quo ...
相关推荐
**Spring、Struts2、Hibernate和DWR框架整合详解** 在现代Web开发中,整合不同的框架可以提升应用程序的效率和可维护性。Spring、Struts2、Hibernate和Direct Web Remoting (DWR) 是四种非常流行的Java开源框架,...
本文将详细介绍如何配置新版SSH+DWR框架,即Struts2.1.8、Spring3.0和Hibernate3.3.2与Direct Web Remoting (DWR) 2.0.6的集成。这个配置示例是基于目前最新的技术栈,旨在提供一个高效、稳定的开发环境。 首先,...
该示例使用MyEclipse 5.5 IDE用来整合四个技术(Struts 1.2, Spring 2.0, Hibernate 3.2和Ajax技术)的轻量级的JavaEE。 操作步骤如下: 1. 下载并解压之后,使用MyEclipse导入工程 2. 找到demo目录中的.sql数据库...
在Java Web开发中,SSH(Struts、Spring、Hibernate)框架组合和Direct Web Remoting (DWR) 的集成是一项常见的任务,它旨在提供一个高效、灵活的后端服务与前端交互的方式。SSH框架提供了强大的MVC(Model-View-...
该源码成功整合了Struts2.0+Hibernate+Spring(SSH架构)+DWR+MySql+Tomcat,直接拷贝部署就可以运行,前提建立相应的数据库。模块包括(组织机构管理,人员管理,角色管理,权限管理等等),每个模块均有增删查改等...
内含 ext+dwr+freemark+jasperreort+ireport+echance+oscache+velocite等技术 展示例子:http://zz563143188.iteye.com/blog/1462413 若要下载chm格式请到http://user.qzone.qq.com/563143188 程序源码下载地址10MB...
基于Struts+Hibernate+Spring的整合架构及其在Web开发中的应用.pdf 基于Struts+Spring+Hibernate架构的轻量级J2EE的研究与应用.pdf 基于Struts+Spring+Hibernate架构的进销存管理系统的设计与实现.pdf 基于...
公文管理、申请审批、公告管理、会议管理、权限管理、个人办公、客户管理、人事等等。项目技术:Struts1.2 + Hibernate3.0 + Spring2 +DWR。java毕业设计 jsp毕业设计 ssh毕业设计
同时,随着技术的发展,新的框架和库不断出现,如Spring Boot、MyBatis等,它们在一定程度上简化了SSH的整合过程,提供了更现代的开发体验。然而,理解SSH的基础和原理,仍然是Java开发人员必备的知识。
Struts、Hibernate、Spring 和 Direct Web Remoting (DWR) 是四个在Java开发领域中广泛使用的开源框架。这个"struts+hibernate+spring+dwr的案例"旨在展示如何将这四个框架集成到一个应用中,以实现高效、灵活且功能...
SSH(Struts2 + Spring + Hibernate)和DWR(Direct Web Remoting)是两种常见的Java Web开发技术。SSH是企业级Java应用的三大基础框架,分别负责MVC模式中的表现层、业务逻辑层和持久层;而DWR则是一种允许...
Struts1.2、Hibernate3.2、Spring2.5 和 DWR2.0 是一组经典的Java企业级开发框架组合,它们在Web应用程序开发中扮演着重要的角色。这些框架的集成为开发人员提供了强大的功能,使得后端数据管理、业务逻辑处理以及...
本教程通过详细的文档(Spring+Struts+Hibernate+DWR集成教程.doc)指导,涵盖了这四大框架的配置、整合、实例演示等多个方面,旨在帮助开发者深入理解和实践这一经典的技术组合,提升开发技能,打造高效的企业级...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们的组合通常被称为SSH。DWR(Direct Web Remoting)则是一种JavaScript库,用于在浏览器和服务器之间进行实时的、异步的数据交换。这个名为"ssh2dwr"的...
【Spring+Struts2+Hibernate+DWR】整合框架是Java Web开发中常见的技术栈,它们各自在应用程序的层面上发挥着重要的作用。Spring作为一款轻量级的框架,提供了全面的面向切面编程(AOP)支持和依赖注入(DI),能够...
本系统采用经典的SSH(Struts1.2、Hibernate3.0、Spring2)框架与DWR(Direct Web Remoting)技术进行构建,实现了后端与前端的高效交互。 **Struts1.2** 是一款基于MVC(Model-View-Controller)设计模式的Java ...
SSH(Spring、Struts、Hibernate)是Java Web开发中的一种经典组合,提供了强大的MVC架构支持、持久层管理以及企业级应用的集成能力。而Direct Web Remoting (DWR) 是一个JavaScript库,允许在浏览器和服务器之间...