如何整合SSH-DWR等技术

这篇文章主要为大家展示了“如何整合SSH-DWR等技术”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何整合SSH-DWR等技术”这篇文章吧。

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>contextConfigLocationparam-name>  <param-value>classpath:app*.xmlparam-value> context-param>

2)为了避免在事务还没完成session就关闭的情况我们可以设置OpenSessionInViewFilter过滤器。这是

涉及到懒加载的问题。其实还有几种常见的方法可以避免。如:在pojo类的主键映射文件中的set

添加一个属性为 lazy="false" (立即加载关联表,默认为true) 还有种就是用代码控制立即加载关键

字 fetch。如:join fetch from A a join fetch a.

   (映射可以是所有文件)  <filter>  <filter-name>openssionfilter-name>  <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilterfilter-class> filter>

3)为了解决编码问题的过滤器(映射可以是所有文件)

<filter>  <filter-name>encodingfilter-name>  <filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class> filter>

4)配置文件加载的监听器 (没有映射)

<listener>  <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class> listener>

5)配有DWR就必须为之注册

  <servlet> <servlet-name>dwrservlet-name> <servlet-class>org.directwebremoting.servlet.DwrServletservlet-class> <init-param>  <param-name>debugparam-name>  <param-value>trueparam-value> init-param>  servlet>  <servlet-mapping> <servlet-name>dwrservlet-name> <url-pattern>/dwr/*url-pattern>  servlet-mapping>

说明:如果是整合ssh3 时候就可能在DWR测试时候会报错因为ssh3的核心过滤器会将其拦截,导致

测试时候报错。解决办法我们将在下一篇ssh3整合流程分析讲解给出具体解决方案

(上面的映射文件可以是所有文件)

3:现在可以创建action类了、及配置。控制

添加了struts支持就会在web.xml中自动注册核心控制器 ActionServlet

这里涉及到核心控制器的工作流程了。在action中会重写execute方法。简单说客户端发送HTTP请求,都会被核心控制器拦截

核心控制器请求填充ActionForm.再转到Action.在Action中我们只要将form中的信息填充到

我们自己的ActionForm中就可以了如: 部门表Form类 部门Form(将form中信息填充到该form中) = (部门表Form) form;

如何整合SSH-DWR等技术