山大网安靶场实验平台项目—个人记录(二)

系列文章专栏地址:

山东大学网络安全靶场实验平台


本期内容:

  • springboot相关准备
  • pom.xml
  • yml语法
  • 注解
  • lombok
  • 快捷键
  • mybatis
  • 搭建后端——实现登录

springboot相关准备

首先是下载idea企业版,因为社区版好像缺不少东西,然后看教程创建就行。
然后我记录了几个知识点:

1.pom.xml

在这里插入图片描述
一个springboot项目,最主要的coding部分就是src,src里面有main和test文件夹,其中main又是最主要的,test甚至可以不用。
pom.xml与src是同一级目录,pom.xml 里面写好了大量依赖,每次添加新的依赖放进去,然后再点击右边的maven刷新,它就可以自动帮你下载配置。
在这里插入图片描述
有的时候,右侧找不到这个maven,你需要在搜索栏搜索add maven然后添加即可。

2.yml
在这里插入图片描述
src/main/resources/下面有一个application.properties,这是一个配置文件,主要可以修改地址,端口号,以及连接数据库的信息等等。也可以改成.yml文件或者.yaml文件。那么我跟着教程学的是yml语法,所以改成了application.yml
在这里插入图片描述
3.注解
springboot大量的注解为我们的开发提供了方便,对于新手可能不太理解什么是注解:
注解就是一种描述数据的数据,比如这个Override注解,它告诉编译器这里是一个重写的方法。

@Override
public String toString() {
    return "welcome to override";
}

注解是一种应用于类、方法、参数、变量、构造器及包声明中的特殊修饰符。它是一种由JSR-175标准选择用来描述元数据的一种工具

4.lombok

刚说完注解,Lombok是一款Java开发插件,可以通过它定义的注解来精简冗长和繁琐的代码,主要针对简单的Java模型对象(POJO)。

好处就显而易见了,可以节省大量重复工作,特别是当POJO类的属性增减时,需要重复修改的Getter/Setter、构造器方法、equals方法和toString方法等。
导入依赖如下:

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

方法是打开pom.xml,然后放进去
在这里插入图片描述
然后刷新等待idea帮你配置。
lombok使用方法之一:在编写类时,添加注解Data,它会自动为你实现getter setter等方法。
在这里插入图片描述

5.idea快捷键:
在编写类的时候,可以添加注解让其生成,也可以使用快捷键快速生成
Fn+alt+insert:自动插入get和set方法
可以自己在File->settings->keymap->Main menu->Code->Generate…里面改
在这里插入图片描述
6.mybatis
Mybatis是一个框架,它内部封装了JDBC,加载驱动、创建连接、创建statement等繁杂的过程,开发者开发时只需要关注如何编写SQL语句,可以严格控制sql执行性能,灵活度高。
在pom.xml添加依赖:

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>

搭建后端

我们现在已经有了前端页面,包括主页面,登录页面,靶场页面等等。
我们需要有后端能为其提供数据库的交互。
先创建一个springboot项目,然后将之前写的前端内容放入vue文件夹,最后将这两个文件夹放到同一目录下,这下就可以前后端一起开发了:
在这里插入图片描述
然后我们需要给后端连接数据库:连接mysql
在这里插入图片描述
输入User(一般是root),密码和数据库名称,测试连接成功后就可以连上了。
在这里插入图片描述
我这里建了一个数据库名:csrp,里面只有一个表user,他的属性有userid,username,password,phone等。初学越简单越好,后面再进行完善。

我们想实现登录功能:
1.前端重新修改了界面,背景颜色设置 background-image: linear-gradient(to bottom right, #000000, #483D8B);
就可以设为渐变色。
在这里插入图片描述

两个输入框通过v-model绑定username和password,按钮绑定了click事件login
在这里插入图片描述
向后端发送post请求,将user传给后端,后端的controller调用service,service再调用mapper,mapper和数据库进行交互验证,然后把信息传回来。我设定了200代表成功,这时候就登录了,然后跳转到主页面

login() {
      request.post("/user/login", this.user).then(res => {
        if (res.code === '200') {
          router.push("/")
        } else {
          this.$message.error(res.msg)
        }
      })
    }

2.后端定义usercontroller、usermapper和userservice
controller层定义login方法,它设置接口的路径,后端的地址我设置的是localhost:9090,我们还需要设置每个接口的地址,这样加以区分不同接口。在usercontroller中地址是/user,这里再加上/login。所以前端要通过localhost:9090/user/login去访问此接口

在这里插入图片描述
我们在前端src/utils可以新建一个requesr.js,去简化接口的写法。可以参考别的博客

3.解决跨域问题
因为前端端口是8080,而后端是9090,所以我们程序在访问的时候会访问不到,因为跨域了,解决方法:设置代理跳转到9090,创建vue.config.js文件,内容如下:

// 跨域配置
module.exports = {
    devServer: {                //记住,别写错了devServer//设置本地默认端口  选填
        port: 8080,
        proxy: {                 //设置代理,必须填
            '/api': {              //设置拦截器  拦截器格式   斜杠+拦截器名字,名字可以自己定
                target: 'http://localhost:9090',     //代理的目标地址
                changeOrigin: true,              //是否设置同源,输入是的
                pathRewrite: {                   //路径重写
                    '^/api': ''                     //选择忽略拦截器里面的内容
                }
            }
        }
    }
}

4.定义一些错误码

    String CODE_200 = "200"; //成功
    String CODE_401 = "401";  // 权限不足
    String CODE_400 = "400";  // 参数错误
    String CODE_500 = "500"; // 系统错误
    String CODE_600 = "600"; // 其他业务异常

这就是404等错误的定义处,后端将码返给前端供我们判断问题。

最后测试一下:
数据库中建立一列数据,前端去登录,按F12去看一下POST请求的内容
在这里插入图片描述
可见成功了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值