1.学习内容
利用JdbcTemplate、beanutils、jstl、JSON解析器、jsoup、servlet、mysql多个技术,实现登录注册页面与数据库连接,对数据库进行增删查改。并利用Filter实现页面拦截。
2. 成果展示
Ajax异步请求连接数据库,实现查询数据库比对用户是否已经存在
//页面加载完后,入口函数
$(function () {
//当表单提交时校验所有方法
$("#give").submit(function () {
//如何返回为ture 表单提交 ; 如果返回false 表单不提交
return checkUsername() && checkPassword();
});
//绑定离焦事件
$("#name").blur(checkUsername);
$("#password").blur(checkPassword);
});
js实现提交数据前验证
$.get("checkUserServlet",{name: username}, function (data) {
//判断userExsit键的值是否是true
var span = $("#s_name")
if (data.userExit) {
//用户名存在
span.css("color", "red");
span.html(data.msg);
// flag = false;
} else {
//用户名不存在
span.css("color", "green");
span.html(data.msg);
// flag = true;
}
});
function checkPassword() {
//获取用户密码的值
var password = $("#password").val();
//定义正则
var reg_password = /^\w{2,8}$/;
//判断,给出提示信息
var flag = reg_password.test(password);
if (flag) {
//用户密码合法
$("#password").css("border-bottom", "")
} else {
//用户名密码非法
var span = $("#u_password")
span.css("color", "red");
span.html("请输入2-8位数字或字母");
$("#password").css("border-bottom", "1px solid red")
}
return flag;
}
function checkUsername() {
//获取用户名
var username = $("#name").val();
//定义正则
var reg_username = /^\w{2,8}$/;
//判断,给出提示信息
var flag = reg_username.test(username);
if (flag) {
//用户密码合法
$("#name").css("border-bottom", "")
} else {
//用户名密码非法
var span = $("#s_name")
span.css("color", "red");
span.html("请输入2-8位数字或字母");
$("#name").css("border-bottom", "1px solid red")
}
return flag;
}
实现登录web层逻辑
//设置编码
request.setCharacterEncoding("utf-8");
//获取请求参数
String user_name = request.getParameter("user_name");
String user_password = request.getParameter("user_password");
//得到请求传来的验证码
String checkCode = request.getParameter("checkCode");
//获取生成验证码
HttpSession session = request.getSession();
String checkCode_session = (String) session.getAttribute("checkCode_session");
//删除Session储存的验证码
session.removeAttribute("checkCode_session");
if (checkCode_session != null && checkCode_session.equalsIgnoreCase(checkCode)) {
//封装user对象
User loginUser = new User();
loginUser.setUser_name(user_name);
loginUser.setUser_password(user_password);
//调用login方法
UserService service = new UserServiceImpl();
User user = service.user_loginUser(loginUser);
//调用findbyName方法将信息传入reg_success.jsp
User userByName = service.findUserByName(user_name);
//判断user
if (user == null) {
//登录失败
//储存提示信息到request
request.setAttribute("longin_error", "用户名或密码错误!");
//转发到登陆页面
request.getRequestDispatcher("/login.jsp").forward(request, response);
} else {
//登录成功
//储存用户信息
session.setAttribute("user", user_name);
session.setAttribute("users",userByName);
//重定向到main_index.jsp页面
response.sendRedirect(request.getContextPath() + "/main_index.jsp");
}
} else {
//验证码不一致
//储存信息到request
request.setAttribute("cc_error", "验证码错误!");
//转发到登录页面
request.getRequestDispatcher("/login.jsp").forward(request, response);
}