---------dwr---(直接远程调用)-----------
1.什么叫dwr ?
开源的ajax框架,
2.为什么使用dwr?
1.封装了ajax的代码,是封装更加方便,高效,节省代码量
2.简化servlet的数量
3.分类:
1.服务器端部分
DWRServlet
2.客户端部分
engine.js 和 util.js
4.对应关系转换
DWR
java类--------->javascript对象
方法----------->函数
通过配置文件配置对应关系
5.使用步骤:
1.service类(或者其他处理类):
*描述:处于service层,用于处理业务逻辑的java类
*调用过程: 当服务器端得DwrServlet接收到来自客户端的异步请求后会根据请求信息去调用
* 此类中的service(方法在配置文件中配置)方法,当service方法处理完业务逻辑后
* 会将结果交给DwrServlet,并由他将结果(xml)放置到response中返回给客户端
2.配置:
1. dwr.xml:
<allow>
<create javascript="service" creator="new">
<param name="class" value="service.Service">
//包名.类名
</param>
</create>
</allow>
3.配置web.xml
<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>
<!-- 跨域访问 -->
<init-param>
<param-name>crossDomainSessionSecurity</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>allowScriptTagRemoting</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
4.jsp页面:
<script type="text/javascript" src="../dwr/interface/check.js"></script>
<script type="text/javascript" src="../../js/checkName.js"></script>
<script type="text/javascript" src="../../dwr/engine.js"></script>
<script type="text/javascript" src="../../dwr/util.js"></script>
注意:步骤4中check.js 与dwr.xml 中创建的js对象名字必须相同
6.工作流程:见图片
7.转换器:
java JavaScript
--------------------------不用配置-默认启用--------------------------
基本数据类型/ Basic Converter Number
包装类型 ---------------------------> Boolean
String String
java.sql.Date Date Converter
java.util.Date ---------------------------> Date
java.sql.Times
java.sql.TimerStamp
Array Convertier
数组 --------------------> Array
Collection Convertier
Collection ------------------------> Array
Collection Convertier
Map ------------------------------> Object
---------------------------需要配置-,默认不启用----------------------------------------
POJO Bean/Object Converter(需要配置)
Bean 类 -------------------------------> Object
配置
<convert match="service.Message" converter="Bean">
包名.类名
</convert>
8.utilliy function:(工具函数)
1.$() 获得圣属性: $("input")
2.getValue(),getValues(),getValue(),setValue() 获得某个属性值: DWRUtil.getValue("content");
3.addRows .removeAllRows() 对表格添加一行: DWRUtil.addRows(); 见程序
4.addOptions removeAllOptions 对下拉框添加选择框options: DWRUtil.addOptions(数组);
5.getText;
6.onReturn
7.selectRange
8.toDescriptiveString
9.userLoadingMessage
9.engiine function:
1
dwr
发表回复