完成任务--Ajax实现异步请求,验证用户名是否存在
具体实现步骤:
1.前端,用jsp绑定失去焦点事件,再通过ajax发送到服务区端。
<input type="text" id="name" name="name" class="form-control" placeholder="Username" aria-describedby="sizing-addon1" οnblur="fun()">
function fun() { alert($("#name").val()), $.ajax({ url:"usernameCheck", type:"POST", data:{ username:$("#name").val() }, success:function (data){ if(data==="true"){ alert("用户名已存在") } } }) }
2.后端分为两步,接收前端传来的异步请求并发送回客户端
package servlet.Ajax; import Dao.daoImp; import Dao.impl.dao; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.annotation.*; import java.io.IOException; import java.sql.SQLException; @WebServlet("/usernameCheck") public class usernameCheck extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); System.out.println("已进入"); System.out.println(username); daoImp dao=new dao(); try { if(dao.IdExit(username)){ response.getWriter().write("true"); } } catch (SQLException e) { e.printStackTrace(); } } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }
通过数据库操作执行查询操作
@Override public boolean IdExit(String name) throws SQLException { Connection connection = JDBCUtils.getConnection(); Statement statement = connection.createStatement(); String sql="select id from users where name='"+name+"'"; ResultSet rs=statement.executeQuery(sql); if(rs.next()){ JDBCUtils.close(rs,statement,connection); return true; } JDBCUtils.close(rs,statement,connection); return false; }
最后也是成功实现,如果用户名已经存在,在注册操作时失去焦点将会弹出提示