网页后端
功能
1.注册账号功能
代码
package servlet;
import bean.Result;
import utils.InfoJDBC;
import utils.RegisterJDBC;
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("/log_up")
public class RegisterServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
String name = request.getParameter("name");
int schoolNum = Integer.parseInt(request.getParameter("schoolNum"));
String password = request.getParameter("password");
Result result = new Result();
InfoJDBC infoJDBC = new InfoJDBC();
String str = infoJDBC.info(schoolNum);
if(str.length() != 34){
result.setStatus(10001);
result.setInfo("Existing user");
} else {
RegisterJDBC registerJDBC = new RegisterJDBC();
result = registerJDBC.register(name, schoolNum, password);
}
response.getWriter().write(result.toString());
}
public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException {
this.doGet(request,response);
}
}
JDBC
package utils;
import bean.Result;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class RegisterJDBC {
public Result register(String name, int schoolNum, String password) {
String url = "jdbc:mysql://localhost:3306/test?useTimezone=true&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=true";
String username = "root";
String pswd = "root";
Connection conn = null;
PreparedStatement pst = null;
String sql = "insert into test values('" + name + "'" + "," + schoolNum + "," + "'" + password + "')";
Result result = new Result();
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, username, pswd);
pst =conn.prepareStatement(sql);
pst.executeUpdate();
pst.close();
conn.close();
}catch (Exception e){
e.printStackTrace();
}
result.setStatus(10000);
result.setInfo("success");
return result;
}
}
2.登陆
package servlet;
import bean.Result;
import utils.LoginJDBC;
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("/log_in")
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
int schoolNum = Integer.parseInt(request.getParameter("schoolNum"));
String password = request.getParameter("password");
LoginJDBC loginJDBC = new LoginJDBC();
Result result = loginJDBC.login(schoolNum, password);
response.getWriter().write(result.toString());
}
public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException {
this.doGet(request,response);
}
}
JDBC
package utils;
import bean.Result;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class LoginJDBC {
public Result login(int schoolNum, String password) {
String url = "jdbc:mysql://localhost:3306/test?useTimezone=true&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=true";
String username = "root";
String pswd = "root";
Connection conn = null;
PreparedStatement pst = null;
String sql = "select * from test where schoolNum=" + schoolNum + " and password=" + "'" + password + "'";
Result result = new Result();
ResultSet rs = null;
String name = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, username, pswd);
pst =conn.prepareStatement(sql);
rs = pst.executeQuery();
while(rs.next()) {
name = rs.getString("name");
}
pst.close();
conn.close();
rs.close();
}catch (Exception e){
e.printStackTrace();
}
if(name != null){
result.setStatus(10000);
result.setInfo("success");
return result;
}
result.setStatus(10001);
result.setInfo("Error");
return result;
}
}
3.修改密码
package servlet;
import bean.Result;
import utils.AlterJDBC;
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("/alter")
public class AlterServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
int schoolNum = Integer.parseInt(request.getParameter("schoolNum"));
String password = request.getParameter("password");
AlterJDBC alterJDBC = new AlterJDBC();
Result result = alterJDBC.alter(schoolNum,password);
response.getWriter().write(result.toString());
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
this.doGet(request, response);
}
}
JDBC
package utils;
import bean.Result;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class AlterJDBC {
public Result alter(int schoolNum, String password) {
String url = "jdbc:mysql://localhost:3306/test?useTimezone=true&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=true";
String username = "root";
String pswd = "root";
Connection conn = null;
PreparedStatement pst = null;
String sql = "update test set password='" + password + "' where schoolNum=" + schoolNum;
Result result = new Result();
ResultSet rs = null;
String name = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, username, pswd);
pst =conn.prepareStatement(sql);
pst.executeUpdate();
pst.close();
conn.close();
}catch (Exception e){
e.printStackTrace();
}
result.setStatus(10000);
result.setInfo("success");
return result;
}
}
4.学号获取用户信息
package servlet;
import utils.InfoJDBC;
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("/myinfo")
public class InfoServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
int schoolNum = Integer.parseInt(request.getParameter("schoolNum"));
InfoJDBC infoJDBC = new InfoJDBC();
String result = infoJDBC.info(schoolNum);
response.getWriter().write(result);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
this.doGet(request, response);
}
}
JDBC
package utils;
import bean.InfoResult;
import bean.Result;
import bean.User;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class InfoJDBC {
public String info(int schoolNum) {
String url = "jdbc:mysql://localhost:3306/test?useTimezone=true&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=true";
String username = "root";
String pswd = "root";
Connection conn = null;
PreparedStatement pst = null;
String sql = "select * from test where schoolNum=" + schoolNum;
InfoResult infoResult = new InfoResult();
Result result = new Result();
User user = new User();
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, username, pswd);
pst =conn.prepareStatement(sql);
rs = pst.executeQuery();
while(rs.next()) {
user.setName(rs.getString("name"));
user.setSchoolNum(rs.getInt("schoolNum"));
}
pst.close();
conn.close();
rs.close();
}catch (Exception e){
e.printStackTrace();
}
if(user.getName() != null){
infoResult.setStatus(10000);
infoResult.setInfo("success");
infoResult.setUser(user);
return infoResult.toString();
}
result.setStatus(10001);
result.setInfo("No such user");
return result.toString();
}
}
5.注销账号
package servlet;
import bean.Result;
import utils.DropJDBC;
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("/drop")
public class DropServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
int schoolNum = Integer.parseInt(request.getParameter("schoolNum"));
String password = request.getParameter("password");
DropJDBC dropJDBC = new DropJDBC();
Result result = dropJDBC.drop(schoolNum);
response.getWriter().write(result.toString());
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
this.doGet(request, response);
}
}
JDBC
package utils;
import bean.Result;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class DropJDBC {
public Result drop(int schoolNum) {
String url = "jdbc:mysql://localhost:3306/test?useTimezone=true&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=true";
String username = "root";
String pswd = "root";
Connection conn = null;
PreparedStatement pst = null;
String sql ="delete from test where schoolNum="+schoolNum;
Result result = new Result();
ResultSet rs = null;
String name = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, username, pswd);
pst = conn.prepareStatement(sql);
pst.executeUpdate();
pst.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
result.setStatus(10000);
result.setInfo("success");
return result;
}
}
6.返回值设定
package bean;
public class InfoResult {
private int status;
private String info;
private User user;
public String toString(){
String str;
str = "{ 'code': " + status + ", " +
"'msg': '" + info + "' " + "," +
"'data': " + user.toString() +
"}";
return str;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
package bean;
public class Result {
private int status;
private String info;
public String toString(){
String str;
str = "{ 'code': " + status + ", " +
"'msg': '" + info + "' " +
"}";
return str;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
}
package bean;
public class User {
private String name;
private int schoolNum;
public String toString(){
String str;
str = "{ 'name': '" + name + "', " +
"'schoolNum': " + schoolNum +
"}";
return str;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSchoolNum() {
return schoolNum;
}
public void setSchoolNum(int schoolNum) {
this.schoolNum = schoolNum;
}
}
MySQL数据库结构