actionInvocation.invoke()是什么意思

2023-11-17

关于Struts2的自定义的验证截器

package ch06.struts2.Interceptor;

import java.util.Map;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;


public class AuthenticationInterceptor implements Interceptor  {

  private static final long serialVersionUID = 1L;
 
  public static final String USER_SESSION_KEY = "UserSessionKey";
  
  public void destroy() {}

  public void init() {}


     public String intercept(ActionInvocation actionInvocation) throws Exception {
   //取得Session
         Map session = actionInvocation.getInvocationContext().getSession();
   //从Session里获得登录时保存进session的User类
         String user = (String) session.get(USER_SESSION_KEY);
         //判断用户名是否为空  
         boolean isAuthenticated = (null!=user);
         if (!isAuthenticated) {//如果未通过登录验证

           //下面的那个return怎么能返回登录页面
             return Action.LOGIN;   //返回登录页面  
      
         }else{       
    // 下面的这个actionInvocation.invoke()是什么意思
         return actionInvocation.invoke();//返回验证通过         
         }
     }
}


struts.xml配置自定义的拦截器

<!-- 自定义验证拦截器 -->
     <interceptors>
   <interceptor name="Authentication"  class="ch06.struts2.Interceptor.AuthenticationInterceptor" />     
  </interceptors> 

<action name="Welcome">
            <interceptor-ref name ="Authentication"/>
            <result name="success">welcome.jsp</result>
</action>

 

最佳答案
actionInvocation.invoke() 就是通知struts2接着干下面的事情
比如 调用下一个拦截器 或 执行下一个Action
就等于退出了你自己编写的这个interceptor了
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

actionInvocation.invoke()是什么意思 的相关文章

  • 如何确定 JDialog 显示在哪个屏幕上

    我有一个非常大的应用程序 有多个对话框 我的任务是确保不完全可见的对话框 因为用户将其从可见屏幕区域拉出 移回屏幕中心 当我只处理一个屏幕时 这没问题 它工作得很好 但是 该应用程序的大多数用户的桌面上都有两个屏幕 当我尝试找出对话框显示在
  • 竞争条件和 Clojure Atoms

    clojure atom 的文档指出 Changes to atoms are always free of race conditions 然而 竞争条件不仅是根据更改定义的 而且是在不同线程中并行逻辑操作的上下文中定义的 我想知道 保证
  • 如何使用Gson将JSONArray转换为List?

    在我的 Android 项目中 我试图将收到的 JSONArray 转换为列表 在 的帮助下这个答案 https stackoverflow com questions 8371274 how to parse json array in
  • .Net Core 中 String 默认不可序列化吗?

    我正在查看其他的 Fortify 静态分析安全测试 SAST 扫描报告 以识别和抑制误报 应用程序框架是C NET Core SAST 报告部分内容如下 Method1 在第 111 行将不可序列化的对象存储为 HttpSessionSta
  • 是否有适用于 Java 的 CalDAV 客户端库? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想使用 CalDAV 协议与我的日
  • 在 Hibernate 的 XML 配置文件中指定默认值

    我通过映射配置文件配置 Hibernate
  • mysql 准备好的语句错误:MySQLSyntaxErrorException

    我使用准备好的语句编写了选择语句 每次尝试运行都会出现此错误 我如何克服这个错误 我的jdbc连接器是mysql connector java 5 1 13 bin jar 我的代码 public Main add ad to getAdD
  • 如何在列表视图中选择时启用视频序列自动播放?

    大家好 有人可以与我分享一下我如何编写我的 viewvideo java 类 以便它允许自动播放视频功能 自动排序在列表视图中播放所选视频的任务 从当前位置到最新录制的视频 按顺序直到最新的视频播放完毕 这类似于 YouTube 自动播放功
  • string.empty 和 string[0] == '\0' 之间的区别

    假设我们有一个字符串 std string str some value is assigned 有什么区别str empty and str 0 0 C 11 及更高版本 string variable 0 如果字符串为空 则需要返回空字
  • 将带有两层分隔符的字符串转换为字典 - python

    给定一个字符串 s x t1 ny t2 nz t3 我想转换成字典 sdic x 1 y 2 z 3 我通过这样做让它工作 sdic dict tuple j split t for j in i for i in s split n F
  • jasper 报告文件中出现错误

    首先 我在 iReport 5 1 0 中创建一个 R D1 jrxml 文件 我执行该报告的 Java 代码如下所示 import java sql Connection import java sql DriverManager imp
  • Java泛型类型参数中的问号是什么意思? [复制]

    这个问题在这里已经有答案了 这是取自斯坦福解析器附带的一些示例的一小段代码 我已经用 Java 进行了大约 4 年的开发 但从未对这种风格的代码应该表示什么有非常深入的理解 List
  • 如何预先填充 JFileChooser 将“文件名”?

    我打算用数据库中的名称填充 JFileChooser 但使用标准 JFileChooser 对话框进行加载 删除 保存和另存为 我想给用户留下这样的印象 他们正在处理文件系统 而在后端使用数据库来保存更改 用户不应该能够浏览到不同的目录进行
  • 为什么找不到 getservletcontext?

    我正在尝试使用getServletContext getRealPath 但我不断收到此错误 cannot find symbol symbol method getServletContext location interface jav
  • 使用 SimpleDateFormat、Java 进行错误的日期解析

    我需要使用日期模式 yyyy MM dd 解析输入字符串中的日期 如果日期采用任何其他格式 则抛出错误 这是我解析日期的代码 private void validateDate throws MyException Date parsedD
  • 在前两个冒号上分割字符串

    我想在前两个冒号上拆分一列字符串 但不在任何后续冒号上拆分 my data lt read table text my string some data 123 34 56 78 100 87 65 43 21 200 a4 b6 c888
  • Java 中有类似 .NET 的 NotImplementedException 的东西吗?

    有没有类似 NET 的东西NotImplementedException在Java中 康芒斯朗 http commons apache org proper commons lang javadocs api 2 6 org apache
  • CreateProcess error=206,运行 gwtCompile 时文件名或扩展名太长

    我的应用程序是一个 springboot gradle 应用程序 我的应用程序的一部分涉及使用 gradle 进行遗留 gwt 编译 它工作正常 但今天当我运行下面的 gradle 任务时 它显示 CreateProcess error 2
  • 会话不会保留值并始终返回 null

    我有一个网站 它完全通过 HTTPS 即使有人尝试通过 HTTP 访问 他也会被重定向到 HTTPS 我正在使用表单身份验证 最近 我更改了一个设置以使站点更安全 之后会话不保留值并且始终返回 null 设置是
  • 在python中将列表转换为字符串

    我对 python 语言相当陌生 我一直在寻找这个问题的答案 我需要一个如下所示的列表 Kevin went to his computer He sat down He fell asleep 转换为如下字符串 Kevin went to

随机推荐

  • iOS基本内存管理:autorelease和autoreleasepool

    在内存管理的Objective C代码里 一个Cocoa对象存在于一个生命周期 有明确的阶段 它被创建 初始化 并使用 也就是 其它对象发送消息给它 它还可能会被保留 拷贝 或压缩 并最终被释放和销毁 AD 1 autorelease 基本
  • ChatGPT 和爬虫有什么区别?

    ChatGPT是一种基于人工智能的对话模型 它通过训练大量的文本数据来生成自然语言回复 它可以用于实现智能对话系统 能够理解用户的输入并生成相应的回复 ChatGPT的目标是模拟人类对话 使得对话更加流畅和自然 而爬虫是一种用于自动化地从互
  • 算法 - 基数排序(Radix Sort)

    基数排序非常适合用于整数排序 尤其是非负整数 因此只演示对非负整数进行基数排序 执行流程 一次对个位数 十位数 百位数 千位数 万位数 进行排序 从低位到高位 个位数 十位数 百位数的取值范围都是固定的0 9 可以使用计数排序对它们进行排序
  • QT_6(信号连接信号、Lambda表达式)

    信号连接信号 运行代码 修改mywidget cpp文件如下 这是窗口界面 include mywidget h include
  • 关于建筑物半自动化提取方法的总结

    基于边界 基于边界的交互式提取方法要求用户指定目标边界的少量关键点或大概位置 然后基于目标边界强度和连续性等特征 对目标的边界进行准确跟踪 常见的基于边界方法是Snake算法和智能剪刀 Intelligent Scissors 基于边界方法
  • [附源码]计算机毕业设计社区生活废品回收APPSpringboot程序

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 SSM mybatis Ma
  • 微信支付 api v3 支付通知 异步 验签失败 PHP

    微信支付v3 异步验签失败 此处我们接收参数 报文主体 一般是通过框架 自带的request接收 例如TP6 this gt request gt param 这里如果使用此接收方式在进行json转换验签会失败 我们需要用原生的接收方式 f
  • python之pandas简单介绍及使用(一)

    一 Pandas简介 1 Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具 该工具是为了解决数据分析任务而创建的 Pandas 纳入了大量库和一些标准的数据模型 提供了高效地操作大型数
  • JVM系列(三) JVM垃圾判断及强引用关系

    1 判断垃圾对象 如何判断该对象是垃圾 或者该对象要被回收 引用计数法 在对象中添加一个引用计数器 每当有一个地方引用它时 计数器值就 1 当引用失效时 计数器值就 1 任何时刻计数器为 0 的对象就是没人用的 那么就要被回收 优点是原理简
  • Game101课程笔记_lecture10_几何

    Game101课程笔记 lecture10 几何 1 纹理应用 1 环境光 环境贴图 2 凹凸贴图 法线贴图 1 Bump Mapping 3 位移贴图 4 三维纹理 5 环境光遮蔽 6 体渲染3D Texture and Volume R
  • Bookface(中位数,保序回归)

    include
  • int 和 Integer 作为接收参数类型,参数长度不能大于10?

    今天的博客主题 Java开发路上的小坑坑 int 和 Integer 作为接收参数类型 参数长度不能大于10 int 和 Integer 作为接收参数类型 参数长度不能大于10 What 就问问小菜鸟惊讶不惊讶 大佬略过 public st
  • Shell中的$0、$1、$2的含义

    0 就是编写的shell脚本本身的名字 1 是在运行shell脚本传的第一个参数 2 是在运行shell脚本传的第二个参数 如 新建了一个shell脚本 test sh bin sh echo shell脚本名称 0 echo 传到shel
  • three.js引用FontLoader()报错Unexpected token < in JSON at position 1

    使用three js的FontLoader 时 总是报错 文件也是正常的引入的json文件 但是还是报错 后来各自百度发现是文件路径的问题 报错时我使用的是相对路径 const loader new THREE FontLoader con
  • background 背景属性详解

    background 背景属性 我们知道元素有前景色color 与之对应的还有背景色 通过background我们可以为元素添加实色 background color 和任意多个背景图片 background image css 背景常见属
  • 计算机网络(二):TCP篇

    文章目录 1 TCP头部包含哪些内容 2 为什么需要 TCP 协议 TCP 工作在哪一层 3 什么是 TCP 4 什么是 TCP 连接 5 如何唯一确定一个 TCP 连接呢 6 UDP头部大小是多少 包含哪些内容 7 TCP与UDP的区别
  • nvidia训练深度学习模型利器apex使用解读

    本文参考 英伟达 NVIDIA 训练深度学习模型神器APEX使用指南 咆哮的阿杰的博客 CSDN博客 apex 英伟达 Pytorch混合精度 FP16 FP32 AMP 半精度 训练 二 代码示例 apex pytorch hxxjxw的
  • JPA基本使用

    JPA的基本使用 这段时间看了下JPA 简单的做个笔记吧 1 搭建环境 1 1 application yaml 我用的是Mysql 需要数据库连接驱动 数据源看你心情吧 系统也有默认的数据源 spring datasource url j
  • No module named ‘tensorflow.contrib‘

    1 安装tensorflow pip install tensorflow i https pypi tuna tsinghua edu cn simple 已经安装tensorflow后出现No module named tensorfl
  • actionInvocation.invoke()是什么意思

    关于Struts2的自定义的验证截器 package ch06 struts2 Interceptor import java util Map import com opensymphony xwork2 Action import co