ValidateName.java代码如下所示,并且采用userIsExist查找数据库看是否存在相同的用户名。
通过ajax将注册用户名发送到ValidateName.do进行校验。
页面上添加的ajax组件:
web.xml里面配置如下:
package com.wuliu.test;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.wuliu.dao.LoginDAO;
public class ValidateName extends HttpServlet {
public ValidateName(){
super();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
LoginDAO dao = new LoginDAO();
boolean flag = false;
String loginName=request.getParameter("loginName").toString();
flag = dao.userIsExist(loginName);
if(true == flag)
{
response.getWriter().write("true");//此值jquery可以接收到
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doGet(request, response);
}
}
public boolean userIsExist(String loginId){
System.out.println("Enter userIsExist");
this.dao = new DBConnection();
this.cn = this.dao.getConnection();
// 根据指定用户名查询用户信息
String sql = "select * from LoginTable where LoginId='"+loginId+"'";
System.out.println("logid:"+loginId);
try {
// 获取PreparedStatement对象
this.ps = this.cn.prepareStatement(sql);
// 对用户对象属性赋值
// ps.setString(1, loginId);
// 执行查询获取结果集
rs = this.ps.executeQuery();
// 判断结果集是否有效
// System.out.println("rs.next()= "+rs.next());
if(false == rs.next()){
// 如果无效则证明此用户名可用
System.out.println("用户名可用");
return true;
}
// 释放此 ResultSet 对象的数据库和 JDBC 资源
rs.close();
// 释放此 PreparedStatement 对象的数据库和 JDBC 资源
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
// 关闭数据库连接
this.dao.closeConnection(cn);
}
System.out.println("用户名不可用");
return false;
}
<form action="register.do?action=add" onsubmit="return submessage(this)" method="post" name="form1">
<table border="1" width="500" cellspacing="1" cellpadding="3" align="left" bordercolor="#326598" >
<tr>
<td colspan="7" bgcolor="#FEA817">
[align=center]
<font color="#FFFFFF"><b>用户注册</b> </font>
[/align]
</td>
</tr>
<tr>
<td>
用户名
</td>
<td>
<input name="uname" id="username" type="text" class="form_text" size="20" onblur="validatorloginName()">
</td>
</tr>
<tr>
<td>
登陆密码
</td>
<td>
<input type="password" name="upwd">
</td>
</tr>
<tr>
<td>
确认密码
</td>
<td>
<input type="password" name="upwd1">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="提交">
<input type="reset" value="重置">
</td>
</tr>
</table>
</form>
通过ajax将注册用户名发送到ValidateName.do进行校验。
页面上添加的ajax组件:
<script src="/js/jquery/jquery-1.3.2.js" type="text/javascript"></script>
<script type="text/javascript" language="javascript">
function validatorloginName(){
var loginName=document.getElementById("uname").value;
if(loginName == "")
{
alert("用户名不能为空!");
return;
}
$.ajax({
type: "POST",
url: "ValidateName",
data: "loginName="+loginName,
success: function(data){
if(data=="true"){
alert("恭喜您!用户名没有被使用!");
}else{
alert("抱歉!用户名已存在!");
}
}
});
}
</script>
web.xml里面配置如下:
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>ValidateName</servlet-name>
<servlet-class>com.wuliu.test.ValidateName</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ValidateName</servlet-name>
<url-pattern>/ValidateName</url-pattern>
</servlet-mapping>