/**
* 登录验证拦截器
*
*/
@SuppressWarnings("serial")
public class LoginInteceptor implements Interceptor { @Override
public void destroy() {
// TODO Auto-generated method stub } @Override
public void init() {
// TODO Auto-generated method stub } /**每次访问Action类之前,先执行intercept方法*/
@Override
public String intercept(ActionInvocation invocation) throws Exception {
//获取当前访问Action的URL
String actionName = invocation.getProxy().getActionName();
//如果当前访问Action的URL是"loginAction_login"(根据自己写的来定)表示此时还没有Sesion,需要放行
if(!"loginAction_login".equals(actionName)){
//从Session中获取当前用户对象
Employee employee = SessionContext.get();
//如果Session不存在,跳转到登录页面
if(employee==null){
return "login";//这个login已经在struts.xml的全局结果视图中配置了
}
}
//放行,访问Action类中方法
return invocation.invoke(); } }

struts.xml中相关配置:

<!-- 拦截器配置 -->
<interceptors>
<!-- 定义了一个用于拦截器登录的拦截器 -->
<interceptor name="loginInterceptor" class="cn.itcast.ssh.utils.LoginInteceptor"></interceptor>
<!-- 定义一个拦截器栈 -->
<interceptor-stack name="systemStack">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="loginInterceptor" />
</interceptor-stack>
</interceptors> <!-- 定义系统默认拦截器 全局 -->
<default-interceptor-ref name="systemStack" />
<!-- 全局结果视图 -->
<global-results>
<result name="login" type="redirect">
login.jsp
</result>
</global-results>

就这样拦截器就实现了

SSH实现登陆拦截器的更多相关文章

  1. 【Java EE 学习 70 上】【数据采集系统第二天】【数据加密处理】【登陆验证】【登陆拦截器】【新建调查】【查询调查】

    一.数据加密处理 这里使用MD5加密处理,使用java中自带加密工具类MessageDigest. 该类有一个方法digest,该方法输入参数是一个字符串返回值是一个长度为16的字节数组.最关键的是需 ...

  2. JAVAEE——struts2_04:自定义拦截器、struts2标签、登陆功能和校验登陆拦截器的实现

    一.自定义拦截器 1.架构 2.拦截器创建 //拦截器:第一种创建方式 //拦截器生命周期:随项目的启动而创建,随项目关闭而销毁 public class MyInterceptor implemen ...

  3. spring自定义注解实现登陆拦截器

    1.spring自定义注解实现登陆拦截器 原理:定义一个注解和一个拦截器,拦截器拦截所有方法请求,判断该方法有没有该注解.没有,放行:有,要进行验证.从而实现方法加注解就需要验证是否登陆. 2.自定义 ...

  4. [JFinal 1] JFinal和SSH中使用拦截器的对比

    导读:先前在做.NET项目时,拦截的功能主要是依靠缓存session来实现.当需要跳转到某个页面,使用某个功能查询一些数据时,会根据session中的用户值来判断是否已经正常登录,如果没有,则重定向到 ...

  5. JAVAEE——BOS物流项目03:学习计划、messager、menubutton、登陆拦截器、信息校验和取派员添加功能

    1 学习计划 1.jQuery easyUI messager使用方式 n alert方法 n confirm方法 n show方法 2.jQuery easyUI menubutton使用方式 3. ...

  6. SSM登陆拦截器实现

    首先在springmvc中配置拦截器 <!-- 配置拦截器 --> <mvc:interceptors> <mvc:interceptor> <!-- 拦截所 ...

  7. Java登陆拦截器

    package com.beidou.warehouseerp.interceptor; import com.alibaba.fastjson.JSON; import com.beidou.war ...

  8. springmvc 登陆拦截器 配合shiro框架使用

    public class LoginHandlerInterceptor extends HandlerInterceptorAdapter{ @Override public boolean pre ...

  9. ssh框架里拦截器的权限验证基本思路【转】

    相关表 序号 表性质 表名 字段 字段 字段 字段 字段 1 基表 用户表 id 帐号 密码     2 基表 角色表 id 角色名       3 基表 权限表 id 权限名 请求路径     4 ...

随机推荐

  1. C++线程安全日志库-Win32接口实现

    分享一个C++日志库,使用Win32接口编写,而且是线程安全的日志库.比较简单,只有2个文件,容易上手,使用起来也很简单 头文件 如下是日志库的头文件,接口看似很多,但是使用起来最常用的也就那么几个 ...

  2. FreeSql.DbContext 第二个版本介绍

    FreeSql.DbContext 实现类似 EFCore 使用方法,跟踪对象状态,最终通过 SaveChanges 方法提交事务. 目前是第二个初版,已实现状态跟踪保存(导航属性的跟踪暂时不支持). ...

  3. api接口参数问题

    对于取数据,我们使用最多的应该就是get请求了吧.下面通过几个示例看看我们的get请求参数传递. 回到顶部 1.基础类型参数 [HttpGet] public string GetAllChargin ...

  4. Spring Boot 2.X 如何快速集成单元测试?

    本文将详细介绍下使用Spring Boot 2.X 集成单元测试,对API(Controller)测试的过程. 一.实现原理 使用MockMvc发起请求,然后执行API中相应的代码,在执行的过程中使m ...

  5. 24, CSS 构造超链接

    1. 超链接边框 2. 派生超链接 3. 属性选择器超链接 4. 动态超链接 5. 图像翻转超链接 6. CSS 工具提示 1.给链接加上边框 A:link { Color: #f00; Text-d ...

  6. React 项目生产版本迭代页面不刷新问题

    React 页面缓存 react 打包项目进行服务端部署后,会发现index.html被浏览器缓存,访问项目url指向的还是上个版本的内容.原理是index.html被缓存后,路由指向和跳转都是旧版的 ...

  7. 联发科AIoT平台i500处理器简介

    i500是一款强大而高效的AIoT平台,专为便携式.家用或商用物联网应用而设计,这些应用需要大量的边缘处理.先进的多媒体功能.多台高分辨率相机.相连的触屏显示器和多任务操作系统. 该平台集成了Arm ...

  8. 学习ELK之----01.建立ELK测试项目

    1. 建立一个4G内存的虚拟机,安装Linux系统(具体的版本以能运行Docker为准,我用的是Ubuntu-Server) 2. 安装Docker 3. 下载elk容器:# docker pull ...

  9. CenOS_用户级别

    1.运行级别 共有7个运行级别: 0:关机 1:单用户(不用密码也能登陆) 2:多用户无网络 3:多用户有网络 4:保留 5:图形化界面 6:重启 1.1设置运行级别语法: init <级别数字 ...

  10. 【JavaScript动画基础】学习笔记(一)-- 旋转箭头

    随着鼠标的移动旋转箭头. requestAnimationFrame 在requestAnimationFrame之前我们可以用setInterval来实现动画的循环: function drawFr ...