strut2的拦截器之对request和session的封装
本文主要内容是对 implements Interceptor 这种方式的探索
前提是需要了解:责任链模式
对下面这句代码的理解:
Map<String, Object> sessionMap=invocation.getInvocationContext().getSession();Object obj=sessionMap.get("loginuser");
invocation.getInvocationContext(),"Context"是上下文的意思就是这个“链执行的环境",里面会保存有执行过程需要用到的一些信息(或者叫变量),而对于web应用来说request和session都会保存在上下文环境中,struts2吧session和request都封装成了map对象,通过getSession()方法可以得到session对应的map对象 sessionMap.get("loginuser")就是取出key为loginuser的对应值,能够取得“值”的前提是你设置了这个值(其他程序,比如登录页面对应的处理程序使用set方法设置了loginuser的值,你这里get才能取到,你这个拦截器一定是用来检查用户是否已经登录的,如果loginuser对应的值被取出后是空值,说明没有登录,如果非空,说明session中保存着登录用户的信息
strut2的拦截器之对request和session的封装的更多相关文章
- Java过滤器与SpringMVC拦截器之间的关系与区别
		今天学习和认识了一下,过滤器和SpringMVC的拦截器的区别,学到了不少的东西,以前一直以为拦截器就是过滤器实现的,现在想想还真是一种错误啊,而且看的比较粗浅,没有一个全局而又细致的认识,由于已至深 ... 
- (实用篇)浅谈PHP拦截器之__set()与__get()的理解与使用方法
		"一般来说,总是把类的属性定义为private,这更符合现实的逻辑. 但是,对属性的读取和赋值操作是非常频繁的,因此在PHP5中,预定义了两个函数"__get()"和&q ... 
- Request与session与application的区别
		(1)request的setAttribute与getAttribute方法一般都是成对出现的,首先通过setAttribute方法设置属性与属性值,然后通过getAttribute方法根据属性获取到 ... 
- web初学之request,session与application
		request (1)request的setAttribute()与getAttribute()方法一般都是成对出现,首先通过setAttribute()方法设置属性与属性值,然后通过getAttri ... 
- PHP拦截器之__set()与__get()的理解与使用
		“一般来说,总是把类的属性定义为private,这更符合现实的逻辑.但是,对属性的读取和赋值操作是非常频繁的,因此在PHP5中,预定义了两个函数“__get()”和“__set()”来获取和赋值其属性 ... 
- struts2获得request和session对象
		在struts1中,获得到系统的request或者session对象非常方便,都是按照形参传递的,但是在struts2中,request和session都被隐藏了 struts2提供两种方式访问ses ... 
- servlet三大作用域:request,session,application
		javaweb开发中Servlet三大域对象的应用(request.session.application(ServletContext)). 1. request request是表示一个请求,只要 ... 
- 【Spring】Spring IOC原理及源码解析之scope=request、session
		一.容器 1. 容器 抛出一个议点:BeanFactory是IOC容器,而ApplicationContex则是Spring容器. 什么是容器?Collection和Container这两个单词都有存 ... 
- Action中取得request,session的四种方式
		Action中取得request,session的四种方式 在Struts2中,从Action中取得request,session的对象进行应用是开发中的必需步骤,那么如何从Action中取得这些对象 ... 
随机推荐
- Linux下Redis开机自启(Centos)
			废话少说,直接来步骤: 1.设置redis.conf中daemonize为yes,确保守护进程开启. 2.编写开机自启动脚本 vi /etc/init.d/redis 脚本内容如下: # chkcon ... 
- sqlserver 用 RowNumber 分组
			SELECT RECORD.[RECORD_ID] ,RECORD.[WORKFLOW_INFO_ID] ,RECORD.[FORM_CODE] ,RECORD.[APPLY_DATE] ,RECOR ... 
- LNMP源码安装
			1. mysql安装 # Preconfiguration setup shell > groupadd mysql shell > useradd -r -g mysql -s /bin ... 
- 使用dedecms中常见错误提示及解决办法(一)
			在使用 dedecms 做网站时,常常会遇到一些棘手的问题,比如:页面图片不显示(src 的地址不对)等等. 1. 更新网站时错误 问题:Call to a member function GetIn ... 
- 第15章 设备无关位图_15.2 显示和打印DIB
			15.2.1 探究DIB (1)DIB文件的结构 整个文件 紧凑DIB(整个文件除文件头) 文件头(File Header) 信息头(Information Header) 信息头(Informati ... 
- document对象补充
			五.相关元素操作: var a = document.getElementById("id"); 找到a: var b = a.nextSibling ... 
- [No000065]python 获取当前时间
			要取的当前时间的话,要取得当前时间的时间戳,时间戳好像是1970年到现在时间相隔的时间.用下面的方式来取得当前时间的时间戳: import time print(time.time()) 输出的结果是 ... 
- slice,substr和substring的区别
			首先,他们都接收两个参数,slice和substring接收的是起始位置和结束位置(不包括结束位置),而substr接收的则是起始位置和所要返回的字符串长度.直接看下面例子: var test = ' ... 
- Anyconnect的VPN环境部署(2)-在Linux客户机上连接Anyconnect
			由于之前已经在机房IDC安装了Anyconnect的VPN服务环境(参考:Anyconnect的VPN环境部署(1)-OpenConnect server(ocserv)服务安装)今天介绍下在linu ... 
- Java读写文本文件
			1 字符输入(FileReader , char) import java.io.IOException; import java.io.FileReader; public class ep10_1 ... 
