通过上网搜资料显示,使用filter和interceptor都可以实现。不过推荐使用interceptor.

下面就使用Interceptor实现用户登录权限验证功能。

拦截器需要实现Inceptor拦截器接口的三个方法。

1.preHandle方法

顾名思义,该方法将在请求处理之前进行调用。SpringMVC 中的Interceptor 是链式的调用的,在一个应用中或者说是在一个请求中可以同时存在多个Interceptor 。每个Interceptor 的调用会依据它的声明顺序依次执行,而且最先执行的都是Interceptor 中的preHandle 方法,所以可以在这个方法中进行一些前置初始化操作或者是对当前请求的一个预处理,也可以在这个方法中进行一些判断来决定请求是否要继续进行下去。该方法的返回值是布尔值Boolean类型的,当它返回为false 时,表示请求结束,后续的Interceptor 和Controller 都不会再执行;当返回值为true 时就会继续调用下一个Interceptor 的preHandle 方法,如果已经是最后一个Interceptor 的时候就会是调用当前请求的Controller 方法。

2.postHandle风法

由preHandle 方法的解释我们知道这个方法包括后面要说到的afterCompletion 方法都只能是在当前所属的Interceptor 的preHandle 方法的返回值为true 时才能被调用。postHandle 方法,顾名思义就是在当前请求进行处理之后,也就是Controller 方法调用之后执行,但是它会在DispatcherServlet 进行视图返回渲染之前被调用,所以我们可以在这个方法中对Controller 处理之后的ModelAndView 对象进行操作。postHandle 方法被调用的方向跟preHandle 是相反的,也就是说先声明的Interceptor 的postHandle 方法反而会后执行。

3.afterCompletion方法

该方法也是需要当前对应的Interceptor 的preHandle 方法的返回值为true 时才会执行。顾名思义,该方法将在整个请求结束之后,也就是在DispatcherServlet 渲染了对应的视图之后执行。这个方法的主要作用是用于进行资源清理工作的。

下面实现自己的拦截器

package com.huitong.util;

import org.springframework.web.servlet.HandlerInterceptor;

import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

public class StudentAuth implements HandlerInterceptor {

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

HttpSession session = request.getSession();

Object stu = session.getAttribute("student");

if( stu == null ){

response.sendRedirect("/webapp1/index.jsp");

return false;

}

return true;

}

public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

}

public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

}

}

最后需要在spring-mvc.xml配置文件中进行拦截器配置,下面是配置片段

最后可以测试使用了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

java spring登录验证_springMVC 用户登录权限验证实现过程解析相关推荐

  1. Java Spring Cloud XII 之 单点登录

    Java Spring Cloud XII 之 单点登录 单点登录 1.用户\角色\权限 用户是一个基本的单位 我们登录时都是在登录用户的 我们再登录后需要明确这个用户具有哪些角色 用户和角色的关系是 ...

  2. SSM项目图书馆管理系统,适合新人练手和毕设参考,功能首页展示 系统注册登录登出 用户管理 权限控制管理 书籍管理 图书借阅管理 个人借阅记录管理 书籍详细信息展示等

    图书馆管理系统,系统采用B/S架构 系统采用框架:java+maven+stringboot+mybatis+mysql-plus+boostart(前端界面) 首页展示 内容后台管理 菜单权限管理 ...

  3. Spring Security默认的用户登录表单 页面源代码

    Spring Security默认的用户登录表单 页面源代码 <html><head><title>Login Page</title></hea ...

  4. php 语法验证_PHP用户登录验证模块

    这篇文章介绍的内容是关于PHP用户登录验证模块 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 实现用户登录 >>>1 创建登录表单 登录表单的HTML代码如下: U ...

  5. Spring Security实现JDBC用户登录认证

    在搭建博客后端服务框架时,我采用邮件注册+Spring Security登录认证方式,结合mysql数据库,给大家展示下具体是怎么整合的. 本篇是基于上一篇:spring boot实现邮箱验证码注册 ...

  6. java logic_java logic怎么做用户登录

    展开全部 ,具体点可以这样:创建一个用户表,里边包括LoginName(登录62616964757a686964616fe58685e5aeb931333337383233名),UserName(用户 ...

  7. 【struts2+hibernate+spring项目实战】用户登录校验(struts拦截器)

    一.概述 项目中所有页面均放入WEB-INF,所有页面安全性得到了很大程度的提高.但是当用户登录后长时间没有操作时,会造成Session数据的过期,如果此时获取Session中的数据,必定会引发WEB ...

  8. 使用MySQL验证Open***用户登录访问

    一.预览 要查看下面的配置,请预览查看我的上一篇Open***用户名密码配置的博文 查看上一篇博文请点击 二.安装部署 环境准备 #关闭SELinux #setenforce 0 开启路由转发 sys ...

  9. jsp java servlet_jsp+java ,servlet如何实现用户登录和注册页面

    jsp+java servlet实现简单用户登录(使用数据库,包括注册页面) 功能介绍 本项目通过使用jsp和servlet实现简单的用户登录.主要逻辑为:如果用户不存在,则首先进行注册(注册信息同步 ...

最新文章

  1. python re match groups_python re.match与re.search的区别
  2. mysql中的类型与java_mysql与java数据类型对应关系
  3. JSP 简介(转载)
  4. JavaScript创建与读写本地文件(IEFirefox)
  5. 智能优化算法:海洋捕食者算法
  6. python模块分析之typing(三)
  7. 【转】 UDK 全版本安装文件下载
  8. 会声会影 html5,一文了解会声会影哪个版本比较好用
  9. Android连点器(adb)
  10. cvtColor()实际操作
  11. 201671010402 词频统计软件项目报告
  12. 2020大学计算机答案,超星2020大学计算机基础答案 全
  13. 业务流程图设计-Visio设计
  14. 网络营销是中小企业低成本建立品牌的必经之路
  15. 微信小程序 词典代码_微信小程序省市区联动,自定义地区字典
  16. 用Python画二元高次方程
  17. 你的个人所得税完税证明看准了吗?
  18. C#实现Winform间的数据交互的三种方法
  19. 【重磅推荐】基于truffle-contract库实现的以太坊solidity合约调用案例(注:web3.js切勿和truffle-contract库同时使用,否则报错,无法修复!)
  20. Cocos2D教程:使用SpriteBuilder和Cocos2D 3.x开发横版动作游戏——Part 1

热门文章

  1. 适配 通知 Notification 通知渠道 前台服务 MD
  2. BugKu CTF(解密篇Crypto)—这是个盲兔子,竟然在唱歌!
  3. CSS中的BFC是什么?怎么用?
  4. 北航教授多旋翼无人机教程
  5. 海豚播放器 ffmpeg 编译之经历
  6. HashMap的扩容
  7. IDEA Unable to ping server at 1099问题
  8. Jeesite 4.3 按钮权限,设置按钮只针对某个账号显示及使用
  9. YUV的plannar,packet及semi-planar格式及RGB
  10. 多用户电商分销系统开发多商户入驻分销商城系统开发的基本功能