Web服务软件做了哪些事儿?
- 负责建立底层的网络连接
- 负责根据客户端请求的静态资源文件路径找到对应的对应的静态资源文件并且返回给客户端
- 负责根据客户端请求的动态资源路径找到对的Controller里面的方法并且执行
- 静态资源: 指文件或静态页面(任何人任何时间请求的都是一样的称为静态页面) bmi.html param.html index.html
- 动态资源: 由Controller里面的方法处理的请求称为动态资源请求, /hello /bmi /param1.......
SpringBoot
- SpringBoot 也是一个框架, 但是此框架和上面的SSM不一样, 此框架的作用是让程序员更加便捷的在空工程中引入其它框架, 如果不使用SpringBoot框架创建一个空工程,再引入其它框架,需要在pom.xml文件中添加各种依赖,个别框架还需要添加大量的配置文件,里面书写大量的配置信息,使用SpringBoot框架大大提高了开发效率
- 比如我们要创建一个 web 项目,在使用 Spring 的时候,需要在 pom 文件中添加多个依赖,而 Spring Boot 则会帮助开发着快速启动一个 web 容器,在 Spring Boot 中,我们只需要在 pom 文件中添加一个 starter-web 依赖即可。
注册功能步骤:(前端、数据库)
1.创建SpringBoot工程 , 勾选Web->Spring Web
2.创建完工程后 检查Build 里面是否显示绿色对勾 ,如果有红色报错的话 安装以下步骤解决:
a.右侧边栏maven 里面 点击刷新
b.检查maven是否配置成功
c.如果确定maven配置过, 还是不行, 则找到.m2文件夹下的repository文件夹 删除, 删除完之后再次刷新maven
3.需要用数据库相关内容, 把pom.xml里面引入的两个数据库相关依赖添加到新工程
4.在工程的static里面添加一个index.html首页 里面添加注册和登录的超链接
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>首页</h1>
<a href="/reg.html">注册页面</a>
<a href="login.html">登录页面</a>
</body>
</html>
5. 创建reg.html注册页面 ,里面添加form表单 提交地址为/reg
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>注册页面</h1>
<form action="/reg">
<input type="text" name="username" placeholder="用户名">
<input type="text" name="password" placeholder="密码">
<input type="text" name="nick" placeholder="昵称">
<input type="submit" value="注册">
</form>
</body>
</html>
6.创建user类封装属性
package cn.tedu.boot21.enttity;
public class User {
private String username;
private String password;
private String nick;
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
", nick='" + nick + '\'' +
'}';
}
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 getNick() {
return nick;
}
public void setNick(String nick) {
this.nick = nick;
}
}
7.创建数据连接池
package cn.tedu.boot21.utils;
import com.alibaba.druid.pool.DruidDataSource;
import java.sql.Connection;
import java.sql.SQLException;
public class DButils {
private static DruidDataSource dds;
static{
//创建数据库连接池
dds=new DruidDataSource();
//设置数据库连接信息
dds.setUrl("jdbc:mysql://localhost:3306/empdb?characterEncoding=utf8");
dds.setUsername("root");
dds.setPassword("root");
dds.setInitialSize(3);//设置初始连接数量
dds.setMaxActive(5); //设置最大连接数量
}
public static Connection getConn() throws SQLException {
//从连接池对象中获取连接
Connection conn=dds.getConnection();
System.out.println("连接"+conn);
return conn;
}
}
8.创建controller.UserController 添加reg方法处理 /reg请求
package cn.tedu.boot21.controller;
import cn.tedu.boot21.enttity.User;
import cn.tedu.boot21.utils.DButils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@RestController //相当@ResponseBody+@Controller
public class UserController {
@RequestMapping("/reg")
public String reg(User user){
try ( Connection conn = DButils.getConn()){
String sql="insert into user values(null,?,?,?)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, user.getUsername());
ps.setString(2, user.getPassword());
ps.setString(3, user.getNick());
ps.executeUpdate();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
System.out.println("user = " + user);
return "注册成功";
}
}
项目分布