首先今天在连接数据库时发现了前期的一个问题,其实数据库并没有配置完善,出现Server returns invalid timezone. Go to ‘Advanced’ tab and set 'serverTimezon。
具体解决方案https://blog.csdn.net/liuqiker/article/details/102455077
配置结束后在右侧数据库栏中加入自己的user_data表
具体的类代码如下
数据库操作(登陆/注册)
package com.demo.Database;
import com.demo.OpenConnection.OpenConnection;
import com.demo.User.User;
import java.sql.*;
public class Database {
//数据库连接对象
public User login(String username,String password) {
User user = null;
Connection con = null;
Statement sta = null;
ResultSet res = null;
//赋值
try {
con = OpenConnection.getCon();
//静态sql语句,对比表内数据
String sql = "select * from user where username = '"+username+"' and password = '"+password+"'";
sta = con.createStatement();
res = sta.executeQuery(sql);
if(res.next()){
user = new User();
user.setName(res.getString("username"));
user.setPassword(res.getString("password"));
System.out.println("登录成功!");
}else{
System.out.println("用户名或者密码错误!");
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
OpenConnection.close(res,sta,con);
}
return user;
}
//注册功能
public boolean addUser(User user) {
String username= user.getName();
String password = user.getPassword();
Connection con = null;
Statement sta = null;
ResultSet res = null;
try {
con = OpenConnection.getCon();
sta = con.createStatement();
//判断输入是否合法
if(username.length()==0 || password.length()==0){
return false;
}
//判断用户名是否已存在
String querySql = "select * from user where username = '"+username+"'";
res = sta.executeQuery(querySql);
if(res.next()){
System.out.println("用户名已存在!");
return false;
}
//添加新用户
String insertSql = "insert into user (username,password) values " +
"('"+username+"','"+password+"')";
sta.executeUpdate(insertSql);
} catch (SQLException e) {
e.printStackTrace();
} finally {
OpenConnection.close(res,sta,con);
}
return true;
}
}
连接数据库
package com.demo.OpenConnection;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
public class OpenConnection {
private static String url = null;
private static String user = null;
private static String psd = null;
private static String driver = null;
static{
Properties prop = new Properties();
InputStream in = OpenConnection.class.getResourceAsStream("/DBConfig.properties");
try {
prop.load(in);
url = prop.getProperty("url");
user = prop.getProperty("user");
psd = prop.getProperty("psd");
driver = prop.getProperty("driver");
//注册驱动
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static Connection getCon() throws SQLException {
Connection connection = DriverManager.getConnection(url,user,psd);
return connection;
}
public static void close(ResultSet resultSet, Statement stat, Connection conn){
if(resultSet != null){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(stat != null){
try {
stat.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
登陆
package com.demo.service;
import com.demo.Database.Database;
import com.demo.User.User;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
Database database = new Database();
User user = database.login(username,password);
if(user != null){
request.getRequestDispatcher("vote.jsp").forward(request,response);
}
else {
request.getRequestDispatcher("fail.jsp").forward(request,response);
}
}
}
注册
package com.demo.service;
import com.demo.Database.Database;
import com.demo.User.User;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class RegisterServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public RegisterServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPut(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
String name=request.getParameter("username");
String password=request.getParameter("password");
User user=new User();
user.setName(name);
user.setPassword(password);
Database database = new Database();
database.addUser(user);
System.out.println("注册成功");
request.getRequestDispatcher("login.jsp").forward(request, response);
}
}
用户自定义
package com.demo.User;
public class User {
private String username;
private String password;
public String getName() {
return username;
}
public void setName(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
xml配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
<servlet>
<!-- 类名 -->
<servlet-name>LoginServlet</servlet-name>
<!-- 所在的包 -->
<servlet-class>com.demo.service.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<!-- 访问的网址 -->
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>
<servlet>
<!-- 类名 -->
<servlet-name>RegisterServlet</servlet-name>
<!-- 所在的包 -->
<servlet-class>com.demo.service.RegisterServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RegisterServlet</servlet-name>
<!-- 访问的网址 -->
<url-pattern>/RegisterServlet</url-pattern>
</servlet-mapping>
</web-app>
明天将重点制作vote界面