struts2使用AbstractInterceptor拦截器 获取参数以及修改参数的值

struts2使用AbstractInterceptor拦截器 获取参数以及修改参数的值publicclassAppLoginInterceptorextendsAbstractInterceptor{ @Override publicStringintercept(ActionInvocationinvocation)throwsException{ Mapmap=invocation.getInvocationContext().getSes…

大家好,又见面了,我是你们的朋友全栈君。

public class AppLoginInterceptor extends AbstractInterceptor{

	@Override
	public String intercept(ActionInvocation invocation) throws Exception {
		Map map = invocation.getInvocationContext().getSession();
		    
         
    if(!invocation.getInvocationContext().getParameters().containsKey("accountcode"))
			{
				String accountcode=(String)map.get("accountcodeLocal");
				if(accountcode!=null && !accountcode.trim().equals(""))
				{
					invocation.getInvocationContext().getParameters().put("accountcode", accountcode);
				}
			}
			if(!invocation.getInvocationContext().getParameters().containsKey("customercode"))
			{
				String customercode=(String)map.get("customercodeLocal");
				if(customercode!=null && !customercode.trim().equals(""))
				{
					invocation.getInvocationContext().getParameters().put("customercode", customercode);
				}
			}
			
			
			if(invocation.getInvocationContext().getParameters().containsKey("accountcode") && invocation.getInvocationContext().getParameters().containsKey("securityKey")&& invocation.getInvocationContext().getParameters().containsKey("customercode"))
			{
				String[] customer=(String[])invocation.getInvocationContext().getParameters().get("customercode");
				String[] key=(String[])invocation.getInvocationContext().getParameters().get("securityKey");
				String[] code=(String[])invocation.getInvocationContext().getParameters().get("accountcode");
				String customercode = customer[0];
				String accountcode = code[0];
				String securityKey = key[0];
				System.out.println("客戶編號---"+customercode+"--替換編譯前-----accountcode=="+accountcode+"--------securityKey---"+securityKey);
				if(accountcode!=null && !accountcode.trim().equals("") && customercode!=null && !customercode.trim().equals("") && securityKey!=null && !securityKey.trim().equals(""))
				{
					String securityKey2 = new MD5().getMD5ofStr(customercode+accountcode);
					if(securityKey2.equals(securityKey))
					{
						accountcode=accountcode.replaceAll("-sas-", "_");
						invocation.getInvocationContext().getParameters().put("securityKey", new MD5().getMD5ofStr(customercode+accountcode));
						invocation.getInvocationContext().getParameters().put("accountcode", accountcode);
						System.out.println("客戶編號---"+customercode+"--替換編譯後-----accountcode======="+accountcode+"--------securityKey---"+new MD5().getMD5ofStr(customercode+accountcode));
					}
				}
			}	







		return invocation.invoke();
	}
}

具体代码测试一下就知道了 debug 下 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/146402.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 正则表达式 查找_正则表达式不能输入0

    正则表达式 查找_正则表达式不能输入0根据指定条件查找字符串。

  • collocative meaning_分割原理案例

    collocative meaning_分割原理案例进入2017年之后,深度学习计算机视觉领域有了新的发展。在以往的研究中,深度神经网络往往是单任务的,比如图像分类(AlexNet,VGG16等等),图像分割(以FCN为代表的一众论文),目标检测(R-CNN,FastR-CNN和FatserR-CNN,以及后来的YOLO和SSD,目标检测领域已经实现多任务)。而在最新的研究中,上述的任务往往被集成了,通过一个框架完成,代表就是实例分割。先来看

  • 解码Base64并展示图片

    解码Base64并展示图片Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。例如,在JavaPersistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和

  • 武侠世界2-try catch思考

    以前一直不知道trycatch具体应用到什么地方,之前待过的几家公司也看不到有类似的代码。从网上搜来的,描述trycatch优点有下面几点。1、把错误处理和真正的工作分开来;  2、代码更易组织,更清晰,复杂的工作任务更容易实现;  3、毫无疑问,更安全了,不至于由于一些小的疏忽而使程序意外崩溃了;  4、由于C++中的trycatch可以分层嵌套,所以它…

  • 用javascript教你打造一个免费的PC微信机器人《五》微信群发

    用javascript教你打造一个免费的PC微信机器人《五》微信群发上图先,来个效果图同一时间,向很多个群,发送你要发送的消息。现实中有很多解决方案,一个员工对应一个群,先把发送内容粘贴进文本框,读秒,同时按发送键。按键精灵,脚本?(没试过,有可能可以)还有其他方案没?一言不合,上代码先拿到你要发送的群或者好友列表(websocket,http去github去看httpclient.js):functionget_wxuser_list(){constj={id:getid(),type:USER_LIST,cont

  • JS 暂时性死区「建议收藏」

    JS 暂时性死区「建议收藏」JS暂时性死区ES6暂时性死区引用ES6暂时性死区只要块级作用域内存在let命令,它所声明的变量就“绑定”(binding)这个区域,不再受外部的影响。vartmp=123;if(true){tmp=’abc’;//ReferenceErrorlettmp;}上面代码中,存在全局变量tmp,但是块级作用域内let又声明了一个局部变量tmp,导致后…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号