2025-1-21-简易登录界面的实现

news/2025/1/30 14:57:52/文章来源:https://www.cnblogs.com/liuzh-blog/p/18692341

前端

我们需要两个输入框,一个登录按钮,像这样(为了好看,用的是element-ui的组件,使用的话需要先去下载文件引用)

代码如下

系统
      <el-form ref="form" :model="user" label-width="80px"><el-form-item label="用户名"><el-input v-model="user.userID" style="width: 30%; margin: 0 auto;"></el-input></el-form-item><el-form-item label="密码"><el-input v-model="user.password" style="width: 30%; margin: 0 auto;"></el-input></el-form-item><el-form-item><el-button type="primary" @click="dy">立即登录</el-button><el-button @click="zc">注册</el-button></el-form-item></el-form>

然后呢我们就需要将数据传回到后端去了,这里用的是vue+axios将储存有我们输入两个数据的user以post方式传输,根据传回来的数据来进行不同的操作,我这里是成功登入就将界面展示,同时储存相应的数据,也可以是临时储存一下,转换到另一个主界面html中,失败则是不转换,就出现两条警告消息

   dy(){var _this = this;axios({method: 'post',url: 'http://localhost:8080/dy',data:_this.user}).then((res) => {if(Array.isArray(res.data) && res.data.length > 0&&res.data!='fail'){_this.isShowDy=false;_this.isShow=true;_this.user=res.data[0];_this.$message({message: '登录成功',type: 'success'});setTimeout(() => {_this.$message({message: '欢迎您,' + _this.user.userID,type: 'success'});}, 3000);}else if(res.data=='fail'){_this.$message({message: '登录失败',type: 'warning'});setTimeout(() => {_this.$message({message: '您可能还未注册或账号密码错误',type: 'warning'});}, 3000);}})},

后端代码因为是用的springboot的模型,在新建时类型就选择了maven,依赖项选择了我们的spring web,lombok,MyBatis Framework,MySQL Driver,连接数据库什么的就不说了,在这里提一下依赖的目的呢,主要是现在我们不注意版本使用lombok的时候会有不兼容问题,导致使用@Data的getter跟setter方法不能取到值,如果也有这种问题把设置里的注解编译器换成从项目类路径获取,或者自己从网上查找解决

跳过构造结构,在mapper的接口中我们需要有从数据库拿到数据的语句,这就是我们登录需要的语句

    @Select("select * from user where UserID=#{UserID} and password=#{password}")public List<user> selectdy(String UserID, String password);

下边呢我们需要先引入fastjson依赖,这是来进行json跟java对象之间转换的,我放在了编辑处理器中

        <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.78</version></dependency>

然后我们就是登录的GetMapping跟PostMapping,我有很多的输出语句,毕竟是简易的,而且也被lombok卡了好久,确实是红温了,完整体错误提示用try跟catch来打配合;这两个函数是一样的,获取到请求体中的json格式后我们将他转化成String类型,再转成user类型,然后实行查找方法,用isEmpty()来验证是否有值以此决定传输回前端的数据

    @GetMapping("/dy")public void dy(HttpServletRequest req, HttpServletResponse res) throws IOException {System.out.println("开始登录,查找个人信息中");//获取请求体数据BufferedReader reader = req.getReader();String line = reader.readLine();System.out.println(line);//获取到为json格式,我们将其转化为java对象user u= JSON.parseObject(line,user.class);System.out.println(u.toString());System.out.println(u.getUserID());//实行查找方法,用list<user>承接,再用isEmpty验证是否为空List<user> u1=s.selectdy(u.getUserID(),u.getPassword());System.out.println(u1);res.setContentType("application/json;charset=UTF-8");String JsonU=JSON.toJSONString(u1);if(!u1.isEmpty()){res.getWriter().write(JsonU);}else {res.getWriter().write("fail");}}@PostMapping("/dy")public void dy2(HttpServletRequest req, HttpServletResponse res) throws IOException {this.dy(req, res);}

这基本上就是我通用的一个简易模板,如果需要更多功能也是在这基础上增加,基本上不会被影响到

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SSM

Spring Framework系统架构学习路线一、核心概念 代码书写现状:耦合度偏高 解决方案:使用对象时,在程序中不要主动使用new产生对象,转换为有外部提供对象 IOC(Inversion of Control)控制反转:对象的创建控制权由程序转移到外部,这种思想称为控制反转 目标:充分解耦 Spr…

2025寒假集训

1.斜率优化dp 以例题P3628 [APIO2010] 特别行动队 设\(f[i]\)为以\(i\)结尾最大的修正战斗力 易得状态转移方程\(f[i]=max(f[j]+a*(s[i]-s[j])^2+b*(s[i]-s[j])+c)\) 其中\(1 \le j \le i-1\) 把方程化简得:\(f[i]=f[j]+a*s[i]^2-2*a*s[i]*s[j]+a*s[j]^2+b*s[i]-b*s[j]+c\) 将含…

REST风格 -2025/1/20

REST风格入门 package com.stdu.controller;import com.stdu.domain.Book; import com.stdu.domain.User; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*;@Controller public class BookController {@RequestMapping(v…

manim边学边做--时针方向变换

今天介绍的两个动画类ClockwiseTransform和CounterclockwiseTransform, 用于将某一个元素按照时针方向变换为另一个对象。ClockwiseTransform:将一个对象以顺时针方向变换成另一个对象 CounterclockwiseTransform:将一个对象以逆时针方向变换成另一个对象1. 动画概述 1.1. C…

ADALM-Pluto修改芯片类型为AD9364模式

ADALM-Pluto 使用芯片AD9363(325 MHz - 3.8 GHz),但可切换至 AD9364(70 MHz - 6 GHz)模式,此篇随笔将采用串口调试的方式将 Pluto 设置为 AD9364 芯片,进而提高接收信号频率范围,已包含FM广播信号的频率。ADALM-Pluto 使用芯片AD9363(325 MHz - 3.8 GHz),但可切换至…

java基础Day8 异常

一、简单分类 三种类型的异常Exception:检查性异常:最具代表性的检查性异常是用户错误或者问题引起的异常,这是程序员无法预见的。例如要打开一个不存在的文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。 运行时异常:运行时异常是可能被程序员避免的异常。与…

《CPython Internals》读后感

一、 为什么选择这本书? Python 是本人工作中最常用的开发语言,为了加深对 Python 的理解,更好的掌握 Python 这门语言,所以想对 Python 解释器有所了解,看看是怎么使用C语言来实现Python的,以期达到对 Python语言的掌握达到精通的程度,。 关于 Python 解释器的书不多—…

文档智能扫描,提升无纸化办公效率

随着无纸化办公的推广和移动设备的普及,用户迫切需要将纸质文档快速、准确地转换成电子格式,以提高工作效率和信息管理的便捷性。同时,用户将文档扫描成电子版后,可以自行通过加密和访问控制提高电子文档的安全性,以满足法律和合规要求。 HarmonyOS SDK 场景化视觉服务(V…

Grafana快速入门指南上篇

一.Grafana安装 1.下载grafana我们课堂实验均以Grafana 9.X版本实验的,更高版也可以实验,但是部分插件可能兼容性不太友好。下载地址:https://grafana.com/grafana/download/9.5.212.安装grafana apt-get install -y adduser libfontconfig1 muslwget https://dl.grafana.com…

dvwa靶场-----靶场搭建

dvwa靶场-----靶场搭建 一.环境准备: 第一步:下载PHPstudy: 找到PHPstudy官网,下载windows版小皮面板,然后安装。官网下载地址:https://www.xp.cn/PHPstudy第二步:安装PHPstudy并配置环境: 安装好小皮面板后打开Apache和MySQL, 访问127.0.0.1得到如下界面就是建立成功二.DVWA…