前言

Java编程中经常会有一些需要我们进行登录拦截的操作,或者实现,那么怎么用java代码实现一个拦截器呢?一般情况下实现拦截器需要两步,今天就给大家演示一个拦截器,废话不多说,代码+注释直接奉上!

第一步:自定义拦截器

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;/***自定义拦截器*实现HandlerInterceptor接口**/
public class LoginInterceptor implements HandlerInterceptor{@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception {// 获取作用域的user信息,此user信息需要在登录操作的同事放到作用域,以便于此处获取String user=(String) request.getSession().getAttribute("user");//获取请求的路径String url=request.getRequestURI();//打印路径信息,作为后台日志进行查看System.out.println(url);//判断user对象的内容是否不为空;//或者是否是访问的后台登录方法(login);//因为我的页面直接导入的easyUI的js包为防止把页面样式拦截,所以加个判断,如果不是这样的话此判断可以省略if(user!=null|url.endsWith("项目名/login")|url.lastIndexOf("jquery-easyui-1.4")>-1) {return HandlerInterceptor.super.preHandle(request, response, handler);}else {//判断没通过,证明用户没有进行登录操作,操作非法,进行返回登录页面(login.jsp)进行登录//返回错误提示信息("请先登录!")request.getSession().setAttribute("msg", "请先登录!");response.sendRedirect("login.jsp");return false;}}
}

第二步:拦截器注册类,使拦截器生效

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class MyConfig implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {// 使拦截器生效1.此处参数是我们自定义的拦截器名( LoginInterceptor ) 2.添加拦截规则(/**)拦截全部               registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**");WebMvcConfigurer.super.addInterceptors(registry);}}

控制层代码

    //登录验证是否是name='zhangsan',pwd='123' 的用户@RequestMapping("login")public String doLogin(String name,String pwd,HttpServletRequest request) {//从请求中获取登录名信息,放到user对象,并放入作用域中,方便拦截器获取request.getSession().setAttribute("user", name);//判断用户名和密码是否正确,此处也可以进行后台数据库的查询,我为了简单写死了登录名和密码if(name.equals("zhangsan")&&pwd.equals("123")) {//用户名和密码正确重定向到跳转页面的后台方法return "redirect:toPageList";}else {// 登录失败,返回提示信息request.getSession().setAttribute("msg", "账号或密码错误!");//返回登录页面,重新登录return "login";}}

Java自定义拦截器详细教程相关推荐

  1. Java自定义拦截器处理防抖

    自定义注解 RepeatSubmit , 用于防止表单重复提交 package com.goodsoft.shrk.common.annotation;import java.lang.annotat ...

  2. java interceptor用法_java自定义拦截器用法实例

    本文实例讲述了java自定义拦截器及其用法.分享给大家供大家参考.具体如下: LoginInterceptor.java文件如下: package com.tq365.util; import jav ...

  3. Java 自定义类加载器教程

    文章目录 Java 自定义类加载器教程 loadClass findClass defineClass 函数调用过程 Java 自定义类加载器教程 除了在面试中遇到类的加载器的概率会高外,在实际的工作 ...

  4. 从struts2拦截器到自定义拦截器

    http://www.cnblogs.com/withyou/p/3170440.html 拦截器可谓struts2的核心了,最基本的bean的注入就是通过默认的拦截器实现的,一般在struts2.x ...

  5. SpringMVC自定义拦截器与异常处理(自定义异常)

    SpringMVC自定义拦截器与异常处理 拦截器概念 拦截器代码演示 创建maven工程 pom.xml <?xml version="1.0" encoding=" ...

  6. ssh备考-05Struts2 Action类下的重要API(原生Servlet的API、跳转配置、框架自身的数据封装、自定义拦截器)

    目录 一.Struts框架中如何使用原生Servlet的API 方法一.使用ActionContext类(完全解耦合的方式)(不好用,了解) demo1.jsp demo1Action.java    ...

  7. Hadoop生态圈-Flume的组件之自定义拦截器(interceptor)

    Hadoop生态圈-Flume的组件之自定义拦截器(interceptor) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客只是举例了一个自定义拦截器的方法,测试字节传输速 ...

  8. Struts2自定义类型转换器、自定义拦截器和用户输入数据的验证

    一.自定义类型转换器 1.编写一个类,继承com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter 2.覆盖掉其中的public Obj ...

  9. WebServices中使用cxf开发日志拦截器以及自定义拦截器

    首先下载一个cxf实例,里面包含cxf的jar包.我下的是apache-cxf-2.5.9 1.为什么要设置拦截器? 为了在webservice请求过程中,能动态操作请求和响应数据, CXF设计了拦截 ...

  10. SpringBoot中自定义拦截器

    场景 自定义拦截器,通过继承WebMvcConfigureAdapter然后重写父类中的方法进行扩展. 项目搭建专栏: https://blog.csdn.net/BADAO_LIUMANG_QIZH ...

最新文章

  1. python小游戏系列记忆宫殿,儿时的回忆
  2. 黄萱菁:自然语言处理中的可理解分析
  3. Java 常用类 -Arrays
  4. SearchScore
  5. Linux服务器网页显示乱码
  6. Android11还能自定义相机吗,安卓用户又少了一项自由,Android 11不再支持更改默认相机程序...
  7. anychart java实例_在.Net开发中使用AnyChart的简单例子(上)
  8. 跳棋c语言,C/C++跳棋问题
  9. 【agc004f】Namori Grundy
  10. inputstream 初始化_如何完美回答面试官问的Mybatis初始化原理!
  11. 快速幂||取余运算【模板】(洛谷P1226题题解,Java语言描述)
  12. 双稳态继电器工作原理图_三招带你分清继电器与接触器
  13. iOS连续上传多张图片
  14. 类增量学习(Class-Incremental Learning)领域部分经典论文汇总
  15. 郭天祥 十天搞定单片机 (1)基础知识和点亮发光二极管
  16. STM32+GM65二维码识别模块
  17. 32单片机与迪文屏通信的开发学习
  18. 卫星影像0.3米到2米精度样例参照图
  19. 腾讯云跨云迁移工具案例实践:阿里云迁移到腾讯云
  20. Java 微信二维码支付

热门文章

  1. vm12下载安装centos7教程
  2. eclipse主题彻底美化——你还在用白底黑字的编辑器吗?
  3. python txt转Excel
  4. python运维都做些什么,Python运维工程师主要做什么?岗位职责!
  5. 使用python实现一个文件搜索功能,类似于Everything功能
  6. 【Java思维导图】
  7. Unicode 编码表下载
  8. GNS3环境搭建与测验实战图文详解
  9. Telegram支持删除双方设备中的聊天记录
  10. dosbox汇编环境turboC环境配置