做了一个登录的程序,实现了登录名的实时验证
首先看前台JSP代码(只包含核心的js和HTML)
<script type="text/javascript">
function checkUser(){
var username = document.getElementById("username").value;
var data = "username="+username;
var request = new XMLHttpRequest();
request.onreadystatechange=function(){
if(request.readyState == 4 && request.status == 200){
document.getElementById("warning").innerHTML = request.responseText;
}
}
request.open("POST", "check", true);
//使用post方式提交数据,必须加上下面这行代码
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
request.send(data);
}
</script>
</head>
<body>
<form action="registe" method="post" >
用户名:<input type="text" name="username" οnkeyup="checkUser();" id="username"/>
<span id="warning">asd</span>
</br></br>
密 码:<input type="password" name="password" />
</br></br>
<input type="submit" value="注册" />
</form>
然后再来看servlet部分(只包含处理的逻辑代码)
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
UserDao userDao = new UserDao();
PrintWriter out = resp.getWriter();
String username = (String) req.getParameter("username");
if(userDao.isExists(username)){
// userDao.isExists()检测数据库是否存在该用户
out.write("用户已经存在" );
}else{
out.write("用户不存在");
}
}
下面为get提交的方式(只包含与post不一样的部分)
request.open("GET", "check?"+data, true);
//使用post方式提交数据,必须加上下面这行代码
//request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
request.send(null);