struts1的拦截器1_2

转载 2012年03月23日 22:13:32
Struts2已经发布一段时间了,这个版本较struts1.x版本有了很大变化,其中一个就是增加了拦截器功能。这是个非常有用的功能,可是struts1.x却没有。
    其实,struts1.x可以配合插件,实现拦截器的功能。
    SAIF(Struts Action Invocation Framework)是一个开源组件,它让Struts框架具备Action拦截器与IOC的功能,这样你的1.x框架也就有了拦截器的功能。
      1.将saif.jar包放入你的lib中。
      2.创建Interceptor类。比如我在这里创建一个类:
package interceptor;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import net.sf.struts.saif.ActionHaveForwardInterceptor;

publicclass DisplayInterceptorimplements ActionHaveForwardInterceptor{

    
public ActionForward afterAction(Action arg0, ActionMapping arg1,
             ActionForm arg2, HttpServletRequest arg3, HttpServletResponse arg4)
            
throws IOException, ServletException{
        
// TODO Auto-generated method stub
        returnnull;
     }


    
public ActionForward beforeAction(Action action, ActionMapping mapping,
             ActionForm form, HttpServletRequest request, HttpServletResponse response)
            
throws IOException, ServletException{
        
// TODO Auto-generated method stub
         System.out.println("Inteceptor...");
        
if (!"fred".equals(request.getParameter("user_name"))){
            
return mapping.findForward("noPermission");
         }

        
returnnull;
     }


}

3.写interceptor配置文件:interceptor-config.xml。这个配置文件中指定了interceptor类和要被拦截的action

<?xml version="1.0" encoding="UTF-8"?>
<interceptor-config>
  
<interceptorname="displayInterceptor" type="interceptor.DisplayInterceptor"/>
    
  
<actiontype="/display">
        
<interceptorname="displayInterceptor"/>
  
</action>
    
</interceptor-config>

4.在struts-config.xml中指定加载interceptor-config.xml

<plug-in className="net.sf.struts.saif.SAIFSpringPlugin">
    
<set-propertyproperty="interceptor-config" value="/WEB-INF/interceptor-config.xml"/>
  
</plug-in>

ok,配置完后,启动服务器,然后输入.../display.do?user_name=fred,回车,这时候,这个请求就会被拦截来,

进入beforeAction中,进行验证,若验证成功,return null,就会转到action的forward指向的页面,若不成功,

就会转向另一个页面。


相关文章推荐

struts1的拦截器,一个简单的示范

1·首先写一个类 MyInterceptor 继承ActionServlet,代码如下 [java] view plaincopy public class...

struts1的拦截器1_1

SAIF(Struts Action Invocation Framework)是一个开源组件,它让Struts框架具备Action拦截器与IOC的功能 1.将saif.jar包放入你的lib中。 2...
  • sprita1
  • sprita1
  • 2012年03月23日 22:10
  • 3291

在struts1.2中使用拦截器

 要在struts1.2中使用拦截器,必须使用到以下三个包: 1:saif-0.1.jar  2:saif-spring.jar 3:spring.jar把以上三个包放入到自己J2EE工程中的web-...

在struts1.2中使用拦截器

 要在struts1.2中使用拦截器,必须使用到以下三个包: 1:saif-0.1.jar  2:saif-spring.jar 3:spring.jar把以上三个包放入到自己J2EE工程中的web-...

XSS攻击防御的filter实现

XSS攻击的基本概念主要是:     恶意用户在网页的可输入的地方输入可执行的脚本(如javascript)代码,从而使网页解析执行该脚本代码来达到攻击的效果, 比如在网站上写一篇文章时包含这段代码...

struts2拦截器demo1

  • 2013年10月29日 21:12
  • 10KB
  • 下载

Struts2拦截器的使用1

如何使用struts2拦截器,或者自定义拦截器。特别注意,在使用拦截器的时候,在Action里面必须最后一定要引用struts2自带的拦截器缺省堆栈defaultStack,如下(这里我是引用了str...
  • gd2008
  • gd2008
  • 2012年10月17日 10:34
  • 461

Struts2的拦截器(1)

框架提供默认的拦截器栈可以满足大部分应用程序的需要的,所以大部分应用并不需要修改默认的拦截器栈来新增加新的拦截器。 许多动作(Action)有着共同的问题需要处理。另外,不同的动作,面临的需要处理的...

基于struts2拦截器的权限控制系统1——后台方法的拦截

本文章只讲述struts2拦截器在权限控制中的作用,对应权限系统的数据库设计不做讨论 为了实现细粒度的权限控制,需要对struts2中action的方法进行拦截,这里我们用到了annotation注解...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:struts1的拦截器1_2
举报原因:
原因补充:

(最多只允许输入30个字)