dwr的用法

dwr属于ajax的一个框架  所以说实现原理和ajax一样  
dwr使用步骤:
1.导入dwr所用的jar包文件  dwr.jar和commons-logging.jar
2.在web.xml文件中配置dwr默认的信息  (即默认的servlet)
			<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>

3.在web.xml文件的同一目录下面创建dwr.xml文件  并且在dwr.xml文件配置在javascript中需要调用的普通的java类(不是servlet)
4.检查一下dwr配置是否成功 检查方式:打开服务器 然后在浏览器中输入http://localhost/mydwr/dwr
5.在需要使用dwr的页面 导入三个js文件  然后就可以在该页面的javascript代码中直接通过名字调用到java类中的方法

dwr.xml文件中
普通(非单例模式的类)的配置
		<create creator="new" javascript="dwrStudy">
			<param name="class" value="com.pk.mydwr.test.DwrStudy" />
		</create>


单例模式的类的配置
a).首先要导入单例模式需要的一些jar包
b).然后配置方式如下
			<create creator="script" javascript="chinaCitySingletonDao">
				  <param name="language" value="beanshell"/>
				    <param name="script">
				      import com.puckasoft.dao.ChinaCitySingletonDao;
				      return ChinaCitySingletonDao.getInstance();
				   </param>
			</create>


例子:已局部刷新邮箱是否注册为例

dwr.xml

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd">
<dwr>
	<allow>
		<!-- DwrStudy dwrStudy = new DwrStudy();dwrStudy是用在javascript中的
			即在javascript中使用dwrStudy就相当于调用了DwrStudy类的实例
		 -->
		
<!--非单例配置
<create creator="new" javascript="userDao">
<param name="class" value="com.pk.mydwr.dao.UserDao" />
</create>
-->
<create creator="script" javascript="userDao"> <param name="language" value="beanshell"/> <param name="script"> import com.pk.mydwr.dao.UserDao; return UserDao.getInstance(); </param></create><convert match="com.pk.mydwr.po.User" converter="bean"></convert></allow></dwr>


firstdwr.jsp


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'firstajax.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	<style type="text/css">
		input {
			width: 220px;
			height: 34px;
			font-size: 22px;
		}
	</style>
	<script type='text/javascript' src='/mydwr/dwr/interface/userDao.js'></script>
	<script type='text/javascript' src='/mydwr/dwr/engine.js'></script>
	<script type='text/javascript' src='/mydwr/dwr/util.js'></script>
	
	<script type="text/javascript">
		function checkEmail(obj){
			userDao.isOnly(obj,function(data){
				var message = "<img src='images/right.jpg'>";
				if(!data){
					message = "<img src='images/wrong.jpg'><b style='color:red'>该邮箱已经被占用<b>";
				}
				document.getElementById("emailError").innerHTML = message;
			});
		}
	</script>
  </head>
  
  <body>
  	<jsp:include page="top.jsp"></jsp:include>
  	<form action="" method="post">
		<table align="center">
			<tr>
				<td>
					邮箱:
				</td>
				<td>
					<input type="text" name="email" id="email" οnblur="checkEmail(this.value)"/>
					<span id="emailError"></span>
				</td>	
			</tr>
			<tr>
				<td>
					昵称:
				</td>
				<td>
					<input type="text" name="nickname" id="nickname"/>
					<span id="nicknameError"></span>
				</td>	
			</tr>
			<tr>
				<td>
				</td>
				<td>
					<input type="submit" value="注册新用户"/>
				</td>	
			</tr>
		</table>
  	</form>
  </body>
</html>

UserDao.java
public class UserDao {
	private UserDao(){
		
	}
	
	private static UserDao dao = null;
	
	public static UserDao getInstance(){
		if(dao == null){
			dao = new UserDao();
		}
		return dao;
	}
	
	public boolean isOnly(String email){
		boolean flag = true;
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		String sql = "select id from user where email=?";
		try {
			conn = DBConn.getConn();
			ps = conn.prepareStatement(sql);
			ps.setString(1, email);
			rs = ps.executeQuery();
			while (rs.next()) {
				flag = false;
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			DBConn.closeAll(conn, ps, rs);
		}
		return flag;
	}

}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值