【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(2)后端跨域、登录模块、springboot分层架构、IDEA修改快捷键、vue代码风格

项目笔记为项目总结笔记,若有错误欢迎指出哟~

【项目专栏】
【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(1)spring boot项目搭建、vue项目搭建、微信小程序项目搭建
【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(2)后端跨域、登录模块、springboot分层架构、IDEA修改快捷键、vue代码风格

java+vue+微信小程序项目】从零开始搭建——健身房管理平台

  • 后端处理跨域
    • 1.处理方式(3种)
    • 2.跨域处理
  • 登录模块
    • 1.界面设计
    • 2.接口设计
  • 前端登录组件
    • 1.删除不需要的组件
    • 2.连接后端测试
    • 3.全局样式
    • 4.element ui
    • 5.引入iconfont
    • 6.引入axios
    • 7.登录组件(Login.vue)
      • (1)模板部分(template标签)定义了组件的结构和布局
      • (2)脚本部分(script标签)定义了组件的行为
      • (3)样式部分(style标签)
      • (4)测试登录组件
  • 后端登录功能
    • 分层架构
    • 1.mysql数据库
      • (1)新建数据库
      • (2)user实体
      • (3)创建user表
      • (4)插入数据
    • 2.数据访问层
      • (1)UserDao.java
      • (2)UserMapper.xml
      • (3)User.java
    • 3.业务逻辑层
      • (1)LoginService.java
      • (2)LoginServiceImpl.java
    • 4.表现层
      • (1)LoginController.java
  • 前端修改登录组件
  • 验证登录模块
  • 知识点:springboot分层架构
  • 工具:IDEA修改get、set、tostring方法快捷键修改
  • 工具:vue代码风格
    • 原本的代码风格
    • 格式化后的代码风格(shift+alt+f)
    • 步骤

后端处理跨域

1.处理方式(3种)

在 Spring Boot 中处理跨域请求有几种方式,下面是其中几种常用的方式:

1.使用 @CrossOrigin 注解:可以在控制器类或方法上使用 @CrossOrigin 注解来启用跨域支持。通过指定允许跨域的源地址、请求方法、头部信息等,可以实现对特定请求的跨域支持。示例代码如下:

@CrossOrigin(origins = "http://example.com", methods = RequestMethod.GET)
@RestController
public class MyController {
   
    // 控制器方法
}

2.自定义 Filter:可以编写一个自定义的 Filter,在其中添加响应头信息来实现跨域请求的支持。首先创建一个实现了 javax.servlet.Filter 接口的类,然后在 doFilter 方法中添加响应头信息。在 Spring Boot 中,可以通过配置类将该 Filter 注册到应用程序中。示例代码如下:

@Component
public class CorsFilter implements Filter {
   
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
   
        HttpServletResponse httpResponse = (HttpServletResponse) response;
        httpResponse.setHeader("Access-Control-Allow-Origin", "http://example.com");
        httpResponse.setHeader("Access-Control-Allow-Methods", "GET,POST,PUT,DELETE");
        httpResponse.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");
        chain.doFilter(request, response);
    }
}

3.全局配置跨域支持:可以通过在 Spring Boot 的配置文件中添加跨域相关的配置项来实现全局的跨域支持。在 application.properties 或 application.yml 文件中添加如下配置:

# application.properties
spring.webmvc.cors.allowed-origins=http://example.com
spring.webmvc.cors.allowed-methods=GET,POST,PUT,DELETE
spring.webmvc.cors.allowed-headers=Content-Type, Authorization

2.跨域处理

util——>WebConfig.java
在这里插入图片描述

package com.hui.util;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

//全局配置类,配置跨域请求
@Configuration
public class WebConfig implements WebMvcConfigurer {
   

    @Override
    public void addCorsMappings(CorsRegistry registry) {
   
        registry
                //允许访问的路径
                .addMapping("/**")
                //配置请求来源
                .allowedOrigins("http://localhost:8080")
                //允许跨域访问的方法
                .allowedMethods("GET","POST","DELETE","PUT","OPTION")
                //允许携带参数
                .allowCredentials(true)
                //请求头
                //.allowedHeaders()
                //最大效应时间
                .maxAge(3600);

    }
}

登录模块

1.界面设计

在这里插入图片描述

2.接口设计

  • 接口地址:localhost:9999/login
  • 返回格式:json
  • 请求方式:post
参数名 解释
username 账号
password 密码
  • 登录接口返回参数说明
参数名 解释
id ID 号
username 账号
password 密码
phoneNumber 电话号码
role 角色
state 状态
flag 标志登录是否成功

前端登录组件

1.删除不需要的组件

app.vue

<template>
  <div id="app">
    <router-view />
  </div>
</template>

<style>

</style>

router——>index.js

import Vue from "vue";
import VueRouter from "vue-router";
import TestView from "../views/TestView.vue";

Vue.use(VueRouter);

const routes = [
  {
   
    path: "/",
    name: "TestView",
    component: TestView,
  },

];

const router = new VueRouter({
   
  routes,
});

export default router;

2.连接后端测试

views——>TestView.vue

<template>
  <div>
    <button @click="click">test测试</button>
  </div>
</template>

<script>

import axios from 'axios';

export default {
     
  name: "TestView",
  components: {
     
    
  },
  methods: {
     
    click(){
     
      axios.get('http://localhost:9999/test').then((res)=>{
     
        console.log(res);
      }).catch((err)=>{
     
        console.log(err)
      })
    }
  }
};
</script>

核心代码讲解

click(){
    axios.get('http://localhost:9999/test').then((res)=>{
      console.log(res);
    }).catch((err)=>{
      console.log(err)
    })
}

这段代码是使用 JavaScript 编程语言编写的,其中使用了一些语法和函数库。

  1. axios.get('http://localhost:9999/test'):这是使用 Axios 库发送 HTTP GET 请求的语法。Axios 是一个基于 Promise 的 HTTP 客户端,它提供了简洁的 API 来执行异步请求。在这里,我们使用 Axios 的 get() 方法发送一个 GET 请求到指定的 URL。

  2. .then((res) => { console.log(res); }):这是 Promise 的 then() 方法的使用,用于注册成功的回调函数。当请求成功完成时,服务器的响应会作为参数传递给这个回调函数,并将其打印到控制台上。

  3. .catch((err) => { console.log(err); }):这是 Promise 的 catch() 方法的使用,用于注册失败的回调函数。当请求过程中发生错误时,错误信息会作为参数传递给这个回调函数,并将其打印到控制台上。

在这里插入图片描述
测试成功
在这里插入图片描述

3.全局样式

1.创建文件global.css
assets——>css——>global.css

/* 全局式样 */
html,body,#app{
   
    height: 100%;
    margin: 0px;
    padding: 0px;
}

2.引入全局样式
项目入口文件main.js

import './assets/css/global.css'  // 添加全局样式
import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
import './assets/css/global.css'  // 添加全局样式

Vue.config.productionTip = 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/211660.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

自然语言处理 (NLP) 中的组合语义分析

埃弗顿戈梅德&#xff08;Everton Gomede&#xff09; 一、介绍 自然语言处理 &#xff08;NLP&#xff09; 中的组合语义分析是一个引人入胜且复杂的话题。为了充分理解它&#xff0c;将这个概念分解成它的基本组成部分是至关重要的&#xff1a;组合语义及其在NLP中的应用。组…

【开源】基于JAVA的超市账单管理系统

项目编号&#xff1a; S 032 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S032&#xff0c;文末获取源码。} 项目编号&#xff1a;S032&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统设计3.1 总体设计3.2 前端设计3…

EasyExcel写入多个sheet

直接上代码&#xff1a; public static void main(String[] args) {// 设置excel工作簿ExcelWriter excelWriter EasyExcel.write("F:\\excel\\a.xls").build();List<User> userList new ArrayList<>();userList.add(new User("lisi", "…

Redis缓存的使用

什么是缓存 缓存就是数据交换的缓冲区&#xff0c;是存储数据的临时地方&#xff0c;一般读写性能较高。 缓存的作用&#xff1a; 降低后端负载提高读写效率&#xff0c;降低响应时间 缓存的成本&#xff1a; 数据一致性成本代码维护成本运维成本 Redis特点 键值型数据库…

STM32DAC输出可调电压、三角波、正弦波

STM32DAC输出可调电压、三角波、正弦波 DAC简介输出可调电压输出正弦波输出三角波 本期内容我们将学习stm32DAC的原理和使用方法 DAC简介 DAC&#xff0c;全称&#xff1a;Digital-to-Analog Converter&#xff0c;指数字/模拟转换器。可以将数字量转换为模拟量进行输出&#…

深入了解Vue.js:构建现代、响应式的前端应用

文章目录 1. Vue.js简介1.1 安装Vue.js 2. Vue的核心概念2.1 数据驱动2.2 组件化2.3 生命周期钩子 3. Vue的特性3.1 响应式数据3.2 模板语法3.3 组件通信 4. 示例项目结语 &#x1f388;个人主页&#xff1a;程序员 小侯 &#x1f390;CSDN新晋作者 &#x1f389;欢迎 &#x1…

2023 如何下载最干净的 win10 win11 微软官方原版系统镜像(详细图文)

前言 不会吧不会吧&#xff0c;不会到现在还有人不会下载原版系统镜像吧 开始 win10官方下载工具下载地址&#xff1a;https://www.microsoft.com/zh-cn/software-download/windows10 win11官方下载工具下载地址&#xff1a;https://www.microsoft.com/zh-cn/software-downl…

java实验:数据库应用(idea+mysql+php)

设计用户注册和登录界面&#xff0c;实现用户注册和登录操作。 设计用户注册/登录界面;使用工具在MySQL中创建user表&#xff0c;包括学号、姓名、密码、专业、班级&#xff1b;实现注册操作&#xff1a;在user表中插入一条新纪录&#xff0c;但学号不能重复&#xff1b;实现登…

Mybatis 操作续集2(结合上文)

Mybatis 是一个持久层框架,用于简化数据库的操作,和Spring 没有任何关系,我们现在能使用它是因为 Spring Boot 把Mybatis 的依赖给引入进来了,在 pom.xml 里面 Mybatis 如何进行重命名? 看最后两行代码,这样就能重命名了 package com.example.mybatisdemo.mapper;import com…

最大单词数算法分析

题目描述&#xff1a; 算法一&#xff1a; 代码实现&#xff1a; # include<stdio.h> # include<string.h>int main(){//char text[100]"leet code";//char brokenLetters[26]"lt";char text[100]"hello world";char brokenLetters…

代码随想录第二十二天(一刷C语言)|组合总数电话号码的字母组合

创作目的&#xff1a;为了方便自己后续复习重点&#xff0c;以及养成写博客的习惯。 一、组合总数 思路&#xff1a;参考carl文档和视频 1、需要一维数组path来存放符合条件的结果&#xff0c;二维数组result来存放结果集。 2、targetSum 目标和&#xff0c;也就是题目中的…

AD7124-4 实测热电偶数据读取,电压精度到稳定到±1uV, 电压波动260nV, 温度精度到±0.01℃

AD7124-4 实测热电偶数据读取&#xff0c;电压精度到稳定到1uV, 电压波动260nV, 温度精度到0.01℃ AD7124_STM32_ADI官网例程使用stm32 和ad7124做温控调试&#xff0c;发现效果还是不错的&#xff0c;至少比ads1256的效果好多啦&#xff01;Chapter1 AD7124-4 实测热电偶数据读…

OpenSSH 漏洞修复升级最新版本

Centos7系统ssh默认版本一般是OpenSSH7.4左右&#xff0c;低版本是有漏洞的而且是高危漏洞&#xff0c;在软件交付和安全扫描上是过不了关的&#xff0c;一般情况需要升级OpenSSH的最新版本 今天详细说下升级最新版本的处理过程&#xff08;认真看会发现操作很简单&#xff0c…

springboot 整合 Spring Security 上篇

1.创建springBoot 项目工程(spring6.0的底层、JDK17) 1.添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency>配置完成启动访问controller会出现登录…

P5 链表 尾部插入新节点(不是指定点)

目录 前言 01 链表数据插入之直接在链表尾插入&#xff08;不是指定点&#xff09; 02 尾插创建链表优化 示例代码 前言 &#x1f3ac; 个人主页&#xff1a;ChenPi &#x1f43b;推荐专栏1: 《C》✨✨✨ &#x1f525; 推荐专栏2: 《 Linux C应用编程&#xff08;概念…

JS逆向-mytoken之code参数

前言 本文是该专栏的第60篇,后面会持续分享python爬虫干货知识,记得关注。 本文以mytoken为例,通过js逆向获取其code参数的生成规律。具体的“逆向”思路逻辑,笔者将会详细介绍每个步骤,并且将在正文结合“完整代码”进行详细说明。 接下来,跟着笔者直接往下看正文详细…

Halcon参考手册目标检测和实例分割知识总结

1.1 目标检测原理介 目标检测&#xff1a;我们希望找到图像中的不同实例并将它们分配给某一个类别。实例可以部分重叠&#xff0c;但仍然可以区分为不同的实例。如图(1)所示&#xff0c;在输入图像中找到三个实例并将其分配给某一个类别。 图(1)目标检测示例 实例分割是目标检…

轻量封装WebGPU渲染系统示例<40>- 多层材质的Mask混合(源码)

当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/rendering/src/voxgpu/sample/MaskTextureEffect.ts 当前示例运行效果: 两层材质效果: 三层材质效果: 此示例基于此渲染系统实现&#xff0c;当前示例TypeScript源码如下&#xff1a; export c…

笔记-基于CH579M模块通过网线直连电脑进行数据收发(无需网络)

刚学习&#xff0c;做个记录。 基于CH579M模块通过网线直连电脑进行数据收发(无需网络) 目录 一、工具1、CH579模块2、 网线3、电脑以及网络调试工具 二、操作步骤1、TCP/UDP等程序下载以及设置以太网IP2、网络断开3、检查以太网是否正常显示并稳定4、打开网络调试助手进行测试…

643. 子数组最大平均数 I

子数组最大平均数 I 描述 : 给你一个由 n 个元素组成的整数数组 nums 和一个整数 k 。 请你找出平均数最大且 长度为 k 的连续子数组&#xff0c;并输出该最大平均数。 任何误差小于 10-5 的答案都将被视为正确答案。 题目 : LeetCode 643.子数组最大平均数 :: 643. 子数…
最新文章