1)登录界面代码:

<%//设置session的值keyword为userrequest.getSession().setAttribute("user", "Enter");
%>用户已登录

2)退出界面的代码:

<%//取消session中设定的值,即user为null   request.getSession().removeAttribute("user");%>用户已经退出登录

3)拦截器类PermissionInterceptor的代码:

public class PermissionInterceptor implements Interceptor {public void destroy() {// 销毁时调用}public void init() {// 启用时调用}// 该方法返回视图名称
public String intercept(ActionInvocation invocation) throws Exception {// 取得user的内容
Object user = ActionContext.getContext().getSession().get("user");// 假设user不为null表示用户已经登录,同意运行Actionif (user != null) {return invocation.invoke();// 调用Action}// 假设user为空,不调用Action,而且向session中存入字符串"你没有权     限运行该操作"ActionContext.getContext().put("message", "你没有权限运行该操作");return "success";}
}

3)struts.xml文件的配置:

<struts><package name="packageName" namespace="/test" extends="struts-default"><!--定义拦截器群 --><interceptors><interceptor name="permission" class="permissionInterceptor.PermissionInterceptor" /><!-- 自己定义拦截器栈 --><interceptor-stack name="permissionStack"><!--系统自己定义拦截器栈,先于自己定义拦截器引入 --><interceptor-ref name="defaultStack" /><!--引入自己定义拦截器 --><interceptor-ref name="permission" /></interceptor-stack></interceptors><!-- 定义默认全局拦截器 <default-interceptor-ref name="permissionStack" /> --><!--定义全局视图 --><global-results><result name="success">/index.jsp</result></global-results><action name="hello*"                class="interceptor.interceptorAction" method="{1}"><!-- 手动调用系统拦截器,当使用手动调用时该拦截器时,定义的                   系统默认拦截器不会使用 --><interceptor-ref name="permissionStack" /><!-- 当调用自己定义拦截器时,仅仅有将系统拦截器,先调用 採用同时使用自己定义拦截器和系统拦截器 --><interceptor-ref name="interceptorName" /></action></package>
</struts>

版权声明:本文博主原创文章,博客,未经同意不得转载。

struts2_11_实现自己的拦截器的定义相关推荐

  1. 定义Mybatis拦截器动态切换postgre数据库schema

    背景 随着业务的发展和合规要求,产品数据库将切换到Postgres.之前不同技术域,不同交付工程的数据分库管理的方式切换到PG数据库后将通过分schema管理. ORM继续使用Mybatis,为使用迁 ...

  2. Struts2拦截器(Interceptor)原理详解

    1.    理解拦截器 1.1.    什么是拦截器: 拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作 ...

  3. Struts2中的拦截器与过滤器学习

    拦截器是在面向切面编程的就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法 ,比如动态代理就是拦截器的简单实现,过滤器是在java web中,你传入的request,res ...

  4. struts2 18拦截器详解(五)

    I18nInterceptor 该拦截器处理defaultStack第四的位置,是用来方便国际化的,如果说我们的一个Web项目要支持国际化的话,通常的做法是给定一个下拉框列出所支持的语言,当用户选择了 ...

  5. 犯罪心理解读Mybatis拦截器

    原文链接:"犯罪心理"解读Mybatis拦截器 Mybatis拦截器执行过程解析 文章写过之后,我觉得 "Mybatis 拦截器案件"背后一定还隐藏着某种设计动 ...

  6. 【springboot中使用拦截器】

    1.拦截器原理 1.定义拦截器: 2.配置拦截器 3.解决静态资源被拦截 2.拦截器使用实例 2.1判断用户有没有登录 2.2取消拦截操作 1.拦截器原理 拦截器的原理很简单,是AOP 的一种实现,专 ...

  7. Struts自定义拦截器拦截器工作原理

    0.拦截器的调用原理: 拦截器是一个继承了序列化接口的普通接口.其工作原理是讲需要被拦截的对象作为参数传到intercept()方法内,在方法内部对此对象进行处理之后再执行原方法.intercept( ...

  8. 【struts2】struts2拦截器

    struts2提供面向切面(AOP)编程的机制,拦截器便是一种成熟的AOP编程思想的实现,它提供一种机制使开发者能把相对独立的代码抽象出来,配置到action前后执行.拦截器interceptor类似 ...

  9. 拦截器---SpringMVC学习笔记(十四)

    定义 Spring Web MVC 的处理器拦截器类似于Servlet 开发中的过滤器Filter,用于对处理器进行预处理和后处理. 第一步:拦截器的定义 定义一个实现HandlerIntercept ...

最新文章

  1. centos6.5_64 java 环境变量配置
  2. 进入工程制图闪退_安阳职业技术学院机电工程系新能源汽车专业项目答辩
  3. 阿里大规模应用Flink踩过的坑:如何大幅降低HDFS压力?
  4. 【通知】《深度学习之模型设计》第三次重印,欢迎读者支持!
  5. Jquery.load() 使用
  6. 苹果零售店每平方英尺能创造4000美元
  7. WCF-006:服务端类的封装问题
  8. apache sentry
  9. 极客大学产品经理训练营 认识产品经理上 第1课总结
  10. 开发你自己的XMPP 续 - Openfire 插件开发
  11. Tomcat安装与卸载
  12. VS 格式化代码快捷键
  13. 网付代理利润我把它分析得透透的
  14. matlab 水滴落水图,canvas 水滴图、液体进度条、仿加速球、圆球水波图
  15. 如何在网上挣钱,这几个项目让你月入过万元
  16. Windows Batch 常用命令
  17. 有的项目是没有seting ,.project文件的,import时not project found处理办法
  18. 100 个网络基础知识,全部掌握顶半个网络高手
  19. 手机测试磁场的软件,男子用手机软件检测出自家卧室床上电磁辐射爆表
  20. AI把你打造成时尚界宠儿 1

热门文章

  1. python实现一个抽象数据结构:栈
  2. 新手探索NLP(七)——情感分析
  3. git在项目中的实际运用
  4. 解决“cannot open git-receive-pack”错误
  5. C/S架构应用程序开发培训笔记
  6. 勒索软件出新招,小心你的隐私和財产安全!
  7. 《LeetCode力扣练习》第11题 C语言版 (做出来就行,别问我效率。。。。)
  8. 《LeetCode力扣练习》第2题 C语言版 (做出来就行,别问我效率。。。。)
  9. 爬虫 | 正则表达式提取腾讯教育新闻链接及图片链接
  10. cad线性标注命令_CAD图纸中怎么进行线性标注