struts2_11_实现自己的拦截器的定义
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_实现自己的拦截器的定义的更多相关文章
- spring拦截器的定义
(一).拦截器的定义 1.为什么需要拦截器:在做身份认证或者是进行日志的记录时,我们需要通过拦截器达到我们的目的 2.什么事拦截器:在AOP(Aspect-Oriented Programming)中 ...
- Struts2他们拦截器实例定义—登陆权限验证
版本号:struts2.1.6 这种情况下实现功能:用户需要指定username登陆,进入相应的页面运行成功登陆作战,否则,它返回到着陆的登录页面,当直接进入操作页面(登陆访问页面后的能力)如果不同意 ...
- springmvc中拦截器的定义和配置
package com.hope.interceptor;import org.springframework.lang.Nullable;import org.springframework.web ...
- Dora.Interception,为.NET Core度身打造的AOP框架 [2]:以约定的方式定义拦截器
上一篇<更加简练的编程体验>提供了最新版本的Dora.Interception代码的AOP编程体验,接下来我们会这AOP框架的编程模式进行详细介绍,本篇文章着重关注的是拦截器的定义.采用“ ...
- spring mvc <mvc:annotation-driven/> 自定义拦截器不走
<mvc:annotation-driven/> 这个便签会注册2个自定义拦截器,所以导致请求过来就会自己去走注册的这2个拦截器和定义的一堆bean 但是这个便签是必须得定义的 直接贴代码 ...
- Struts2学习笔记(拦截器配置添加)
一.拦截器工作原理: 根据Struts2的工作原理图,拦截器在action执行前进行顺序调用,之后执行Action并返回结果字符串,再逆序调用拦截器.(结构类似递归方式...)大部分时候,拦截器方法都 ...
- ASP.NET MVC案例——————拦截器
摘要 本文将对“MVC公告发布系统”的发布公告功能添加日志功能和异常处理功能,借此来讨论ASP.NET MVC中拦截器的使用方法. 一个小难题 我们继续完善“MVC公告发布系统”, ...
- struts2 拦截器和actioninvocation、PreResultListener
Interceptor说明 Interceptor的接口定义没有什么特别的地方,除了init和destory方法以外,intercept方法是实现整个拦截器机制的核心方法.而它所依赖的参数Act ...
- struts 拦截器 Interceptor
拦截器是AOP中的概念,它本身是一段代码,可以通过定义“织入点”,来指定拦截器的代码在“织入点”的前后执行,从而起到拦截的作用.正如上面 Struts2的Reference中讲述的,Stru ...
随机推荐
- 01011_怎么打开任务管理器?win7打开任务管理器方法
以下几种方法可以打开任务管理器 1.在系统的任务栏点击鼠标右键,然后在弹出的右键菜单中选择“启动任务管理器”: 2.同时按下这三个按钮:Ctrl + Shift + Esc: 3.同时按下键盘的Ctr ...
- 【习题 6-1 UVA-673】Parentheses Balance
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 括号匹配. 栈模拟就好. 多种括号也是一样可以做的. [代码] #include <bits/stdc++.h> usi ...
- JSP中的EL表达式详细介绍
一.JSP EL语言定义 EL 提供了在 JSP 脚本编制元素范围外使用运行时表达式的功能.脚本编制元素是指页面中能够用于在 JSP 文件中嵌入 Java 代码的元素.它们通常用于对象操作以及执行那些 ...
- ORACLE 11G R2 DG_BROKER 之SWITCH OVER
官网:http://docs.oracle.com/cd/B12037_01/server.101/b10822/cli.htm 这个是有必要看一下. 注意本人已经完毕一次SWITCHOVER 所 ...
- 【软件project】 文档 - 银行业务管理 - 需求分析
---------------------------------------------------------------------------------------------------- ...
- [ACM] POJ 1046 Color Me Less
Color Me Less Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 30146 Accepted: 14634 D ...
- GO语言学习(十一)Go 语言循环语句
Go 语言提供了以下几种类型循环处理语句: 循环类型 描述 for 循环 重复执行语句块 循环嵌套 在 for 循环中嵌套一个或多个 for 循环 语法 Go语言的For循环有3中形式,只有其中的一种 ...
- TOP全异步模式
Top全异步方式调用技术方案 背景:目前top通过servlet3.0技术结合异步管道化框架做到半异步调用,半异步调用采用异步线程同步调用后端的方式来做api call @飞不起的奥特曼 的部分文档) ...
- android Fragment与Activity交互,互相发数据(附图具体解释)
笔者最近看官方training.发现了非常多实用又好玩的知识. 当中.fragment与Activity通信就是一个. fragment与Activity通信主要是两点: 1.fragment传递信息 ...
- 自定义 matplotlib 设置
Customizing plots with style sheets import matplotlib as mpl 查看配置文件所在的目录:mpl.get_configdir() 1. 自定义 ...