SpringBoot实现登录
1.使用Spring Initializer快速创建Spring Boot项目
1.1 IDEA:使用 Spring Initializer快速创建项目
- 主程序已经生成好了,我们只需要我们自己的逻辑
- resources文件夹中目录结构
1. static:保存所有的静态资源; js css images;
2. templates:保存所有的模板页面;(Spring Boot默认jar包使用嵌入式的Tomcat,默认不支持JSP页面);可以使用模板(freemarker、thymeleaf);
导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency> <!--引入springboot-mybatis的依赖 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.</version>
</dependency>
<!--MySQL的依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.</version>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
实体类
public class Users {
private Integer uid;
private String userName;
private String password;
private String realName;
public Users(Integer uid, String username, String password, String realname) {
this.uid = uid;
this.userName = username;
this.password = password;
this.realName = realname;
}
public Users() {
super();
}
public Integer getUid() {
return uid;
}
public void setUid(Integer uid) {
this.uid = uid;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password == null ? null : password.trim();
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getRealName() {
return realName;
}
public void setRealName(String realName) {
this.realName = realName;
}
}
dao层接口
@Repository("iUsersDao")
public interface IUsersDao {
//登录
Users getlogin(@Param("userName") String userName, @Param("password") String password);
}
dao层xml
<mapper namespace="com.example.dao.IUsersDao">
<!--登录-->
<select id="getlogin" resultType="com.example.entity.Users">
SELECT * FROM users WHERE userName=#{userName} AND PASSWORD=#{password}
</select>
</mapper>
IUserService接口层
public interface IUsersService {
//登录
Users getlogin(String userName, String password);
}
IUserService接口实现层
@Service("iUsersService")
public class IUsersServiceImpl implements IUsersService {
@Resource("iUsersDao")
private IUsersDao iUsersDao;
@Override
public Users getlogin(String userName, String password) {
return iUsersDao.getlogin(userName,password);
}
}
IUserController层
@Controller
@RequestMapping("/user")
public class IUserController {
//植入对象
@Resource(name = "iUserService")
private IUserService service;
/*返回頁面*/
@RequestMapping("/getlogin")
public String getlogin(){
return "login";
}
/*登录*/
@RequestMapping("/login")
public ModelAndView login(Users user, ModelAndView mv, HttpServletRequest request, Model model){
Users login = service.login(user.getUserName(),user.getPassword());
System.out.println(login);
if (login!=null){
request.getSession().setAttribute("login",login);
System.out.println("成功!!");
mv.setViewName("index");
}else{
System.out.println("失败!!");
mv.setViewName("login");
}
return mv;
} }
application.properties文件
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql:///invoicingsystem
spring.datasource.username=root
spring.datasource.password=root
login.html页面
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>系统登录 - 小型进销存系统</title>
<link rel="stylesheet" href="css/style.css"/>
<style>
#parent{
width:500px;
height:200px;
margin-top:%;
margin-left:%;
transform:translate(-%,-%) ;
background:#;
}
.password,.subBtn{
margin-top: %;
margin-left: %;
}
.loginHeader{
padding-top: %;
}
</style>
</head>
<body class="login_bg">
<div id="parent">
<section class="loginBox">
<header class="loginHeader" style="text-align:center; ">
<h1>小型进销存系统</h1>
</header>
<section class="loginCont">
<form class="loginForm" action="/user/login" method="post" onsubmit="return check()" >
<div class="inputbox" style="text-align:center; ">
<label for="user">用户名:</label>
<input id="user" type="text" name="userName" placeholder="请输入用户名" required="required" />
</div>
<div class="password" style="text-align:center; " >
<label for="mima">密码:</label>
<input id="mima" type="password" name="password" placeholder="请输入密码" required="required" />
</div>
<div class="subBtn" style="text-align:center; ">
<input type="submit" value="登录" />
<input type="reset" value="重置"/>
</div>
</form>
</section>
</section>
</div>
</body>
</html>
index.html页面
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head lang="en" >
<meta charset="UTF-8">
<title>小型进销存系统</title>
<!-- <link rel="stylesheet" th:href="@{/css/public.css}">
<link rel="stylesheet" th:href="@{/css/style.css}">-->
<style>
#parent{
margin-top:%;
margin-left:%;
transform:translate(-%,-%) ;
}
</style>
</head>
<body>
<div id="parent">
<!--头部-->
<header class="publicHeader">
<div class="publicHeaderR">
<p><span></span><span style="color: red" th:text="${session.login.getRealName()}"></span> , 欢迎你! <a href="/user/remover">退出登录</a></p>
</div>
</header>
<!--主体内容-->
<section class="publicMian">
<div class="left">
<nav>
<ul class="list">
<li ><a href="/user/prodectAdd">销售</a></li>
<li><a href="/user/saleList">销售信息查询</a></li>
<li><a href="/user/view">查看库存</a></li>
</ul>
</nav>
</div>
<div class="right" style="border: 3px solid blue;width: 400px;height: 200px;margin-top: -100px;margin-left: 200px" >
<img class="wColck" src="img/clock.jpg" alt=""/>
<div class="wFont" style="text-align:center;margin-top:10% ">
<p>欢迎使用小型进销存系统系统!</p>
</div>
</div>
</section>
</div>
</body>
</html>
SpringBoot实现登录的更多相关文章
- SpringBoot注册登录(三):注册--验证账号密码是否符合格式及后台完成注册功能
SpringBoot注册登录(一):User表的设计点击打开链接SpringBoot注册登录(二):注册---验证码kaptcha的实现点击打开链接 SpringBoot注册登录(三):注册 ...
- springboot之登录注册
springboot之登录注册 目录结构 pom.xml <?xml version="1.0" encoding="UTF-8"?> <pr ...
- Springboot实现登录功能
SpringBoot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再 ...
- SpringBoot 并发登录人数控制
通常系统都会限制同一个账号的登录人数,多人登录要么限制后者登录,要么踢出前者,Spring Security 提供了这样的功能,本文讲解一下在没有使用Security的时候如何手动实现这个功能 dem ...
- Springboot之登录模块探索(含Token,验证码,网络安全等知识)
简介 登录模块很简单,前端发送账号密码的表单,后端接收验证后即可~ 淦!可是我想多了,于是有了以下几个问题(里面还包含网络安全问题): 1.登录时的验证码 2.自动登录的实现 3.怎么维护前后端登录状 ...
- 使用SpringBoot实现登录注册的几个问题
一.用户名密码都正确的情况下被登录拦截器拦截 控制台报错:org.apache.ibatis.executor.ExecutorException: A query was run and no Re ...
- SpringBoot日记——登录与拦截器篇
之前的文章我们把登录页写了出来,但是想要让登录现实他的基本功能,要如何做呢?本篇文章就来帮你实现第一步,让登录页对账号密码做校验,并且完成登录跳转. LoginController 1. 要实现登录, ...
- WEB开发----springboot的登录拦截机制
如果是一个后台的管理项目的,有些东西是不能直接就可以访问的,必须要登录才可以进去,所以就需要进行登录拦截,只有登录过的用户才可以正常访问. 登录拦截是不会拦截jsp页面的方法,所以我们需要在Contr ...
- springboot的登录拦截机制
转自:https://blog.csdn.net/qq_26555463/article/details/78296103 如果是一个后台的管理项目的,有些东西是不能直接就可以访问的,必须要登录才可以 ...
随机推荐
- 数据后台管理(五)AOP日志
为了增加数据的安全性,在数据管理的过程中,我们需要将操作者访问时间,操作者的名称,访问的IP,访问资源的URL,执行时长,访问方法记录下来存储到数据库中,并可以通过页面查看. 1.将日志信息存储到数据 ...
- Rust入坑指南:有条不紊
随着我们的坑越来越多,越来越大,我们必须要对各种坑进行管理了.Rust为我们提供了一套坑务管理系统,方便大家有条不紊的寻找.管理.填埋自己的各种坑. Rust提供给我们一些管理代码的特性: Packa ...
- Android Studio Module 引入aar
1.把aar文件放到module的libs目录下 2.作为lib的module的gradle文件: repositories { flatDir { dirs 'libs' } } dependenc ...
- python基础-流程控制(if,while,for)
今日内容总结 --流程控制(if,while,for) if:用来判断事物的对错.真假.是否执行.根据不同的情况判断,条件满足执行某条件下的语句 语法结构(3种) # 第一种,只有if结构.条件表达式 ...
- 学习笔记49_Redis
Redis和memcache区别: 1 . mm是通过客户端驱动实现集群化,Redis是通过服务器配置文件集群 2. redis是可以进行持久化的存储 3. redis提供高级的数据结构,队列,栈都提 ...
- 随(rand):原根,循环矩阵,dp
20分特判,一个puts("1")一个快速幂,不讲. 50%算法: 上次就讲了,可是应该还是有像 xuefen某 或 Dybal某 一样没听的. 用a×inv(b)%mod来表示分 ...
- Unicode字符串和非Unicode字符串
什么是Unicode? Unicode(统一码.万国码.单一码)是计算机科学领域里的一项业界标准,包括字符集.编码方案等.Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每 ...
- C语言中的可变参数-printf的实现原理
C语言中的可变参数-printf的实现原理 在C/C++中,对函数参数的扫描是从后向前的.C/C++的函数参数是通过压入堆栈的方式来给函数传参数的(堆栈是一种先进后出的数据结构),最先压入的参数最后出 ...
- java VS c#,异同点
因工作安排,后期需要维护一个java项目.所以稍微熟悉下java,开此篇记录下java与c#的区别点,方便增强自己学习效果.肯定是不全的,可能是有错的,欢迎批评指正. 一.关键字 描述 C# Java ...
- python中程序的异常处理
什么叫异常? 导致程序异常退出叫做异常 try...except...else 如果要抓取某种特定异常可以用except ERROR as e else:如果程序正常执行那么会执行else里面的代码 ...