(7)JavaWeb 登录与注册功能

实现了登录注册功能,并将数据传送到数据库中

  1. 创建登录和注册页面
  2. 将注册页面的form表单中的action=""改为自己写的servlet用于接收请求参数,并向数据库中存储。
  3. 登录的时候先进行前端检验,再进行后端检验,拿出数据库中的数据进行检验,若账户密码正确,则登陆成功。
  • 登录注册页面,较为简单,省略。
  • 创建registServlet,接收数据存储再数据库中,我们需要创建一个User类,来封装我们获取的请求参数:User类如下:(注意需要导入lombok包,并覆盖setter,getter和toString方法)
@Setter@Getter
public class User {
 private String username;
 private String password;
 private String phone;
 @Override
 public String toString() {
  return "User [username=" + username + ", password=" + password + ", phone=" + phone + "]";
 }
 
}
  • registServlet如下
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  System.out.println("registServlet");
  //1.设置字符编码
  //设置请求编码,必须将form表单的提交方式设置为post
  request.setCharacterEncoding("UTF-8");
  response.setContentType("text/html;charset=utf-8");
  
  //2.获取请求的数据
  Map<String, String[]> map = request.getParameterMap();
  //创建User对象,使用beanutils将获取的数据封装到User对象中
  User u = new User();
  try {
   BeanUtils.populate(u, map);
  } catch (IllegalAccessException | InvocationTargetException e) {
   e.printStackTrace();
  }
  //3.连接数据库,需要拿到数据库的数据源,和db.properties
  QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
  //4.向数据库中插入数据
  String sql = "insert into user value(?,?,?)";
  
  try {
   qr.update(sql,u.getUsername(),u.getPassword(),u.getPhone());
  } catch (SQLException e) {
   e.printStackTrace();
  }

db.properties文件内容:(使用mysql8.0进行连接)

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/wzshop?useSSL=false&rewriteBatchedStatements=true&serverTimezone=UTC
username=root
password=123456
maxActive=8
  • 进行数据库连接的类JDBCUtils如下:
public class JDBCUtils {
 
  public static DataSource ds = null;
  static {  
    
    try {
     //1.加载配置文件
     Properties p = new Properties();
     //获取字节码目录,因为编译成字节码过后,该文件会存放在classes中。
     String path = JDBCUtils.class.getClassLoader().getResource("db.properties").getPath();
     System.out.println(path);
     FileInputStream in = new FileInputStream(path);
     p.load(in);
     
     ds = DruidDataSourceFactory.createDataSource(p);
     
    } catch (Exception e) {
     e.printStackTrace();
    }
  }
  public static DataSource getDataSource() {
   return ds;
  }
  
  /**
   * 关闭资源
   */
  public static Connection getCon() {
   try{
    return ds.getConnection();   
   
   } catch(Exception e) {
    e.printStackTrace();
   }
   return null;
   
  }
  
  public static void close(Connection conn,Statement st) {
   if(st != null) {
    try
    {
     st.close();
    } catch (SQLException e)
    {
     e.printStackTrace();
    }
   }
   
   if(conn != null) {
    try
    {
     conn.close();
    } catch (SQLException e)
    {
     e.printStackTrace();
    }
   }

这样一来注册功能就完成了。

其余内容接下一篇

  • 需要导入的jar和文件有
    在这里插入图片描述
发布了21 篇原创文章 · 获赞 7 · 访问量 358

猜你喜欢

转载自blog.csdn.net/qq_45260619/article/details/104029889