SpringBoot实现登录拦截案例

准备jar包

在springboot中想要展示页面,必须导入thymeleaf依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

根据目录建包

czx.xupt.config
czx.xupt.dao
czx.xupt.interceptor
czx.xupt.pojo

实体类 czx.xupt.pojo

Department

package czx.xupt.pojo;public class Department {private Integer id;private String departmentName;public Department() {}public Department(int i, String string) {this.id = i;this.departmentName = string;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getDepartmentName() {return departmentName;}public void setDepartmentName(String departmentName) {this.departmentName = departmentName;}@Overridepublic String toString() {return "Department [id=" + id + ", departmentName=" + departmentName + "]";}}

Employee

package czx.xupt.pojo;import java.util.Date;public class Employee {private Integer id;private String lastName;private String email;//1 male, 0 femaleprivate Integer gender;private Department department;private Date birth;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getLastName() {return lastName;}public void setLastName(String lastName) {this.lastName = lastName;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public Integer getGender() {return gender;}public void setGender(Integer gender) {this.gender = gender;}public Department getDepartment() {return department;}public void setDepartment(Department department) {this.department = department;}public Date getBirth() {return birth;}public void setBirth(Date birth) {this.birth = birth;}public Employee(Integer id, String lastName, String email, Integer gender,Department department) {super();this.id = id;this.lastName = lastName;this.email = email;this.gender = gender;this.department = department;this.birth = new Date();}public Employee() {}@Overridepublic String toString() {return "Employee{" +"id=" + id +", lastName='" + lastName + '\'' +", email='" + email + '\'' +", gender=" + gender +", department=" + department +", birth=" + birth +'}';}}

相应的接口 czx.xupt.dao

DepartmentDao

package czx.xupt.dao;import czx.xupt.pojo.Department;
import org.springframework.stereotype.Repository;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;//模拟数据库
@Repository
public class DepartmentDao {private static Map<Integer, Department> departments = null;//初始数据static{departments = new HashMap<Integer, Department>();departments.put(101, new Department(101, "D-AA"));departments.put(102, new Department(102, "D-BB"));departments.put(103, new Department(103, "D-CC"));departments.put(104, new Department(104, "D-DD"));departments.put(105, new Department(105, "D-EE"));}//获取获得全部部门信息public Collection<Department> getDepartments(){return departments.values();}//通过id获取员工信息public Department getDepartment(Integer id){return departments.get(id);}}

EmployeeDao

package czx.xupt.dao;import czx.xupt.pojo.Department;
import czx.xupt.pojo.Employee;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;//模拟数据库
@Repository
public class EmployeeDao {private static Map<Integer, Employee> employees = null;@Autowiredprivate DepartmentDao departmentDao;static{employees = new HashMap<Integer, Employee>();employees.put(1001, new Employee(1001, "E-AA", "aa@163.com", 1, new Department(101, "D-AA")));employees.put(1002, new Employee(1002, "E-BB", "bb@163.com", 1, new Department(102, "D-BB")));employees.put(1003, new Employee(1003, "E-CC", "cc@163.com", 0, new Department(103, "D-CC")));employees.put(1004, new Employee(1004, "E-DD", "dd@163.com", 0, new Department(104, "D-DD")));employees.put(1005, new Employee(1005, "E-EE", "ee@163.com", 1, new Department(105, "D-EE")));}private static Integer initId = 1006;//新增员工实现id自增public void save(Employee employee){if(employee.getId() == null){employee.setId(initId++);}employee.setDepartment(departmentDao.getDepartment(employee.getDepartment().getId()));employees.put(employee.getId(), employee);}//获得全部的员工public Collection<Employee> getAll(){return employees.values();}//通过id获取员工public Employee get(Integer id){return employees.get(id);}//通过id删除员工public void delete(Integer id){employees.remove(id);}
}

拦截器 czx.xupt.interceptor

package czx.xupt.interceptor;import org.springframework.web.servlet.HandlerInterceptor;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/*** #Author:槐序二四* #Time:2020/3/3 19:13* #Motto:人间荒唐市侩 不如山中作怪												

SpringBoot(三):最简版登录拦截案例相关推荐

  1. 01.基于Irises的springboot项目框架(简版)

    01.基于Irises的springboot项目框架(简版) 介绍 基于Irises搭建的springboot单体应用框架(简版),支持Mybatis-plus.sql分析与打印.swagger.kk ...

  2. Springboot实现登录拦截的三种方式

    文章目录 1. 登录认证 1.1 介绍 1.2 方式 1.3 扩展 2. 实现 2.1 项目结构以及前置准备 2.2 过滤器实现登录拦截 2.3 拦截器实现登录拦截 2.4 AOP+自定义注解实现 2 ...

  3. springboot整合shiro和session的详细过程和自定义登录拦截器

    文章目录 1.shiro依赖 2.shiro配置 shiro过滤器配置: 关联自定义的其他管理器 自定义会话工厂: 3.登陆时记录用户信息 4.shiro一些工具类的学习 5.自定义登录拦截器 shi ...

  4. 爬虫三(Bs4搜索、Selenium基本使用、无界面浏览器、Selenium自动登录百度案例、自动获取12306登录验证码案例、切换选项卡、浏览器前进后退、登录Cnblogs获取Cookie自动点赞)

    文章标题 一.Bs4搜索文档树 二.CSS选择器 三.selenium基本使用 四.无界面浏览器 五.selenium其他使用 1)自动登录百度案例 2)获取位置属性大小.文本 3)自动获取12306 ...

  5. php qq授权_PHP模拟QQ网页版授权登录的案例

    PHP模拟QQ网页版授权登录的案例 发布时间:2020-10-31 01:28:09 来源:亿速云 阅读:78 作者:小新 PHP模拟QQ网页版授权登录的案例?这个问题可能是我们日常学习或工作经常见到 ...

  6. 三分钟集成 TapTap 登录 SDK(Unity 版)

    三分钟集成 Tap 登录 SDK(Unity 版) 一.SDK 介绍 Tap 登录分为两种类型: 基于内建账户系统 单纯 TapTap 用户认证 以上两种方式功能区别可以参考官方文档介绍,本文档就不再 ...

  7. 七、SpringBoot——用户登录Demo(国际化、表单重复提交,登录拦截器)

    一.CURD的Demo 1开发前准备工作 新建一个SpringBoot工程 引入starter-web maven依赖 引入html页面和assert文件夹里的样式文件等等 2 实现访问登录页面 方式 ...

  8. SpringBoot 三种拦截http请求方式Filter,interceptor和aop

    SpringBoot 三种拦截http请求方式Filter,interceptor和aop. 这三种拦截方式的拦截顺序是:filter->Interceptor-->ControllerA ...

  9. springboot的登录拦截机制

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

最新文章

  1. ccf-csp #201703-2 学生排队
  2. linux cp和rm命令
  3. spark 1.6.0 简单使用
  4. (27)System Verilog多个线程间通信(队列)
  5. 表哥的Access入门++以Excel视角快速学习数据库知识pdf
  6. 正则划分省市区(直辖市和附详细地址包括市,区)
  7. 多功能智慧路灯杆商业模式解决方案
  8. Aspose WorkbookDesigner打开文件异常Error xml namespace
  9. ERROR 1449 (HY000)
  10. 平面设计必备学习软件
  11. 2Opinion Word Expansion and Target Extraction through Double Propagation(2020-10-18)
  12. 一周信创舆情观察(11.22~11.28)
  13. 我的架构梦:(七十) 消息中间件之RabbitMQ的消息可靠性
  14. CTF 关于ZIP解题过程
  15. nginx 进行 https 反向代理 nextcloud 后 APP 不能访问的解决办法
  16. javafx学习教程
  17. 使用Python的QuantLib库,进行期权的定价与希腊字母的计算
  18. 云队友丨别跟精英型组织的员工谈管理
  19. 不完美的青春才最美!
  20. Linux网络遭到攻击后是如何实现封禁IP的

热门文章

  1. 观《穹顶之下》一些思考
  2. Win10 This app can't run on this PC Cisco v*pn 0440
  3. 分享推荐国产串口PSRAM外扩芯片EMI7064LSME
  4. 芯片设计里的Multi-Bit FF探究
  5. 《徐梓喆 11月20日 用八位共阴极数码管说晚安》
  6. 《灰故事》:他用曲笔描绘着我们
  7. WWW2021 Interpreting and Unifying Graph Neural Networks with An Optimization Framework 阅读笔记
  8. 写给20几岁的女孩、男孩
  9. html50页面显示在线人数,50个网页常用小代码
  10. linux下canopen协议视频,CAN协议与CANOpen协议