Springboot入门

day01搭建项目、参数传递

搭建第一个项目

使用idea创建项目,选择Web依赖

static目录下新建index页面

访问localhost:8080页面,显示hello springboot.

处理客户端的动态请求

新建controller包,controller类

添加@Controller注解

方式一.编写方法,添加@RequestMapping注解

    @RequestMapping("/hello")
    public void hello(HttpServletResponse response) throws IOException {
        System.out.println("服务器收到了请求");
        //设置响应类型及字符集
        response.setContentType("text/html;charset=utf-8");
        //得到输出对象并输出内容
        PrintWriter pw = response.getWriter();
        pw.print("Hello Spring!");
        //关闭资源
        pw.close();
    }

方式二:编写方法,添加@RequestMapping @ResponseBody注解

    @RequestMapping("/hello")
    @ResponseBody
    public String hello(){
        return "responseBody";
    }

访问localhost:8080/hello页面,即可看到相应页面。

客户端发出请求的四种方式

  1. 在浏览器的地址栏中写请求地址
  2. 在html页面中通过超链接发出请求
  3. 通过form表单发出请求
  4. 通过前端技术发出异步请求

获取客户端传递参数的方式

1.通过HttpServeletRequest获取参数

    @RequestMapping("/parameter")
    @ResponseBody
    public String parameter(HttpServletRequest request){
        String info = request.getParameter("info");
        return "我是参数" + info;
    }

2.在处理请求方法的参数列表位置直接声明获取

1.新建html表单

<form action="/reg" method="get">
    <input type="text" name="username" placeholder="用户名">
    <input type="text" name="password" placeholder="密码">
    <input type="text" name="nick" placeholder="昵称">
    <input type="text" name="age" placeholder="年龄">
    <input type="submit" value="提交">
</form>

2.新建reg方法,添加注解

    @RequestMapping("/reg")
    @ResponseBody
    public String reg(String username,String password,String nick,int age){
        System.out.println("username = " + username + ", password = " +
                password + ", nick = " + nick + ", age = " + age);
        return "提交成功";
    }

通过创建实体类,封装数据

创建一个封装参数的对象User,在处理请求的方法参数列表中直接声明该类型的对象,SpringMVC框架会自动实例化该对象并通过调用set方法的方式,把接收到的参数封装到对象中,

切记:属性名和form表单中的参数名必须一致

创建vo包,创建User类

    @RequestMapping("/reg")
    @ResponseBody
    public String reg(User user){
        System.out.println("user = " + user);
        return "提交成功";
    }

day02 引入数据库_实现简单的注册登录功能

1.新建Spring initializr模块,添加SpringWeb依赖

2.pom文件导入JDBC驱动,数据库连接池驱动

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.15</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.21</version>
        </dependency>

3.新建controller包-UserController类;vo包-User类;Utils包-DBUtils类;

4.新建reg.html,login.html页面

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidPooledConnection;

import java.sql.Connection;
import java.sql.SQLException;

public class DBUtils {
    private static DruidDataSource dds;/*dds定义全局变量,
    静态块或者静态方法只能访问静态变量*/
    static {
        //创建连接池对象
         dds = new DruidDataSource();
        //设置数据库链接信息
        dds.setUrl("jdbc:mysql://localhost:3306/empdb?" +
                "characterEncoding=utf8&serverTimezone=Asia/Shanghai");
        dds.setUsername("root");
        dds.setPassword("root");
        //设置初始连接数量
        dds.setInitialSize(3);
        //设置最大连接数量
        dds.setMaxActive(5);
    }
    //1.封装一个方法获取链接
    public static Connection getConn() throws SQLException {
        //从连接池对象中获取链接
        DruidPooledConnection conn = dds.getConnection();
        System.out.println(conn);
    //得到的链接对象return
        return conn;
    }


}
@Controller
public class UserController {
    @RequestMapping("/reg")
    @ResponseBody
    public String reg(User user){
        System.out.println("user = " + user);
        if (user.getUsername() == null){
            return "返回首页";
        }
        //1.判断用户名是否已存在
        try (Connection conn = DBUtils.getConn()){
            String sql = "select * from user where username = ?";
            PreparedStatement ps = conn.prepareStatement(sql);
            ps.setString(1,user.getUsername());
            ResultSet rs = ps.executeQuery();
            if (rs.next()){
                return "用户名已存在!";
            }
            String insertSql = "insert into user values (null,?,?,?)";
            PreparedStatement insertPs = conn.prepareStatement(insertSql);
            insertPs.setString(1,user.getUsername());
            insertPs.setString(2,user.getPassword());
            insertPs.setString(3,user.getNick());
            insertPs.executeUpdate();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return "恭喜你,注册成功";

    }

}

注:JDBC驱动的依赖版本要与DBUtils中dds.setUrl相匹配,否则数据库可能会出现连接失败的情况。

登录功能代码:

    @RequestMapping("/login")
    @ResponseBody
    public String login(User user){
        System.out.println(user);
        try(Connection conn = DBUtils.getConn()) {
            String sql = "select password from user where username = ?";
            PreparedStatement ps = conn.prepareStatement(sql);
            ps.setString(1,user.getUsername());
            ResultSet rs = ps.executeQuery();
            if (rs.next()){
                String password = rs.getString(1);
                if (password.equals(user.getPassword())){
                    return "登录成功";
                }else {
                    return "密码错误";
                }
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return "用户不存在";
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值