jdbc.properties
url=jdbc:mysql://localhost:3306/anli?characterEncoding=utf8&serverTimezone=UTC
user=root
password=root
driver=com.mysql.cj.jdbc.Driver
jdbcutil
public class JdbcUtil {
private static String url;
private static String user;
private static String password;
private static String driver;
//静态代码块
static {
//读取资源文件
try {
//1.创建Properties集合类
Properties pro = new Properties();
// //2.加载文件
ClassLoader classLoader = JdbcUtil.class.getClassLoader();
URL res = classLoader.getResource("jdbc.properties");
String path = res.getPath();
pro.load(new FileReader(path));
//3.获取资源
url = pro.getProperty("url");
user = pro.getProperty("user");
password = pro.getProperty("password");
driver = pro.getProperty("driver");
//4.注册驱动
Class.forName(driver);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, user, password);
}
public static void close(ResultSet re,Statement stmt, Connection conn) {
if (re != null) {
try {
re.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
BackstageDao
public class BackstageDao{
public List<User> allProhibit(){
//查询登录账号
Connection conn = null;
Statement stmt = null;
ResultSet re = null;
List<User> list = new ArrayList<>();
User user = null;
try {
conn = JdbcUtil.getConnection();
// String sql = "select * from user";
String sql = "select * from user where failnum >= '3'";
stmt = conn.createStatement();
re = stmt.executeQuery(sql);
while (re.next()){
user = new User();
user.setId(re.getInt(1));
user.setUsername(re.getString(2));
user.setPassword(re.getString(3));
user.setLevel(re.getInt(4));
user.setFailNum(re.getInt(5));
user.setEmail(re.getString(6));
list.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
JdbcUtil.close(re,stmt,conn);
}
return list;
}
public void setFailnum0(String username){
Connection conn = null;
Statement stmt = null;
try {
conn = JdbcUtil.getConnection();
stmt = conn.createStatement();
String sql = "update user set failnum = 0 where username = '"+username+"'";
stmt.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}finally {
JdbcUtil.close(null,stmt,conn);
}
}
public boolean isUsernameProhibit(String username){
Connection conn = null;
Statement stmt = null;
ResultSet re = null;
boolean is = false;
try {
conn = JdbcUtil.getConnection();
stmt = conn.createStatement();
String sql = "select * from user where username = '"+username+"'"+" and failnum >= 3";
re = stmt.executeQuery(sql);
is = re.next();
} catch (SQLException e) {
e.printStackTrace();
}finally {
JdbcUtil.close(re,stmt,conn);
}
return is;
}
}
login
public class LoginDao {
public User login(User loginuser){
//查询登录账号
Connection conn = null;
Statement stmt = null;
ResultSet re = null;
User user = null;
try {
conn = JdbcUtil.getConnection();
// String sql = "select * from user";
String sql = "select * from user where username = '"+loginuser.getUsername()+"'";
stmt = conn.createStatement();
re = stmt.executeQuery(sql);
if(!re.next()){
return null;
}
user = new User();
user.setId(re.getInt(1));
user.setUsername(re.getString(2));
user.setPassword(re.getString(3));
user.setLevel(re.getInt(4));
user.setFailNum(re.getInt(5));
user.setEmail(re.getString(6));
} catch (SQLException e) {
e.printStackTrace();
}finally {
JdbcUtil.close(re,stmt,conn);
}
return user;
}
public void setFailnum0(User user){
Connection conn = null;
Statement stmt = null;
try {
conn = JdbcUtil.getConnection();
stmt = conn.createStatement();
String sql = "update user set failnum = 0 where username = '"+user.getUsername()+"'";
stmt.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}finally {
JdbcUtil.close(null,stmt,conn);
}
}
public void addFailnum(User user){
Connection conn = null;
Statement stmt = null;
try {
conn = JdbcUtil.getConnection();
stmt = conn.createStatement();
int failnum = user.getFailNum()+1;
String sql = "update user set failnum = "+failnum+" where username = '"+user.getUsername()+"'";
int count = stmt.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}finally {
JdbcUtil.close(null,stmt,conn);
}
}
}
controller
@WebServlet("/registered")
public class RegisteredController extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
String emailcode = req.getParameter("emailcode");
String newemailcode = (String)req.getSession().getAttribute("emailcode");
if(!newemailcode.equals(emailcode)){
req.getSession().setAttribute("registerederror","邮箱验证码输入错误");
resp.sendRedirect("registered.jsp");
return ;
}
String username = req.getParameter("username");
RegisteredDao registeredDao = new RegisteredDao();
if("".equals(username)){
req.getSession().setAttribute("registerederror","账号为空");
resp.sendRedirect("registered.jsp");
return ;
}
if(registeredDao.hasusername(username)) {
req.getSession().setAttribute("registerederror","该账号已被注册");
resp.sendRedirect("registered.jsp");
return ;
}
String password1 = req.getParameter("password1");
String password2 = req.getParameter("password2");
if("".equals(password1)||"".equals(password2)) {
req.getSession().setAttribute("registerederror","密码为空,请输入密码");
resp.sendRedirect("registered.jsp");
return ;
}
if(!password1.equals(password2)){
req.getSession().setAttribute("registerederror","两次密码输入不一致");
resp.sendRedirect("registered.jsp");
return ;
}
String email = (String) req.getSession().getAttribute("registeredemail");
registeredDao.addUser(username,password1,email);
req.getSession().setAttribute("registeredsuccess","注册成功");
req.getSession().removeAttribute("registeredemail");
resp.sendRedirect("registered.jsp");
req.getSession().removeAttribute("emailcode");
}
}