1.使用Spring Initializer快速创建Spring Boot项目

1.1 IDEA:使用 Spring Initializer快速创建项目

  IDE都支持使用Spring的项目创建向导快速创建一个Spring Boot项目;
 
  选择我们需要的模块;向导会联网创建Spring Boot项目;
 
  默认生成的Spring Boot项目;
  • 主程序已经生成好了,我们只需要我们自己的逻辑
  • resources文件夹中目录结构

    1.   static:保存所有的静态资源; js css images;

    2.   templates:保存所有的模板页面;(Spring Boot默认jar包使用嵌入式的Tomcat,默认不支持JSP页面);可以使用模板(freemarker、thymeleaf);

    3.   application.properties:Spring Boot应用的配置文件;可以修改一些默认设置;
 

导入依赖

 <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实现登录的更多相关文章

  1. SpringBoot注册登录(三):注册--验证账号密码是否符合格式及后台完成注册功能

    SpringBoot注册登录(一):User表的设计点击打开链接SpringBoot注册登录(二):注册---验证码kaptcha的实现点击打开链接      SpringBoot注册登录(三):注册 ...

  2. springboot之登录注册

    springboot之登录注册 目录结构 pom.xml <?xml version="1.0" encoding="UTF-8"?> <pr ...

  3. Springboot实现登录功能

    SpringBoot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再 ...

  4. SpringBoot 并发登录人数控制

    通常系统都会限制同一个账号的登录人数,多人登录要么限制后者登录,要么踢出前者,Spring Security 提供了这样的功能,本文讲解一下在没有使用Security的时候如何手动实现这个功能 dem ...

  5. Springboot之登录模块探索(含Token,验证码,网络安全等知识)

    简介 登录模块很简单,前端发送账号密码的表单,后端接收验证后即可~ 淦!可是我想多了,于是有了以下几个问题(里面还包含网络安全问题): 1.登录时的验证码 2.自动登录的实现 3.怎么维护前后端登录状 ...

  6. 使用SpringBoot实现登录注册的几个问题

    一.用户名密码都正确的情况下被登录拦截器拦截 控制台报错:org.apache.ibatis.executor.ExecutorException: A query was run and no Re ...

  7. SpringBoot日记——登录与拦截器篇

    之前的文章我们把登录页写了出来,但是想要让登录现实他的基本功能,要如何做呢?本篇文章就来帮你实现第一步,让登录页对账号密码做校验,并且完成登录跳转. LoginController 1. 要实现登录, ...

  8. WEB开发----springboot的登录拦截机制

    如果是一个后台的管理项目的,有些东西是不能直接就可以访问的,必须要登录才可以进去,所以就需要进行登录拦截,只有登录过的用户才可以正常访问. 登录拦截是不会拦截jsp页面的方法,所以我们需要在Contr ...

  9. springboot的登录拦截机制

    转自:https://blog.csdn.net/qq_26555463/article/details/78296103 如果是一个后台的管理项目的,有些东西是不能直接就可以访问的,必须要登录才可以 ...

随机推荐

  1. java迭代器 常用

    19 //使用迭代器遍历ArrayList集合 20 Iterator<String> listIt = list.iterator(); 21 while(listIt.hasNext( ...

  2. Java对象"后事处理"那点事儿——垃圾回收(一)

    1.Dead Or Alive 我们都知道对象死亡的时候需要进行垃圾回收来回收这些对象从而释放空间,那么什么样的对象算是死亡呢,有哪些方法可以找出内存中的死亡对象呢?一般来说,我们可以这样认为:如果内 ...

  3. JAVA中的NIO (New IO)

    简介 标准的IO是基于字节流和字符流进行操作的,而JAVA中的NIO是基于Channel和Buffer进行操作的. 传统IO graph TB; 字节流 --> InputStream; 字节流 ...

  4. 在线API文档管理工具Simple doc

    Simple doc是一个简易的文档发布管理工具,为什么要写Simple doc呢?主要原因还是github的wiki并不好用:没有目录结构,文章没有Hx标签索引,最悲剧的是文章编辑的时候不能直接图片 ...

  5. C++学习笔记3_类.和相关函数

    1. 类*在C++中,struct和class没有明显差别,不同C#,class一定要new(手动开辟内存)出来struct Hero{ char name[64]; int sex;}void pr ...

  6. NOIP模拟13

    上来看了一遍题,发现T2似乎不可做...暴力只给20分怎么玩? T1感觉是要离线处理,但是看了一会发现不会,遂决定先打暴力.然后去把T2 20分拿了,回去看T1,手摸了一下样例,成功推出式子,5分钟码 ...

  7. js 重写a标签的href属性和onclick事件

    适应场景:假如移动端拨打电话,需要给a标签添加href属性,但是由于需求,需要链接跳转的同时给a标签添加onclick事件,如果不做任何处理的话,默认执行点击事件,而不会跳转href属性的链接. 怎么 ...

  8. 【建站03】WordPress网站如何去除RSS功能

    哈喽,大家好,我是帝哥,最近有小伙伴问我,如何去掉WordPress上的RSS功能,这个功能呢,说实话,我们很少会用到. 但是如果有点强迫症的话看着会很不舒服,所以,今天和大家分享一下如何去掉Word ...

  9. 130道ASP.NET面试题(一)

    1 .简述 private,protected,public,internal修饰符的访问权限 答: private : 私有成员, 在类的内部才可以访问. protected : 保护成员,该类内部 ...

  10. (二十一)golang--字符串中的函数

    golang中ascii对应的字符占一个字节,而汉字占三个字节. (1)统计字符串的长度len (2)字符串遍历,同时处理有中文的问题r:=[]rune(str) (3)字符串转整数:n,err:= ...