网上搜索了很多案例,但都和自己的需求不一样。
最终实现了下面的例子实现了对注册用户名的校验。采用的架构是servelet+jsp. ValidateName.java代码如下所示,并且采用userIsExist查找数据库看是否存在相同的用户名。
Java代码
1. package com.wuliu.test;
2. import java.io.IOException;
3. import java.io.PrintWriter;
4.
5. import javax.servlet.ServletException;
6. import javax.servlet.http.HttpServlet;
7. import javax.servlet.http.HttpServletRequest;
8. import javax.servlet.http.HttpServletResponse;
9. import com.wuliu.dao.LoginDAO;
10.
11.public class ValidateName extends HttpServlet {
12. public ValidateName(){
13. super();
14. }
15.
16. public void doGet(HttpServletRequest request, HttpServletResponse response)
17. throws ServletException, IOException {
18.
19. response.setContentType("text/html");
20. LoginDAO dao = new LoginDAO();
21. boolean flag = false;
22. String loginName=request.getParameter("loginName").toString();
23. flag = dao.userIsExist(loginName);
24. if(true == flag)
25. {
26. response.getWriter().write("true");//此值jquery可以接收到
27. }
28. }
29.
30.
31. public void doPost(HttpServletRequest request, HttpServletResponse response)
32. throws ServletException, IOException {
33.
34. this.doGet(request, response);
35.
36. }
37.
38.}
Java代码
1. public boolean userIsExist(String loginId){
2. System.out.println("Enter userIsExist");
3. this.dao = new DBConnection();
4. this.cn = this.dao.getConnection();
5. // 根据指定用户名查询用户信息
6. String sql = "select * from LoginTable where LoginId='"+loginId+"'";
7. System.out.println("logid:"+loginId);
8. try {
9. // 获取PreparedStatement对象
10. this.ps = this.cn.prepareStatement(sql);
11. // 对用户对象属性赋值
12. // ps.setString(1, loginId);
13. // 执行查询获取结果集
14. rs = this.ps.executeQuery();
15. // 判断结果集是否有效
16. // System.out.println("rs.next()= "+rs.next());
17. if(false == rs.next()){
18. // 如果无效则证明此用户名可用
19. System.out.println("用户名可用");
20. return true;
21. }
22. // 释放此 ResultSet 对象的数据库和 JDBC 资源
23. rs.close();
24. // 释放此 PreparedStatement 对象的数据库和 JDBC 资源
25. ps.close();
26. } catch (SQLException e) {
27. e.printStackTrace();
28. }finally{
29. // 关闭数据库连接
30. this.dao.closeConnection(cn);
31. }
32. System.out.println("用户名不可用");
33. return false;
34. }
由此就可以实现注册的时候,校验注册用户名是否已经存在的功能了。
JSP页面代码:
Html代码
1. action="register.do?action=add" onsubmit="return submessage(this)" method="post" name="form1">
2. 3. 4. 5. [align=center] 6. color="#FFFFFF">用户注册 7. [/align] 8. 9. 10. 11. 12. 用户名 13. 14. 15. name="uname" id="username" type="text" class="form_text" size="20" onblur="validatorloginName()"> 16. 17. 18. 19. 20. 21. 登陆密码 22. 23. 24. type="password" name="upwd"> 25. 26. 27. 28. 29. 确认密码 30. 31. 32. type="password" name="upwd1"> 33. 34. 35. 36. 37. type="submit" value="提交"> 38. type="reset" value="重置"> 39. 40. 41. border="1" width="500" cellspacing="1" cellpadding="3" align="left" bordercolor="#326598" >
colspan="7" bgcolor="#FEA817">
colspan="2" align="center">
42.
页面上添加的ajax组件:
Html代码
1. function validatorloginName(){
2. var loginName=document.getElementById("uname").value;
3. if(loginName == "")
4. {
5. alert("用户名不能为空!");
6. return;
7. }
8. $.ajax({
9. type: "POST",
10. url: "ValidateName",
11. data: "loginName="+loginName,
12. success: function(data){
13. if(data=="true"){
14. alert("恭喜您!用户名没有被使用!");
15.
16. }else{
17. alert("抱歉!用户名已存在!");
18. }
19. }
20. });
21. }
通过ajax将注册用户名发送到ValidateName.do进行校验。
web.xml里面配置如下:
Xml代码
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
ValidateName.java代码如下所示,并且采用userIsExist查找数据库看是否存在相同的用户名。
Java代码
1. package com.wuliu.test;
2. import java.io.IOException;
3. import java.io.PrintWriter;
4.
5. import javax.servlet.ServletException;
6. import javax.servlet.http.HttpServlet;
7. import javax.servlet.http.HttpServletRequest;
8. import javax.servlet.http.HttpServletResponse;
9. import com.wuliu.dao.LoginDAO;
10.
11. public class ValidateName extends HttpServlet {
12. public ValidateName(){
13. super();
14. }
15.
16. public void doGet(HttpServletRequest request, HttpServletResponse response)
17. throws ServletException, IOException {
18.
19. response.setContentType("text/html");
20. LoginDAO dao = new LoginDAO();
21. boolean flag = false;
22. String loginName=request.getParameter("loginName").toString();
23. flag = dao.userIsExist(loginName);
24. if(true == flag)
25. {
26. response.getWriter().write("true");//此值jquery可以接收到
27. }
28. }
29.
30.
31. public void doPost(HttpServletRequest request, HttpServletResponse response)
32. throws ServletException, IOException {
33.
34. this.doGet(request, response);
35.
36. }
37.
38. }
Java代码
1. public boolean userIsExist(String loginId){
2. System.out.println("Enter userIsExist");
3. this.dao = new DBConnection();
4. this.cn = this.dao.getConnection();
5. // 根据指定用户名查询用户信息
6. String sql = "select * from LoginTable where LoginId='"+loginId+"'";
7. System.out.println("logid:"+loginId);
8. try {
9. // 获取PreparedStatement对象
10. this.ps = this.cn.prepareStatement(sql);
11. // 对用户对象属性赋值
12. // ps.setString(1, loginId);
13. // 执行查询获取结果集
14. rs = this.ps.executeQuery();
15. // 判断结果集是否有效
16. // System.out.println("rs.next()= "+rs.next());
17. if(false == rs.next()){
18. // 如果无效则证明此用户名可用
19. System.out.println("用户名可用");
20. return true;
21. }
22. // 释放此 ResultSet 对象的数据库和 JDBC 资源
23. rs.close();
24. // 释放此 PreparedStatement 对象的数据库和 JDBC 资源
25. ps.close();
26. } catch (SQLException e) {
27. e.printStackTrace();
28. }finally{
29. // 关闭数据库连接
30. this.dao.closeConnection(cn);
31. }
32. System.out.println("用户名不可用");
33. return false;
34. }
由此就可以实现注册的时候,校验注册用户名是否已经存在的功能了。