本文主要展示“如何集成SSH-DWR等技术”,简单易懂,组织清晰,希望能帮你解决疑惑。让边肖带领大家学习学习《如何融合SSH-DWR等技术》一文。
Ssh集成步骤:
第一步:添加支持
1:创建表并配置数据库连接(切换到数据库视图或休眠视图)
2.依次添加hibernate、spring和struts支持(切换到j2ee视图,构建web项目,
添加hibernate、spring、struts(myeclipse菜单-添加项目- hibernate、spring、struts)
说明:hibernate在集成spring时不需要创建sessionfactory,也就是说,在添加hibernate支持时,不需要
您需要钩住创建sessionfactory的那个。
3.生成pojo类,创建dao包并将DAO类放在一起(切换到数据库视图或hibernate视图,在相应的数据库中找到正确的表:Hibernate Reverse
工程)
选项说明:Java src文件夹选择项目src目录下多选项框下的前三项。
pojo类的映射文件配置。注意表级联的问题。如果配置不当,可能会导致某些操作失败(操作主表时,从表也会同时操作。):在映射文件后面的集中设置cascade属性。例如:
Cascade=save-update(级联添加)同时添加主表和n个从表,Cascade=全部是级联的。
4:如果涉及DWR,DWR开发包必须复制到lib,dwr.xml和dwr20.dtd(提示文件)要复制到WEB-INF。
目录(至于如何配置,我们将在下面详细发布)
第二步:后台业务、.xml文件配置(如果是用MyEclipse6.5开发的,可能会有阿津点例外。解决方案是选择项目-构建路径-配置。
-在库中删除asm-2.2.3.jar开发包,然后在lib下删除它)
1.开始编写业务层并提取接口类。写刀层。因为业务层调用dao层,所以业务是先写的,即使第二个已经完成。
即使这一步已经完成了一半。
2:您可以选择配置web.xml文件。
1)为spring支持的applicationContext.xml文件指定路径配置(默认情况下将在WEB-INF下考虑)
代码:
context-param-name contextconfiglocationparam-name param-value class path : app *。xmlparam-valuecontext-param2)为了避免在会话完成之前关闭事务,我们可以设置OpenSessionInViewFilter过滤器。这是
它涉及到延迟加载的问题。事实上,有几种常见的方法来避免它。例如,在pojo类的主键映射文件中设置
添加一个属性lazy='false '(立即加载关联的表,默认值为true),另一个是使用代码控件立即加载键。
单词fetch。例如,从A连接获取A连接获取A
(映射可以是所有文件)filter filter-name opensessionfilter-name filter-class org . spring framework . ORM . hibernate 3 . support . opensessioninviewfilter filter-class filter 3)解决编码问题的过滤器(映射可以是所有文件)
filter-name coding filter-name filter-class org . spring framework . web . filter . character encodingfilter-class filter 4)配置文件已加载侦听器(无映射)
listener listener-class org . spring framework . web . context . context loaderlistener-class listener
pre>
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;
要说的几点需注意:
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。
如: <bean id="tsaleformService" class="com.service.TSaleformServiceImpl"> <property name="tsaleformDAO" ref="TSaleformDAO">property> <property name="tsDetail3DAO" ref="TSaleformDetailDAO">property> 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)将
文件打开 配置为:
"-//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中
下面的对应的业务层bean 的id 如上id。
第三步:现在就关系到如何进行DWR测试。在浏览器中在工程名下直接/dwr .dwr 是刚才在web.xml
中所配置的映射名 如上:dwr。
测试成功将会出现你的自定义 "myjs" 链接 。进入就可进行测试业务层事务了.
这段总结是我在一个上午总结的总结的不是很专业、很全,我也是带着复习的心情边开着电脑对着源码思索一步步、一个个字打出来的!
以上是“如何整合SSH-DWR等技术”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/157061.html