`

Struts2day03Struts2.o拦截器

 
阅读更多

1.Struts2.0拦截
   拦截器:为访问Action的请求增加额外功能
           保证程序的继续执行
2.如何开发一个拦截器
    1.开发一个类 implements Interceptor
    2.struts.xml配置文件
      1    <!-- 声明拦截器 -->
     <interceptors>
        <interceptor name="MyInterceptor" class="zx.struts2.day3.interceptor.MyInterceptor"></interceptor>
     </interceptors>
         自定义了拦截器,Struts2.0提供的默认拦截器失效

      2.在需要调用拦截器的action中配置
         在Action中引用拦截器的顺序决定了拦截器的执行顺序
     如果有多个拦截器是成组调用时,可以设置拦截器栈

 

1.写一个类MyInterceptor implements Interceptor接口

package com.jsu.struts2.interceptor;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;

public class MyInterceptor implements Interceptor {
	/**初始化资源*/
        public void init() {
	}
       	/*
	 * 拦截器的核心功能 @ActionInvocation
	 * 1.获得ActionContext:request,session,application... 
	 * 2.保证程序的继续执行
	 * 3.获得用户访问的Action对象信息 
	 * 4.获得值栈(valueStack)
	 */
        public String intercept(ActionInvocation invocation) throws Exception {
		System.out.println("Interceptor start....");
                // invocation.invoke()执行之前,都会在访问Action之前执行
                String path = invocation.invoke();
                // invocation.invoke()执行之后,都会在访问Action之后执行
                System.out.println("Interceptor end....");
		return path;
	}
         /* 释放资源 */
        public void destroy() {
	}
}

 2.写一个Action MyAction extends ActionSupport

package com.jsu.struts2.action;

import com.opensymphony.xwork2.ActionSupport;

public class MyAction extends ActionSupport {
	public String execute(){
		System.out.println("execute Action");
		return SUCCESS;
	}
}

 3.配置Struts.xml文件

   自定义拦截器在package标签下面,action标签上面

<struts>
	<package name="loginDemo" namespace="/" extends="struts-default">
	<!-- 自定义拦截器 -->
	<interceptors>
		<interceptor name="MyInterceptor" class="com.jsu.struts2.interceptor.MyInterceptor"></interceptor>
	</interceptors>
	<!-- 配置拦截器 -->
	<action name="my" class="com.jsu.struts2.action.MyAction">
	<interceptor-ref name="MyInterceptor"></interceptor-ref>
	<interceptor-ref name="defaultStack"></interceptor-ref>
		<result>/login.jsp</result>
	</action>	
	</package>
</struts>

 在login.jsp页面

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head> </head>
  <body>
     <center>
   <form action="my.action" method="post">
   userName:<input type="text" name="username"/> <br>
   passWord:<input type="text" name="pwd"/><br>
   <input type="submit" value="Submit"/>
   </form>
   </center>
  </body>
</html>
 
分享到:
评论

相关推荐

    Struts2Day2

    `Struts2Day2_intercepter`指的是Struts2的核心特性之一——拦截器。拦截器是Struts2处理请求的一种机制,它们按照预定义的顺序执行,可以用于实现如日志记录、权限验证、事务管理等功能。通过自定义拦截器,开发者...

    传智168期JavaEE struts2杜宏 day 29~day31笔记.pdf

    标题中的“传智168期JavaEE struts2杜宏 day 29~day31笔记”暗示了文档是一系列关于JavaEE技术栈中的Struts2框架的课程笔记,由杜宏教授,并且特别强调了是从29天到31天的学习内容。JavaEE(Java Platform, ...

    struts2day02

    2. **拦截器**:拦截器是Struts2的一大特色,它们按照预定义的顺序执行,可以实现如日志、权限验证、事务管理等功能。在`struts.xml`中,你可以配置拦截器栈,定义拦截器的执行顺序。 3. **Action执行**:经过拦截...

    struts2框架2016版资料day01

    2. **核心组件**:Struts2的核心组件包括Action类、配置文件(struts.xml)、拦截器(Interceptors)和结果(Results)。Action类是处理用户请求的业务逻辑,配置文件定义了Action与URL的映射关系,拦截器可以对请求...

    黑马程序员_struts2框架开发2016版讲义和笔记资料_day01_day02_day03_day04

    Day03可能涵盖Struts2的拦截器机制,这是Struts2的一大特色,可以实现如日志记录、权限验证、性能优化等多种功能。同时,可能会讲解如何自定义拦截器,以及在实际项目中如何组合使用不同的拦截器链。 Day04可能涉及...

    黑马Struts2视频(day1)

    3. **Interceptor(拦截器)**:拦截器是Struts2的一大特色,它允许开发者插入自定义的逻辑在Action执行前后,如日志、权限检查等,增强了框架的扩展性。 4. **Result**:Action执行后的结果,可以是视图的跳转,也...

    黑马Struts2视频(day2)

    - 拦截器是Struts2的一大特色,它在Action调用前后执行一系列预定义的逻辑,如日志记录、权限检查、数据验证等,增强了框架的可扩展性和灵活性。 4. **配置文件详解**: - `struts.xml`是Struts2的主要配置文件,...

    传智播客struts2.1视频教程_介绍struts2及struts2开发环境的搭建

    Interceptor则是拦截器,可以在Action执行前后进行额外的操作,如日志记录、权限检查等。 搭建Struts2的开发环境,我们需要以下步骤: 1. **安装Java环境**:确保系统已安装Java JDK,并设置好环境变量。 2. **...

    struts day01

    Struts 2 使用 XML 配置文件(通常命名为 `struts.xml` 或 `struts-default.xml`)来定义 Action、结果类型、拦截器栈等。配置文件可以指定 Action 的映射路径、接收的参数、执行的业务方法以及返回的结果视图。 **...

    黑马程序员_struts2框架2016版视频_struts2_day01笔记

    随着Java技术的发展和Web应用的需求变化,最初的Struts1设计开始暴露出一些限制,比如不支持拦截器等。而WebWork框架在设计上更为先进,引入了许多新的特性,如拦截器机制和OGNL表达式语言。为了克服这些限制并利用...

    达内培训机密资料_struts2_day05(3)

    - **struts.xml**: 核心配置文件,用于定义Action、拦截器等。 - **struts.properties**: 配置Struts2的行为参数。 - **tiles.xml**: Tiles插件配置文件,用于管理页面布局。 #### 3. **Struts2标签库** Struts2...

    超详细Struts2教程及源代码

    day03可能讲解了Struts2的拦截器(Interceptor)。拦截器是Struts2的一大特色,它们允许你在请求处理前后执行自定义逻辑,如日志记录、权限验证等。你将学习如何编写自定义拦截器并将其加入到拦截器栈中。 day04...

    达内培训机密资料_struts2_day05(2)

    ### 一、Struts2框架中的自定义拦截器 #### 1.1 概念介绍 - **拦截器**是Struts2框架中的一个核心组件,用于对Action执行前后进行一系列操作,如权限验证、日志记录等。 - **自定义拦截器**则是开发者可以根据自己...

    Struts2项目案例

    4. **Interceptor(拦截器)**:Struts2的核心特性之一,它们是预定义或自定义的逻辑组件,可以插在Action调用之前或之后执行。例如,`ParamsInterceptor`用于参数绑定,`ValidationInterceptor`负责表单验证。 5. ...

    黑马Struts2视频(day3)

    在"黑马Struts2视频(day3)"中,我们将会深入探讨Struts2的核心概念和关键特性。 首先,Struts2框架的出现是为了克服早期Struts1框架的一些局限性,比如性能问题、可扩展性不足以及对注解支持的缺乏。Struts2通过...

    struts2课件第四天

    在"day04.txt"和"struts2_04、struts2_05"的文件中,可能包含了具体的案例分析和实践操作,比如创建Action类、编写配置文件、使用拦截器、处理表单提交等。通过这些实例,你可以更好地理解Struts2框架的使用方式,...

    struts2课件第二天

    - `struts2_03`可能详细介绍了自定义拦截器的编写和使用。 6. **结果类型(Result Type)** - 结果类型决定了Action执行完后如何跳转到视图,如dispatcher(用于转发到JSP)、stream(用于下载文件)等。 - 结果...

    struts2学习 源码

    2. **配置文件**:Struts2使用XML配置文件(struts.xml或struts.properties)来定义Action类、结果类型、拦截器链等。这些配置使得应用结构清晰,易于维护。 3. **拦截器(Interceptors)**:拦截器是Struts2的一大...

    黑马Struts2视频(day4)

    3. **Interceptor**:拦截器是Struts2的一个重要特性,它允许开发者在Action执行前后插入自定义的逻辑。拦截器可以用于日志记录、权限验证、数据校验等多种功能,增强了框架的灵活性。 4. **配置文件**:在Struts2...

Global site tag (gtag.js) - Google Analytics