Springboot实现登录注册

功能:1、实现用户的登录

2、实现用户的注册以及重名的判断

LoginControl:

package com.example.demo.controls;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import com.example.demo.service.*;@RestController
public class LoginControl {@Autowiredprivate UserInfServiceInterface userInfService;@RequestMapping("/login")public ModelAndView login(String userid, String userpwd) {if (userInfService.login(userid, userpwd) == 1)return new ModelAndView("login_success.jsp");elsereturn new ModelAndView("login_failure.jsp");}}

RegisterControl:

package com.example.demo.controls;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;import com.example.demo.service.*;import com.example.demo.model.UserInf;@RestController
public class RegisterControl {@Autowiredpublic UserInfServiceInterface userInfService;@RequestMapping("/register")public ModelAndView register(UserInf ui) {if (userInfService.register(ui) == 1)return new ModelAndView("register_success.jsp");else if (userInfService.register(ui) == 0)return new ModelAndView("register_failure_user.jsp");elsereturn new ModelAndView("register_failure.jsp");}}

UserInfDaoInterface:

package com.example.demo.dao;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Component;import com.example.demo.model.*;
@Mapper
public interface UserInfDaoInterface {@Select("select count(*) from userinf where userid=#{userid} and userpwd=#{userpwd}")public int selectByIdPwd(@Param("userid")String userid,@Param("userpwd")String userpwd);@Select("select count(*) from userinf where realname=#{realname}")public int selectByRealname(@Param("realname")String realname);@Insert("insert into userinf values(#{userid},#{userpwd},#{realname})")public int insert(UserInf ui);
}

UserInf:

package com.example.demo.model;public class UserInf {private String userid;private String userpwd;private String realname;public String getUserid() {return userid;}public void setUserid(String userid) {this.userid = userid;}public String getUserpwd() {return userpwd;}public void setUserpwd(String userpwd) {this.userpwd = userpwd;}public String getRealname() {return realname;}public void setRealname(String realname) {this.realname = realname;}
}

UserInfService:

package com.example.demo.service;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;import com.example.demo.dao.UserInfDaoInterface;
import com.example.demo.model.UserInf;@Service
@Transactional
public class UserInfService implements UserInfServiceInterface {
@Autowiredprivate UserInfDaoInterface userInfDao;@Overridepublic int login(String userid, String userpwd) {return userInfDao.selectByIdPwd(userid, userpwd);}@Overridepublic int register(UserInf ui) {// TODO Auto-generated method stub// TODO Auto-generated method stubif(userInfDao.selectByRealname(ui.getRealname())==1)return 0;else{if(userInfDao.insert(ui)==1)return 1;elsereturn 2;}}}

UserInfServiceInterface:

package com.example.demo.service;import com.example.demo.model.UserInf;public interface UserInfServiceInterface {public int login(String userid,String userpwd);public int register(UserInf ui);}

DemoApplication:

package com.example.demo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}}

application.properties:

server.port=8082spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/ssm?characterEncoding=utf8&useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root

login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<head>
<title>登录界面</title>
</head>
<body><form method="post" action="login"><table><tr><th colspan="2">用户登录</th></tr><tr><td align="right">用户名:</td><td><input type="text" name="userid" /></td></tr><tr><td align="right">密码:</td><td><input type="password" name="userpwd" /></td></tr><tr><td align="left"><input type="submit" value="登录" /></td><td>未注册者,请先注册,单击 <a href="register.jsp">注册</a></td></tr></table></form><br>
</body>
</html>

login_success.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head><title>登录成功</title>
</head>
<body>欢迎你,${user.userRealName} ,你登入成功!!<br>进入主页面,请点击<a href="index.jsp">主页面</a>。。。   
</body>
</html>

login_failure

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html><head>    <title>你的账号密码不匹配!</title>	</head>  <body><h2 align="center"><font color="red">对不起,你填写的账号和密码不正确!请</font><a href="login.jsp">重新登录</a>!</h2></body>
</html>

register.jsp

<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>注册页面</title>
<script type="text/javascript">    function isValidate(form) {		var username=document.getElementById("username").value;			var userpass=document.getElementById("userpassword").value;		var userpass1=document.getElementById("userpass1").value;		if (userpass != userpass1) {alert("两次密码输入不一致,请重新输入!");			return false;}else if (userpass.length<=0 ||username.length<=0 ) {alert("用户名 以及密码不能为空,请重新输入!");			return false;}else{return true;}        }
</script>
</head><body><h3 align="left">欢迎注册我们的系统,请认真填写您的信息</h3><form action="register" method="post" onsubmit="return isValidate()"><table><tr><td align="right">账户名:</td><td><input type="text" name="userid" id="username"></td></tr><tr><td align="right">为您的账户设置密码:</td><td><input type="password" name="userpwd" id="userpassword"></td></tr><tr><td align="right">再次确认您的密码:</td><td><input type="password" id="userpass1"></td><td></td></tr><tr><td align="right">真实姓名:</td><td><input type="text" name="realname" id="userrealname"></td><td></td></tr><tr><td align="right"><input type="submit" value="提交"></td><td colspan="2"><input type="reset" value="重新填写"></td></tr></table></form></body>
</html>

register_success.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html><head>    <title>注册成功!</title>	</head>  <body ><h3>恭喜,${ui.realname},你成功注册了我们的管理系统!点此<a href="login.jsp">登录</a></h3></body>
</html>

register_failure

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html><head>    <title>注册失败</title></head>  <body><h3>对不起,数据库出错,没有正确保存,请重新注册。</h3> <br><h2>请点击<a href="register.jsp">注册</a>。。。</h2></body>
</html>

register_failure_user

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html><head>    <title>注册失败</title></head>  <body><h3>对不起,此用户名:${ui.realname}已被占用,请重新注册。</h3> <br><h2>请点击<a href="register.jsp">注册</a>。。。</h2></body>
</html>

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.2.0</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>Demo project for Spring Boot</description><properties><java.version>17</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.3</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.20</version></dependency>	<dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-jasper</artifactId><scope>provided</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

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

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

相关文章

C#上位机与欧姆龙PLC的通信06---- HostLink协议(FINS版)

1、介绍 对于上位机开发来说&#xff0c;欧姆龙PLC支持的主要的协议有Hostlink协议&#xff0c;FinsTcp/Udp协议&#xff0c;EtherNetIP协议&#xff0c;本项目使用Hostlink协议。 Hostlink协议是欧姆龙PLC与上位机链接的公开协议。上位机通过发送Hostlink命令&#xff0c;可…

《数据库开发实践》之触发器

一、什么是触发器&#xff1f; 1.概念&#xff1a; 简单来说触发器就是一种特殊的存储过程&#xff0c;在数据库服务器触发事件的时候会自动执行其SQL语句集。 2.构成四要素&#xff1a; &#xff08;1&#xff09;名称&#xff1a;要符合标识符命名规则 &#xff08;2&am…

NFC物联网智能锁安全测试研究

针对短距离无线通信在物联网智能锁实际运用中的安全机制问题&#xff0c;通过理论分析和实际操作演示潜在的攻击流程&#xff0c;发现其存在的安全漏洞并提出可行的加固方法&#xff0c;并对加固后的通信系统进行CPN建模与安全性分析&#xff0c;对无线通信协议的安全性能提升、…

动态内存管理(2)

目录 4. 几个经典的笔试题 4.1 题目1&#xff1a; 4.2 题目2&#xff1a; 4.3 题目3&#xff1a; 4.4 题目4&#xff1a; 5. C/C程序的内存开辟 6. 柔性数组 6.1 柔性数组的特点&#xff1a; 6.2 柔性数组的使用 6.3 柔性数组的优势 4. 几个经典的笔试题 4.1 题目1&#xff1a…

生存分析序章3——生存分析之Python篇:介绍生存分析和scikit-survival库

写在开头 在现代数据科学领域&#xff0c;生存分析是一项关键的统计方法&#xff0c;用于研究个体在一定时间内事件发生的概率。无论是医学、金融还是社会科学&#xff0c;生存分析都为我们提供了一种深入洞察数据的途径。在Python生态系统中&#xff0c;有一个强大的工具——…

HarmonyOS 签名打包Hap(s)、App(s)

1. 基本概念 HarmonyOS应用通过数字证书&#xff08;.cer文件&#xff09;和Profile文件&#xff08;.p7b文件&#xff09;来保证应用的完整性&#xff0c;数字证书和Profile文件可通过申请发布证书和Profile文件获取。   申请数字证书和Profile文件前&#xff0c;首先需要通…

【ES】es介绍

倒排索引&#xff08;Inverted Index&#xff09;和正排索引&#xff08;Forward Index&#xff09; 正排索引是一种以文档为单位的索引结构&#xff0c;它将文档中的每个单词或词组与其所在的文档进行映射关系的建立。正排索引通常用于快速检索指定文档的内容&#xff0c;可以…

一键访问多功能数据解决方案:如何轻松构建和管理APITable智能多维表格

文章目录 前言1. 部署APITable2. cpolar的安装和注册3. 配置APITable公网访问地址4. 固定APITable公网地址 前言 vika维格表作为新一代数据生产力平台&#xff0c;是一款面向 API 的智能多维表格。它将复杂的可视化数据库、电子表格、实时在线协同、低代码开发技术四合为一&am…

【JS逆向学习】有道翻译接口参数逆向

逆向目标 目标&#xff1a;有道翻译接口加密参数接口&#xff1a;https://dict.youdao.com/webtranslate加密参数&#xff1a; sign: e3d8fa747713d6957db7cd2eedaa0d95Cookie: OUTFOX_SEARCH_USER_ID696102715114.222.69.137; OUTFOX_SEARCH_USER_ID_NCOO304412380.2597743 …

出现频率高达70%软件测试面试题及答案!——看完面试官:是你面试我还是我面试你啊!

【纯干货&#xff01;&#xff01;&#xff01;】花费了整整3天&#xff0c;整理出来的全网最实用软件测试面试大全&#xff0c;一共30道题目答案的纯干货&#xff0c;希望大家多多支持&#xff0c;建议 点赞&#xff01;&#xff01;收藏&#xff01;&#xff01;长文警告&…

千巡翼X4轻型无人机 赋能智慧矿山

千巡翼X4轻型无人机 赋能智慧矿山 传统的矿山测绘需要大量测绘员通过采用手持RTK、全站仪对被测区域进行外业工作&#xff0c;再通过方格网法、三角网法、断面法等进行计算&#xff0c;需要耗费大量人力和时间。随着无人机航测技术的不断发展&#xff0c;利用无人机作业可以大…

分享:新手程序员接单一个月,收入3375元

今年刚开始接触外包接单&#xff0c;从注册到现在接到了一个单子&#xff0c;赚了3000多块钱。 赚的钱不多&#xff0c;期间踩的坑倒是不少&#xff0c;给大家挨个唠唠…… 1 一定要完善好自己的简历项目 在外包平台上接单&#xff0c;简历上的项目是重中之重。跟传统的招聘不…