使用ajax来进行登录验证
servlet:
@WebServlet("/login.do")
public class AjaxLoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ResultMsg rm = new ResultMsg();
PrintWriter out = response.getWriter();
Gson gson = new Gson();
String name = request.getParameter("userName");
String pass = request.getParameter("userPass");
//非空校验
if(isempty(name)||isempty(pass)){
rm.setMsg("user pass is null");
rm.setResult("0002");
out.println(gson.toJson(rm));
return;
}
//去数据库确认一下用户是不是存在,并且登录成功
if("dabu".equals(name)&&"123".equals(pass)){
rm.setResult("0000");
}else {
rm.setMsg("user pass is wrong");
rm.setResult("0001");
}
out.println(gson.toJson(rm));
//form表单 a标签; 转发或者重定向
//ajax的请求; out.println(json对象);
}
//判断一个字符串是不是为空
private boolean isempty(String str){
return null==str||"".equals(str.trim());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}jsp里面的是重点:
<body>
<!-- 提交的方式; get post -->
<form action="login.do" method="post">
<!-- name : 对应我们servlet去获取前台文本框的值的 key -->
用户名:<input id="nm" name="userName" type="text" value="${userName}" />
密码:<input name="userPass" type="password" />
<button type="button">登录</button>
<label id="lab1"></label>
</form>
</body>
<script type="text/javascript">
$(function(){
$("button").click(function(){
//使用jQuery发送一个ajax请求
var name=$("#nm").val();
var pass=$("input[name=‘userPass‘]").val();
/*
使用get请求
$.get("login.love?userName="+name+"&userPass="+pass,function(obj){ //obj:后台返回给我的哪个json字符串
var json = JSON.parse(obj);
if(json.result == "0000"){
location.href="http://www.baidu.com";
}else if(json.result == "0001"){
alert(json.msg);
}else{
alert(json.msg);
}
}); */
/*
使用post请求
$.post("login.love",{"userName":name,"userPass":pass},function(obj){ //obj:后台返回给我的哪个json字符串
var json = JSON.parse(obj);
if(json.result == "0000"){
location.href="http://www.baidu.com";
}else if(json.result == "0001"){
alert(json.msg);
}else{
alert(json.msg);
}
}) */
$.ajax({
url:"login.do",//目标地址
type:"post",//请求方式
data:{"userName":name,"userPass":pass},//请求参数
success:function(obj){//obj:后台返回给我们的一个json的字符串
var json=JSON.parse(obj);
if(json.result=="0000"){
location.href="http//www.baidu.com";
}else if (json.result=="0001") {
alert(json.msg);
}else{
alert(json.msg);
}
}
});
});
});
</script>