使用这种形式的全局异常跳转,记录日志得写在jsp页面上
<global-exception-mappings>
<exception-mapping result="error" exception="java.lang.Exception">/errorPage.jsp
</exception-mapping>
</global-exception-mappings>
所以自定义一个拦截器,再拦截器里记录异常
<package name="basePriv" extends="struts-default">
<interceptors>
<interceptor name="exceptionInterceptor" class="com.hanpeng.b2c.phone.priv.ExceptionInterceptor"/>
<interceptor-stack name="b2cplatPrivInterceptor">
<interceptor-ref name="exceptionInterceptor"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="b2cplatPrivInterceptor"/>
<global-results>
<result name="error">/error.jsp</result>
</global-results>
</package>
拦截器实现
package com.hanpeng.b2c.phone.priv;
import org.apache.log4j.Logger;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
public class ExceptionInterceptor extends AbstractInterceptor {
private static final long serialVersionUID = 1008901298342362080L;
private static final Logger log = Logger
.getLogger(ExceptionInterceptor.class);
@Override
public String intercept(ActionInvocation invocation) throws Exception {
String actionName = invocation.getInvocationContext().getName();
try {
String result = invocation.invoke();
return result;
} catch (Exception e) {
log.error(actionName, e);
return "error";
}
}
}
分享到:
相关推荐
7. **异常处理**:学习如何在Struts2中处理异常,如使用全局异常拦截器。 8. **国际化和本地化**:如果案例涉及,了解如何在Struts2中实现多语言支持。 通过深入学习和实践这个案例,你可以更全面地理解和掌握...
Struts2可以通过集成日志框架,如Log4j或Java内置的日志API,来记录异常堆栈跟踪和其他相关信息。 通过以上方法,Struts2能够提供灵活且强大的异常处理能力,使得开发者能够更好地控制和管理应用程序的异常行为,...
2. **默认拦截器栈**:`defaultStack`包含了Struts2内置的一些拦截器,如`params`(处理参数),`i18n`(处理国际化),`exception`(处理异常)等。 3. **应用全局拦截器**:现在,所有Action都会在执行前经过`...
拦截器是在Action调用之前和之后执行的一段代码,可以用来做日志记录、权限检查、事务管理、性能监控等。这些操作无需在每个Action中重复编写,而是通过配置就可以全局应用。Struts2的拦截器基于AOP(面向切面编程)...
在Struts2中,拦截器(Interceptor)扮演着至关重要的角色,它允许开发者在动作执行前后插入自定义逻辑,如日志记录、权限验证等。在本案例中,我们将深入探讨如何使用Struts2拦截器实现登录权限验证,同时结合...
在Struts2框架中,异常处理主要依赖于两个关键组件:`ExceptionMappingInterceptor`(异常映射拦截器)和`ActionError`。当一个Action执行过程中抛出未捕获的异常时,`ExceptionMappingInterceptor`会介入并根据配置...
在struts.xml配置文件中,可以使用`<interceptors>`标签定义全局拦截器,也可以在具体的Action配置中使用`<interceptor-ref>`引用拦截器。例如: ```xml <!-- ... --> ``` **使用场景** 1. **...
通过以上介绍,我们了解到Struts2的异常处理机制包括全局异常映射、动作级别的异常处理以及自定义拦截器。理解并灵活运用这些机制,能帮助开发者更好地控制程序的异常流程,提高应用的健壮性。结合`Struts2_13`这个...
拦截器是Struts2的核心特性之一,它们在Action调用之前和之后执行,扮演着类似于过滤器的角色,允许我们实现诸如日志记录、权限检查、事务管理等通用功能。在深入探讨自定义拦截器之前,我们先理解一下Struts2拦截器...
默认情况下,Struts2提供了一些预定义的拦截器,如`params`(处理请求参数)、`exception`(处理异常)、`i18n`(国际化支持)等。这些拦截器的执行顺序对整个应用的性能和功能有直接影响。 当一个请求到达Struts2...
以下是Struts2异常处理的四种主要方法,以及相关的知识点详解: 1. **全局异常映射(Global Exception Mapping)** 全局异常映射是Struts2配置文件(通常为struts.xml或struts-default.xml)中的一种机制,用于...
在Struts2中,拦截器(Interceptor)是一个至关重要的概念,它增强了MVC框架的功能,使得开发者可以对请求处理进行预处理和后处理,实现如日志记录、权限验证、事务管理等通用操作。下面我们将深入探讨Struts2拦截器...
拦截器通过插桩(Interception)机制增强了Action调用,可以实现如日志记录、权限验证、数据校验等功能。 自定义拦截器是Struts2框架的一大亮点,它允许开发者根据需求定制自己的拦截逻辑。以下将详细讲解如何创建...
Struts2自定义拦截器的配置是Struts2框架中一个非常重要的功能,它允许开发者在Action执行前后插入自定义的逻辑,以实现如权限验证、日志记录、性能监控等多种需求。以下是对标题和描述中涉及的知识点的详细说明: ...
拦截器在Struts2中扮演着重要的角色,它们是AOP(面向切面编程)的一种实现,用于在动作执行前后插入额外的功能,如日志记录、权限检查等。 首先,我们需要了解什么是拦截器。在Struts2中,拦截器是一个实现了`...
- **拦截器**:拦截器是Struts2的一个重要特性,可以在请求到达Action之前或之后执行特定的操作,如验证用户登录状态、日志记录等。 #### 四、Struts2进阶技巧 - **ModelDriven模式**:该模式允许Action实例共享同...
拦截器链是Struts2的一大特色,允许开发者自定义拦截器,实现如权限验证、日志记录、事务管理等功能。 4. **结果类型(Result)**:Action执行完成后,会返回一个结果类型,告诉框架如何处理后续的响应。Struts2内置...
拦截器可以通过`struts.xml`或`struts.properties`文件进行配置,可以定义全局拦截器栈,也可以针对特定Action配置拦截器。例如,配置`DebuggingInterceptor`: ```xml ...
全局拦截器栈的配置 在Struts2中,可以在全局范围内定义拦截器栈,这样就可以在所有Action中重用相同的拦截器配置。例如,在`struts.xml`配置文件中,可以看到如下配置: ```xml <package name="struts-shop" ...