This article example shares the specific code of springboot+VUE to implement login and registration for your reference. The specific content is as follows 1. springBootCreate a springBoot project It is divided into three packages, namely controller, service, dao and xml files under the resource directory. UserController.java package springbootmybatis.controller; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import springbootmybatis.pojo.User; import springbootmybatis.service.UserService; import javax.annotation.Resource; @RestController public class UserController { @Resource UserService userService; @PostMapping("/register/") @CrossOrigin("*") String register(@RequestBody User user) { System.out.println("Someone requested to register!"); int res = userService.register(user.getAccount(), user.getPassword()); if(res==1) { return "Registration successful"; } else { return "Registration failed"; } } @PostMapping("/login/") @CrossOrigin("*") String login(@RequestBody User user) { int res = userService.login(user.getAccount(), user.getPassword()); if(res==1) { return "Login successful"; } else { return "Login failed"; } } } UserService.java package springbootmybatis.service; import org.springframework.stereotype.Service; import springbootmybatis.dao.UserMapper; import javax.annotation.Resource; @Service public class UserService { @Resource UserMapper userMapper; public int register(String account, String password) { return userMapper.register(account, password); } public int login(String account, String password) { return userMapper.login(account, password); } } User.java (I installed the lombok plugin) package springbootmybatis.pojo; import lombok.Data; @Data public class User { private String account; private String password; } UserMapper.java package springbootmybatis.dao; import org.apache.ibatis.annotations.Mapper; @Mapper public interface UserMapper { int register(String account, String password); int login(String account, String password); } UserMapper.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="springbootmybatis.dao.UserMapper"> <insert id="register"> insert into User (account, password) values (#{account}, #{password}); </insert> <select id="login" resultType="Integer"> select count(*) from User where account=#{account} and password=#{password}; </select> </mapper> Backbone Configuration application.yaml server.port: 8000 spring: datasource: Username: root password: 123456 url: jdbc:mysql://localhost:3306/community?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8 driver-class-name: com.mysql.cj.jdbc.Driver mybatis: type-aliases-package: springbootmybatis.pojo mapper-locations: classpath:mybatis/mapper/*.xml configuration: map-underscore-to-camel-case: true The database needs to create a corresponding table CREATE TABLE `user` ( `account` varchar(255) COLLATE utf8_bin DEFAULT NULL, `password` varchar(255) COLLATE utf8_bin DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; 2. Create a VUE project Install node, npm, and configure environment variables. npm i -g cnpm --registry=https://registry.npm.taobao.org Install VUE npm i -g vue-cli Initialize the package structure vue init webpack project Start a Project # Enter the project directory cd vue-01 # Compile npm install # Start npm run dev Modify the project file according to the following structure APP.vue <template> <div id="app"> <router-view/> </div> </template> <script> export default { name: 'App' } </script> <style> </style> welcome.vue <template> <div> <el-input v-model="account" placeholder="Please enter your account number"></el-input> <el-input v-model="password" placeholder="Please enter your password" show-password></el-input> <el-button type="primary" @click="login">Login</el-button> <el-button type="primary" @click="register">Register</el-button> </div> </template> <script> export default { name: 'welcome', data () { return { account: '', password: '' } }, methods: { register: function () { this.axios.post('/api/register/', { account: this.account, password: this.password }).then(function (response) { console.log(response); }).catch(function (error) { console.log(error); }); // this.$router.push({path:'/registry'}); }, login: function () { this.axios.post('/api/login/', { account: this.account, password: this.password }).then(function () { alert('Login successful'); }).catch(function (e) { alert(e) }) // this.$router.push({path: '/board'}); } } } </script> <style scoped> </style> main.js // The Vue build version to load with the `import` command // (runtime-only or standalone) has been set in webpack.base.conf with an alias. import Vue from 'vue' import App from './App' import router from './router' import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' import axios from 'axios' import VueAxios from 'vue-axios' Vue.use(VueAxios, axios) Vue.use(ElementUI) Vue.config.productionTip = false /* eslint-disable no-new */ new Vue({ el: '#app', router, components: {App}, template: '<App/>' }) router/index.js import Vue from 'vue' import Router from 'vue-router' import welcome from '@/components/welcome' Vue.use(Router) export default new Router({ routes: [ { path: '/', name: 'welcome', component: welcome } ] }) config/index.js 'use strict' // Template version: 1.3.1 // see http://vuejs-templates.github.io/webpack for documentation. const path = require('path') module.exports = { dev: { // Paths assetsSubDirectory: 'static', assetsPublicPath: '/', proxyTable: { '/api': { target: 'http://localhost:8000', //Domain name of the backend interface// secure: false, //If it is an https interface, you need to configure this parameter changeOrigin: true, //If the interface is cross-domain, you need to configure this parameter pathRewrite: { '^/api': '' //Path rewriting, when your URL contains the api field, such as /api/v1/tenant, //You can rewrite the path to the same name as the rule, which means you don't need to add the API during development.} } }, // Various Dev Server settings host: 'localhost', // can be overwritten by process.env.HOST port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined autoOpenBrowser: false, errorOverlay: true, notifyOnErrors: true, poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions- // Use Eslint Loader? // If true, your code will be linted during bundling and // linting errors and warnings will be shown in the console. useEslint: true, // If true, eslint errors and warnings will also be shown in the error overlay // in the browser. showEslintErrorsInOverlay: false, /** * Source Maps */ // https://webpack.js.org/configuration/devtool/#development devtool: 'cheap-module-eval-source-map', // If you have problems debugging vue-files in devtools, // set this to false - it *may* help // https://vue-loader.vuejs.org/en/options.html#cachebusting cacheBusting: true, cssSourceMap: true }, build: { // Template for index.html index: path.resolve(__dirname, '../dist/index.html'), // Paths assetsRoot: path.resolve(__dirname, '../dist'), assetsSubDirectory: 'static', assetsPublicPath: '/', /** * Source Maps */ productionSourceMap: true, // https://webpack.js.org/configuration/devtool/#production devtool: '#source-map', // Gzip off by default as many popular static hosts such as // Surge or Netlify already gzip all static assets for you. // Before setting to `true`, make sure to: // npm install --save-dev compression-webpack-plugin productionGzip: false, productionGzipExtensions: ['js', 'css'], // Run the build command with an extra argument to // View the bundle analyzer report after build finishes: // `npm run build --report` // Set to `true` or `false` to always turn it on or off bundleAnalyzerReport: process.env.npm_config_report } } Enter your account and password to implement simple registration and login functions. The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM. You may also be interested in:
|
<<: Tutorial on installing jdk1.8 on ubuntu14.04
>>: How to reset the password if the Ubuntu 18.04 server password is forgotten or tampered with
Will mysql's IN invalidate the index? Won'...
During the development process, if garbled charac...
Find the problem Let's look at the problem fi...
1. Use basic text elements to mark up content Fir...
This article shares the specific code of JavaScri...
I use tengine, the installation directory is /usr...
Table of contents 1. The concept of process and t...
Preface: Vue3 has been released for a long time. ...
Table of contents 1. What is a cursor? 2. How to ...
Database transaction isolation level There are 4 ...
Online shopping mall database-product category da...
This article uses an example to describe the crea...
The generation and verification of random codes i...
This article describes the example of MySQL sched...
Table of contents 1. Background Architecture Prob...