简化版
@RequestMapping(“checkLogin”)
@ResponseBody
public boolean checkLogin(HttpServletRequest request, User user){
return userService.checkLogin(request, user);
}
//service层
public boolean checkLogin(HttpServletRequest request, User user) {
// TODO Auto-generated method stub
User sqlUser = userDao.checkLogin(user);
if(sqlUser == null){
return false;
}else {
request.getSession().setAttribute(“sqlUser”, sqlUser);
return true;
}
}
//jsp页面
function login(){
KaTeX parse error: Expected '}', got 'EOF' at end of input: …" , data:(“form”).serialize() ,
dataType:“json” ,
success:function(msg){
if(msg){
alert(“登陆成功”);
location.href = “<%=path%>/user/toMain.action”;
}else {
alert(“登录失败”);
location.reload();
}
}
});
}
//加强版
@Override
public String login(HttpServletRequest request, User user) {
// TODO Auto-generated method stub
User sqlUser = userDao.login(user);
if(sqlUser==null) {
return “uname”;
}else {
if(user.getPassword().equals(sqlUser.getPassword())) {
request.getSession().setAttribute(“user”, sqlUser);
return “success”;
}else {
return “password”;
}
}
}
//JSP
function Login(){
//清空文本
$("span").remove();
//定义变量
var username = $("[name='username']").val();
var password = $("[name='password']").val();
//判断账号为空追加提示
if(username==""){
$("[name='username']").after("<span>用户名不能为空</span>");
}
//判断密码为空追加提示
if(password==""){
$("[name='password']").after("<span>密码不能为空</span>");
}
//如果文本都不为空
if($("span").length==0){
$.ajax({
url:"<%=path%>/Login.action",//路径
type:"POST",//提交反式
data:{username:username,password:password},//参数
dataType:"text",//返回类型
success:function(obj){//回调函数
//如果obj返回username
if(obj == "username"){
$("#btn").after("<span>用户名不存在</span>");
}
if(obj == "password"){
$("#btn").after("<span>密码错误</span>");
}
if(obj == "success"){
alert("登陆成功");
location.href="<%=path%>/list.action";
}
}
});
}
}
<form>
<table>
<tr>
<th colspan="2">登陆</th>
</tr>
<tr>
<td>用户</td>
<td>
<input type="text" name="username" >
</td>
</tr>
<tr>
<td>密码</td>
<td>
<input type="text" name="password" >
</td>
</tr>
<tr>
<td colspan="2">
<input type="button" value="登陆" onclick="Login()" id="btn">
</td>
</tr>
</table>
//加验证码
实体类中增加字段check验证码
/**
* 登陆验证码
* @param request
* @param user
* @return
*/
@RequestMapping("checkLogin")
@ResponseBody
public String checkLogin(HttpServletRequest request,User user){
//randomCode验证参数
String check = (String) request.getSession().getAttribute("randomCode");
if(!check.equals(user.getCheck())){
return "check";
}else{
System.out.println("----------");
return userService.checkLogin(request,user);
}
}
//service层
public String checkLogin(HttpServletRequest request, User user) {
// TODO Auto-generated method stub
User sqlUser = userDao.checkLogin(user);
System.out.println(sqlUser);
if(sqlUser == null){
System.out.println("**********");
return "error";
}else{
System.out.println("+++++++++++++");
request.getSession().setAttribute("user", sqlUser);
return "success";
}
}
//jsp
<form>
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="pwd"><br>
验证码:<input type="text" name="check"><br>
<img src="imgjsp/image.jsp" title="点击刷新" onclick="shuaxin(this)">
<input type="button" value="登陆" id="login">
</form>
$(function(){
$("#login").click(function(){
$.ajax({
url:"<%=path %>/checkLogin.action",
type:"POST",
data:$("form").serialize(),
dataType:"text",
success:function(obj){
if(obj=="check"){
alert("验证码不正确");
}else if(obj=="error"){
alert("用户名或密码不正确");
}else{
alert("登陆成功");
location="<%=path %>/getUserList.action";
}
}
});
});
});
function shuaxin(obj){
//方法一:取当前时间
<!-- $(obj).attr("src","${ctx}/imgjsp/image.jsp?bian="+new Date().getTime()); -->
//方法二:取一个随机值
$(obj).attr("src","${ctx}/imgjsp/image.jsp?bian="+Math.random());
}
/** 记住状态的登陆 */
@Override
public boolean login(User user, HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
user = dao.login(user);
if(user == null) {
return false;
}else {
//创建cookie
Cookie cookie = new Cookie("userInfo","userInfo");
//设置2分钟有效期
cookie.setMaxAge(2*60);
//可在同一应用服务器内共享方法
cookie.setPath("/");
//放松到客户段
response.addCookie(cookie);
/*
//写入字符串的值
String userInfo = user.toString();
//当第一次登录成功后,就创建一个Session,并将用户的某些信息保存在Session
HttpSession session = request.getSession();
session.setAttribute("userInfo", "userInfo");
//2小时
session.setMaxInactiveInterval(3600*2);
//但是当cookie关闭后,用于保存SessionID的JSESSIONID会消失(此时cookie并没有过期)
//所以得将JSESESSION持久化
Cookie sessionId = new Cookie("JSESESSIONID",session.getId());
//设置两分钟
sessionId.setMaxAge(2*60);
sessionId.setPath("/");
response.addCookie(sessionId);*/
return true;
}
}