login
登录页账号:
密码: ${msg}
//使用jQuery完成ajax校验,当前账号是否存在
$("#input1").blur(function () {
//发送ajax请求,获取到当前输入的账号是否存在,写入到span1标签中
let account=$("#input1").val();
$.ajax({
url:"check",//提交后端
// data:{"account":$("#input1").val()},
data:"account="+account,
type:"get",//请求方式
success:function (data) {//成功回调函数
let data1=JSON.parse(data)
//可以登录
if (data1){//表示存在都当前账号
$("#span1").html("可以登录");
$("#span1").attr("style","color:green");
}else {
$("#span1").html("未注册");
$("#span1").attr("style","color:red");
}
}
})
})
dao
package cn.hp.dao;
import cn.hp.util.JDBCUtils;
import java.sql.ResultSet;
import java.sql.SQLException;
public class UserDao {
public int selectByAccountPassword(String account, String password) {
//执行 select 查询 sql 语句
String sql="select count(*)from user where account=? and password=?";
Object[]objects={account,password};
ResultSet resultSet = JDBCUtils.DQL(sql, objects);
int select=0;
try {
while (resultSet.next())
select= resultSet.getInt(1);
}catch (SQLException e){
e.printStackTrace();
}
return select;
}
public int selectByAccount(String account) {
//执行 select 查询 sql 语句
String sql="select count(*)from user where account=?";
Object[]objects={account};
ResultSet resultSet = JDBCUtils.DQL(sql, objects);
int select=0;
try {
while (resultSet.next())
select= resultSet.getInt(1);
}catch (SQLException e){
e.printStackTrace();
}
return select;
}
}
service
package cn.hp.service;
import cn.hp.dao.UserDao;
public class UserService {
public boolean login(String account, String password) {
//service层 依赖dao层 指定莫一条sql执行
UserDao userDao=new UserDao();
int select=userDao.selectByAccountPassword(account,password);
if (select>0){
return true;
}else {
return false;
}
}
public boolean check(String account) {
//service层 依赖dao层 指定莫一条sql执行
UserDao userDao=new UserDao();
int select=userDao.selectByAccount(account);
if (select>0){
return true;
}else {
return false;
}
}
}
servlet
package cn.hp.servlet;
import cn.hp.service.UserService;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/check")
public class CheckServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1.设置用户输入的编码格式
req.setCharacterEncoding("utf-8");
//2.获取用户的输入内容
String account = req.getParameter("account");
//3.依据service层来判断当前登录的账号密码是否正确 user表
//User表定义一个UserService用来处理所有和user有关的业务
UserService userService=new UserService();
//使用check方法 检查是否存在用户
boolean flag=userService.check(account);
resp.getWriter().println(flag);
}
}
package cn.hp.servlet;
import cn.hp.service.UserService;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1.设置用户输入的编码格式
req.setCharacterEncoding("utf-8");
//2.获取用户的输入内容
String account = req.getParameter("account");
String password = req.getParameter("password");
//3.依据service层来判断当前登录的账号密码是否正确 user表
//User表定义一个UserService用来处理所有和user有关的业务
UserService userService=new UserService();
//login方法 传入 账号密码 返回是否登录成功
boolean flag=userService.login(account,password);
//4.依据是否登录成功,进行控制页面的跳转
if (flag){
req.getRequestDispatcher("success.jsp").forward(req,resp);
}else {
req.setAttribute("msg","密码错误,请重新登录!");
req.getRequestDispatcher("login.jsp").forward(req,resp);
}
}
}