一,项目简介
1,IDE工具和Mysql管理工具
IntelliJ IDEA https://www.jetbrains.com/idea/download/
Mysql管理工具:Navicat for MySQL https://www.navicat.com/en/company/press/107-pres
2,项目结构
3,数据库(Mysql)结构
CREATE TABLE `user` (
`id` int(11) NOT NULL auto_increment,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`sex` varchar(255) NOT NULL,
`location` varchar(255) NOT NULL,
`info` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
INSERT INTO `user` VALUES ('1', '张三', '123456', '女', '上海', '张三是女的');
INSERT INTO `user` VALUES ('2', '李四', '123456', '男', '北京', '李四是男的');
数据库操作可参考:https://blog.csdn.net/johnfht/article/details/104377177
二,后端代码
1,编码处理 EncodingFilter.java
package com.web.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
@WebFilter("/*")
public class EncodingFilter implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
request.setCharacterEncoding("utf-8"); //将编码改为utf-8
response.setContentType("text/html;charset=utf-8");
chain.doFilter(request, response);
}
public void init(FilterConfig config) throws ServletException {
}
}
2,数据库工具 DBUtil.java
package com.util;
import java.sql.*;
public class DBUtil {
static String url = "jdbc:mysql://localhost:3306/javawebdemo?useUnicode=true&characterEncoding=utf8";
static String user = "root";
static String pwd = "123456";
static Connection conn = null;
static ResultSet rs = null;
static PreparedStatement ps = null;
public static void init(){
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, user, pwd);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
System.out.println("SQL驱动程序初始化失败!");
e.printStackTrace();
}
}
public static int addUpdDel(String sql){
int i = 0;
try {
ps = conn.prepareStatement(sql);
i = ps.executeUpdate();
} catch (SQLException e) {
System.out.println("sql数据库增删改异常");
e.printStackTrace();
}
return i;
}
public static ResultSet selectSql(String sql){
try {
ps = conn.prepareStatement(sql);
rs = ps.executeQuery(sql);
} catch (SQLException e) {
System.out.println("sql数据库查询异常");
e.printStackTrace();
}
return rs;
}
public static void closeConn(){
try {
conn.close();
} catch (SQLException e) {
System.out.println("sql数据库关闭异常");
e.printStackTrace();
}
}
}
3,用户封装 User.java
package com.domain;
public class User {
private int id;
private String username;
private String password;
private String sex;
private String location;
private String info;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
}
4,dao层 UserDao.java
package com.dao;
import com.domain.User;
import java.util.List;
public interface UserDao {
public boolean login