看了一些别人网上写的ssm框架使用ajax的分享,需要加载json包的什么的,一看就大感麻烦,对于新手来说极不友好。于是就自己弄了一个,不需要搞什么很烦的东西,和以前不搭ssm框架是差不多的,亲测可用,发出来给与诸君共勉。
1.话不多说看前端js代码:
//登录
function login(){
var username = $("#username").val();
var password = $("#password").val();
$.ajax({
//目标路径
url:"login1.do",
//请求方式
type:"post" ,
dataType: "json",
//传递的值
data:{"username":username,"password":password} ,
success:function(aa){
if(eval(aa)){
alert("登录成功!!");
var index = parent.layer.getFrameIndex(window.name); // 获取父窗口索引
parent.layer.close(index);// 关闭layer
}else{
alert("账号或密码错误!!");
}
},
error:function(xhr,errorMessage,e){
alert("登录模块出错,请重试!!");
window.location.reload();
}
});
}
2.表单代码
//由于我用了前端框架,账号框和密码框都是不能为空的,这里以不能为空为前提
<form action="login1.do" method="post">
<input type="text" class="input input-big" name="username" id="username" placeholder="登录账号" data-validate="required:请填写账号" />
<input type="password" class="input input-big" name="password" id="password" placeholder="登录密码" data-validate="required:请填写密码" />
<button type="button" class="button button-block bg-main text-big input-big" onclick="login();">登录</button>
</form>
3.后端Controller代码
/**
* 登录验证
* @return
* @throws IOException
*/
@RequestMapping("/login1")
public String login1(String username,String password,HttpSession session,HttpServletResponse resp) throws IOException{
//这里要多一个resp响应参数的加载
User user = new User();
user.setUsername(username);
user.setPassword(password);
User bb = loservice.login(user);//这个是查询数据库的方法,我相信大家都能实现
PrintWriter out = resp.getWriter();//这个东西是为了与前端进行交互,具体意思忘记了,可以百度,不可以少
String aa= "";//定义一个字符串,等一下抛到前端
if(bb!=null){
//String us = "账号或者密码出错!!";
System.out.println("sss:"+bb.getName());
session.setAttribute("name",bb.getName());//将登陆名称存到session
session.setAttribute("user1",bb);//将登录用户信息存到session
aa="true";
out.println(aa);//将字符串抛到前端
out.flush();//用完记得关闭
out.close();//用完记得关闭
}else{
aa="false";
out.println(aa);
out.flush();
out.close();
}
return null;
}