1、自定义的拦截器的类:

 package it.web.interceptor;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor; @SuppressWarnings("serial")
public class PermissionInterceptor implements Interceptor { public void destroy() {
} public void init() {
}
//invoke调用的意思
/**
* invocation:action的调用者
*/
public String intercept(ActionInvocation invocation) throws Exception
{
Object user = ActionContext.getContext().getSession().get("user"); /*
* 如果user不为null,代表用户已经登录,允许执行action中的方法
*/
if(user!=null)
{
return invocation.invoke();
} /*
* 否则,不允许执行,并在上下文中放入一个提示信息
*/
ActionContext.getContext().put("message", "你没有权限执行该操作"); return "success";
} }

2、在struts-xml配置文件中用到拦截器:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd"> <struts>
<constant name="struts.action.extendsion" value="do,action"/> <package name="interceptor" namespace="/interceptor" extends="struts-default">
<interceptors>
<interceptor name="permission" class="it.web.interceptor.PermissionInterceptor"/> <!-- 自定义的拦截器 -->
<interceptor-stack name="permissionStack">
<interceptor-ref name="defaultStack"/> <!--Struts2自带的默认的拦截栈-->
<interceptor-ref name="permission"/>
</interceptor-stack>
</interceptors> <global-results>
<result name="success">/WEB-INF/demo/message.jsp</result>
</global-results> <action name="permission_*" class="it.web.action.PermissionAction" method="{1}">
<interceptor-ref name="permissionStack"/> <!--使用拦截器-->
</action>
</package>
</struts>

3、permissionAction类:

 package it.web.action;

 public class PermissionAction {

     private String message;

     public String getMessage() {
return message;
} public void setMessage(String message) {
this.message = message;
} public String addUI(){
this.message = "addUI";
return "success";
} public String execute(){
this.message = "execute";
return "success";
}
}

4、jsp页面:

<1>、user.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
request.getSession().setAttribute("user", "user_load");
%>
用户登录

<2>、message.jsp

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String user = (String)request.getSession().getAttribute("user");
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head> <body>
用户:${user}<br>
${message}
</body>
</html>

最新文章

  1. RS-232, RS-422, RS-485 Serial Communication General Concepts(转载)
  2. C#程序使用SQLite数据库
  3. Mysql 第一天
  4. Why you shouldn't use Entity Framework with Transactions
  5. php strcmp引起的问题
  6. [网站公告]23:00-05:00阿里云SLB升级会造成4-8次每次10秒的闪断
  7. XP_版本
  8. Menu MenuItem
  9. jquery完善的处理机制
  10. Linux查看进程内存占用及内存使用情况
  11. Codeforces 544E Remembering Strings 状压dp
  12. Day01
  13. This application failed to start because it could not find or load the Qt platform plugin &amp;quot;xcb&amp;quot;.
  14. javascript实现数据结构:广义表
  15. nuget 服务器崩溃
  16. Android如何实现定位获取
  17. 打印杨辉三角 --JS
  18. Spring 获取bean 几种方式
  19. 运行和控制Nginx——命令行参数和信号
  20. OSS 实例

热门文章

  1. springMVC3学习(八)--全局的异常处理
  2. key-list类型内存数据引擎介绍及使用场景
  3. 简单动态规划——三逆数的O(N^2)解法!
  4. 飘逸的python - zlib压缩存到数据库
  5. C#多线程,线程锁
  6. github 自学文档 希望可以给初学的人一些帮助
  7. 【微信开发】【Asp.net MVC】-- 微信分享功能
  8. jdk 安装配置
  9. input中的name,value以及label中的for
  10. awk-模式匹配