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. 01011_怎么打开任务管理器?win7打开任务管理器方法

    以下几种方法可以打开任务管理器 1.在系统的任务栏点击鼠标右键,然后在弹出的右键菜单中选择“启动任务管理器”: 2.同时按下这三个按钮:Ctrl + Shift + Esc: 3.同时按下键盘的Ctr ...

  2. 【习题 6-1 UVA-673】Parentheses Balance

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 括号匹配. 栈模拟就好. 多种括号也是一样可以做的. [代码] #include <bits/stdc++.h> usi ...

  3. JSP中的EL表达式详细介绍

    一.JSP EL语言定义 EL 提供了在 JSP 脚本编制元素范围外使用运行时表达式的功能.脚本编制元素是指页面中能够用于在 JSP 文件中嵌入 Java 代码的元素.它们通常用于对象操作以及执行那些 ...

  4. ORACLE 11G R2 DG_BROKER 之SWITCH OVER

      官网:http://docs.oracle.com/cd/B12037_01/server.101/b10822/cli.htm 这个是有必要看一下. 注意本人已经完毕一次SWITCHOVER 所 ...

  5. 【软件project】 文档 - 银行业务管理 - 需求分析

    ---------------------------------------------------------------------------------------------------- ...

  6. [ACM] POJ 1046 Color Me Less

    Color Me Less Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 30146   Accepted: 14634 D ...

  7. GO语言学习(十一)Go 语言循环语句

    Go 语言提供了以下几种类型循环处理语句: 循环类型 描述 for 循环 重复执行语句块 循环嵌套 在 for 循环中嵌套一个或多个 for 循环 语法 Go语言的For循环有3中形式,只有其中的一种 ...

  8. TOP全异步模式

    Top全异步方式调用技术方案 背景:目前top通过servlet3.0技术结合异步管道化框架做到半异步调用,半异步调用采用异步线程同步调用后端的方式来做api call @飞不起的奥特曼 的部分文档) ...

  9. android Fragment与Activity交互,互相发数据(附图具体解释)

    笔者最近看官方training.发现了非常多实用又好玩的知识. 当中.fragment与Activity通信就是一个. fragment与Activity通信主要是两点: 1.fragment传递信息 ...

  10. 自定义 matplotlib 设置

    Customizing plots with style sheets import matplotlib as mpl 查看配置文件所在的目录:mpl.get_configdir() 1. 自定义 ...