web.xml中配置DWR:
<!-- 配置DWR的核心Servlet开始 -->
<!-- 配置DWR的核心Servlet -->
<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>
<!-- 增加服务器的加载能力 -->
<init-param>
<param-name>pollAndCometEnabled</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 配置DWR的核心Servlet结束 -->
Dwr.xml的配置文件(和web.xml同目录下):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">
<dwr>
<allow>
<!-- 声明java到javascript转换过程中用到的类 -->
<convert converter="bean" match="org.com.model.Employee" />
<!-- 使用Spring创造器去创建和远程调用beans -->
<!-- creartor属性指定类实例的创建方式,javascript属性指定在浏览器的引用名 -->
<create creator="spring" javascript="EmployeeDWR">
<!-- value 属性注入Spring中的实例 -->
<param name="beanName" value="employeeManager" />
<!-- 显式的引入可调用的方法 -->
<include method="checkEmppoyeeName" />
</create>
</allow>
</dwr>
dao层:
/**
* 查询用户名
*/
public int check(String userName) {
List<Employee> list =this.getHibernateTemplate().find("from Employee where userName=?",userName);
if(list!=null && list.size()>0){
return 1;
}
return 0;
}
Service层:
//检查员工用户名唯一性(DWR中调用)
public int checkEmployee(String userName) {
return this.employeeDao.check(userName);
}
DWR前台页面:
<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Insert title here</title>
<script type='text/javascript' src='../dwr/interface/EmployeeDWR.js'></script>
<script type='text/javascript' src='../dwr/engine.js'></script>
<script type='text/javascript' src='../dwr/util.js'></script>
<script type="text/javascript">
function checkname(){
var username=document.getElementById("userName");
var check1=document.getElementById("check1");
if(username.value==""){
check1.innerHTML="<font color='red'>用户名不能为空!</font>";
username.focus();
}
else{
check1.innerHTML="";
EmployeeDWR.checkEmppoyeeName(username.value,putCheckValue);
}
}
function putCheckValue(data){
var username=document.getElementById("userName");
var check1=document.getElementById("check1");
if(data==1){
check1.innerHTML="<font color='red'>此用户名已用,请重新填写!</font>";
username.focus();
}
else{
check1.innerHTML="<font color='green'>此用户名可用!</font>";
}
}
</script>
</head>
<body>
<table>
<tr>
<td><input type="text" name="userName" id="userName" onblur="checkname();"/><span id="check1"/></td>
</tr>
</table>
</body>
</html>
分享到:
相关推荐
在“dwr实现用户ID的唯一性验证”这个场景下,我们主要探讨如何利用DWR来检查新创建或更新的用户ID是否在数据库中已经存在,确保每个用户ID的唯一性。这是防止数据冲突和错误的重要步骤,尤其是在注册新用户或修改...
在这个特定的场景中,我们关注的是如何利用DWR来实现用户名的唯一性验证。 在"用户名唯一验证"这个功能中,用户在输入用户名后,当他们离开输入框(失去焦点)时,系统会立即检查该用户名是否已经存在,这通常发生...
总结来说,这个"DWR验证用户名是否存在的例子"展示了如何利用DWR将Java后端逻辑集成到前端,实现无刷新的用户名验证。对于初学者,这是一个很好的起点,能够理解前后端交互的基本流程,同时了解DWR框架的使用。
使用DWR,可以很容易地实现实时的用户名唯一性检测。在前端,当用户输入用户名并提交时,可以触发一个JavaScript函数,该函数调用DWR接口检查服务器上的用户名是否已存在。例如: ```javascript function ...
4. **学生姓名验证**:类似于用户名验证,确保姓名的唯一性。 5. **修改验证**:对学生的修改进行验证,如防止非法数据输入。 这个小项目对于学习和理解这些技术的整合使用具有很好的实践价值,同时也展示了如何在...
DWR(Direct Web Remoting)是一种Java库,它允许JavaScript在客户端与服务器端进行直接的交互,无需通过HTTP请求。...记得实践是检验真理的唯一标准,理论知识结合实际操作才能更好地理解和运用DWR。
6. **后端逻辑**:服务器端的Java代码处理注册请求,包括验证输入、检查用户名的唯一性、处理密码加密等。这部分可能涉及Spring MVC或Struts2等MVC框架,以及Hibernate等ORM工具来管理数据库操作。 7. **安全考虑**...
DWR简化了Ajax开发,使得开发者可以像操作本地对象一样操作服务器端的对象,大大提高了Web应用的交互性和用户体验。 首先,我们要理解DWR的核心概念。DWR通过创建JavaScript和Java之间的桥接,实现了动态网页的远程...
这篇实战指南详细介绍了如何利用Dwr2、Struts2、Spring2.5和Hibernate3构建一个用户登录注册系统,涵盖了前端Ajax验证、后端业务处理、数据库操作以及依赖库的管理,为初学者提供了宝贵的实践指导,同时也强调了良好...
Java DWR(Direct Web Remoting)是一个开源框架,它允许JavaScript和Java在浏览器与服务器之间进行实时通信,类似于Ajax技术,但提供了更丰富的交互性。本解决方案主要关注如何利用DWR来实现一个用户在同一时间只能...
3. **异步请求**:使用Ajax发送异步请求到服务器,检查如用户名唯一性等无法在客户端验证的信息。 4. **DOM操作**:利用JS动态改变DOM元素,如添加或移除CSS类,以显示验证状态或错误消息。 ### 结合前后端的技术...
1. **防止重复提交**:在Web应用中,为避免用户多次点击按钮导致重复操作,通常采用令牌(Token)机制或唯一性校验。比如,服务器生成一个唯一的令牌,将其存储在session中,并发送给客户端。客户端在提交请求时携带...
5. **添加验证逻辑**:为了确保数据的完整性和安全性,需要添加相应的验证规则。 ##### 2.6 配置数据库 配置数据库连接对于 Parancoe 应用至关重要。这通常涉及到设置数据库驱动、URL、用户名和密码等信息。此外,...
SSH(Struts + Spring + Hibernate)是Java Web开发中的一个流行集成框架,用于简化开发过程并提高代码的可维护性。 1. **Struts**:是一个MVC(Model-View-Controller)框架,负责处理HTTP请求,管理Action类和...
- 通常情况下,单例类被设计为不可继承,因为继承可能会破坏单例的唯一性。但理论上,如果单例类是final的或者构造函数是private的,子类无法创建新的实例,仍然可以被继承。 3. **运行时异常与普通异常**: - ...
- **隔离性**: 并发执行的事务之间不能互相干扰,每个事务看起来就像是系统中唯一的事务。事务之间的操作顺序不影响最终结果的一致性。 - **持久性**: 一旦事务提交,它对数据库的更改将是永久性的,即使系统出现...