1)登录界面代码:

<%
//设置session的值keyword为user
request.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表示用户已经登录,同意运行Action
if (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. spring拦截器的定义

    (一).拦截器的定义 1.为什么需要拦截器:在做身份认证或者是进行日志的记录时,我们需要通过拦截器达到我们的目的 2.什么事拦截器:在AOP(Aspect-Oriented Programming)中 ...

  2. Struts2他们拦截器实例定义—登陆权限验证

    版本号:struts2.1.6 这种情况下实现功能:用户需要指定username登陆,进入相应的页面运行成功登陆作战,否则,它返回到着陆的登录页面,当直接进入操作页面(登陆访问页面后的能力)如果不同意 ...

  3. springmvc中拦截器的定义和配置

    package com.hope.interceptor;import org.springframework.lang.Nullable;import org.springframework.web ...

  4. Dora.Interception,为.NET Core度身打造的AOP框架 [2]:以约定的方式定义拦截器

    上一篇<更加简练的编程体验>提供了最新版本的Dora.Interception代码的AOP编程体验,接下来我们会这AOP框架的编程模式进行详细介绍,本篇文章着重关注的是拦截器的定义.采用“ ...

  5. spring mvc <mvc:annotation-driven/> 自定义拦截器不走

    <mvc:annotation-driven/> 这个便签会注册2个自定义拦截器,所以导致请求过来就会自己去走注册的这2个拦截器和定义的一堆bean 但是这个便签是必须得定义的 直接贴代码 ...

  6. Struts2学习笔记(拦截器配置添加)

    一.拦截器工作原理: 根据Struts2的工作原理图,拦截器在action执行前进行顺序调用,之后执行Action并返回结果字符串,再逆序调用拦截器.(结构类似递归方式...)大部分时候,拦截器方法都 ...

  7. ASP.NET MVC案例——————拦截器

    摘要      本文将对“MVC公告发布系统”的发布公告功能添加日志功能和异常处理功能,借此来讨论ASP.NET MVC中拦截器的使用方法. 一个小难题      我们继续完善“MVC公告发布系统”, ...

  8. struts2 拦截器和actioninvocation、PreResultListener

       Interceptor说明 Interceptor的接口定义没有什么特别的地方,除了init和destory方法以外,intercept方法是实现整个拦截器机制的核心方法.而它所依赖的参数Act ...

  9. struts 拦截器 Interceptor

         拦截器是AOP中的概念,它本身是一段代码,可以通过定义“织入点”,来指定拦截器的代码在“织入点”的前后执行,从而起到拦截的作用.正如上面 Struts2的Reference中讲述的,Stru ...

随机推荐

  1. 编程一一C语言的问题,cpu中的专用寄存器

  2. C#学习笔记——常量、字段以及事件

    一 常量与字段 (一) 常量 常量总是被视为静态成员,而不是实例成员.定义常量将导致创建元数据.代码引用一个常量时,编译器会在定义常量的程序集的元数据中查找该符号,提取常量的值,并将值嵌入IL中.由于 ...

  3. java測试网络连接是否成功并设置超时时间

    /** * 获取RMI接口状态 * * @return "0":服务正常,"1": 连接报错,"2":连接超时 */ @Override p ...

  4. sum()函数——MATLAB

    a=sum(A)  %列求和 b=sum(A,2) %行求和 c=sum(A(:)) %矩阵求和 假定A为一个矩阵: sum(A)以矩阵A的每一列为对象,对一列内的数字求和. sum(A,2)以矩阵A ...

  5. python中有关字符串的处理

    原文 Python 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) 去空格及特殊符号 s.strip().lstrip().rstrip(',') 复制字 ...

  6. 50个SQL语句

    一个项目用到的50个SQL语句 转载 说明:下面五十个语句都依照測试数据进行过測试.最好每次仅仅单独执行一个语句. 问题及描写叙述: --1.学生表 Student(Sid,Sname,Sage,Ss ...

  7. js进阶 12-1 jquery的鼠标事件有哪些

    js进阶 12-1 jquery的鼠标事件有哪些 一.总结 一句话总结:1+3*2+1+1,其中里面有两组移入移出,一组和click,总结就是click(3个),hover(5个),mousemove ...

  8. angular自定义管道

    原文地址 https://www.jianshu.com/p/5140a91959ca 对自定义管道的认识 管道的定义中体现了几个关键点: 1.管道是一个带有“管道元数据(pipe metadata) ...

  9. 安装Win10+Ubuntu14.04双系统(uefi启动版)

    说明 本教程基于个人电脑(型号:神舟K550d-i7 D1)成功安装测试发布,不同硬件环境可能有细微差异,为预防安装过程中出现意想不到的报错,重要数据请提前备份 硬件环境 cpu:Intel i7-4 ...

  10. [AngularFire 2] Protect Write Access Using Security Rules

    We cannot allow un-auth user to change the database data as they want, for Firebase, it is easy just ...