`

struts2实现自定义拦截器对数据进行转码

阅读更多

先上代码:

       package cn.thszirs.common.util;

import java.util.Date;

import javax.servlet.http.HttpServletRequest;

import org.springside.modules.web.struts2.Struts2Utils;

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

/**
 * 对数据进行安全管理
 *
 * @author 张祺麟
 *
 */
public class IllegalInterceptor extends AbstractInterceptor {

 @Override
 public String intercept(ActionInvocation invocation) throws Exception {
  HttpServletRequest request = Struts2Utils.getRequest();
  String param = "";
  String paramValue = "";
  java.util.Enumeration params = request.getParameterNames();
  // 循环读取参数
  while (params.hasMoreElements()) {

   param = (String) params.nextElement(); // 获取请求中的参数
   String[] values = request.getParameterValues(param);// 获得每个参数对应的值

   for (int i = 0; i < values.length; i++) {

    paramValue = values[i];

    // 转换目标字符变成对象字符,可以多个。后期扩展特殊字符库用于管理
    paramValue = new String(paramValue.getBytes("iso-8859-1"),
      ("UTF-8"));
    // 这里还可以增加,如领导人 自动转义成****,可以从数据库中读取非法关键字。
    values[i] = paramValue;

   }
   // 把转义后的参数重新放回request中
   request.setAttribute(param, paramValue);
  }
  return invocation.invoke();

 }
}

 

 

 

 

struts.xml

 

<!-- 实现数据转码 -->
 <package name="conver" extends="struts-default">
  <interceptors>
   <interceptor name="illegalInterceptor" class="cn.thszirs.common.util.IllegalInterceptor" />
   <interceptor-stack name="illegal">
    <interceptor-ref name="illegalInterceptor" />
    <interceptor-ref name="defaultStack" />
   </interceptor-stack>
  </interceptors>
  <default-interceptor-ref name="illegal" />
 </package>

 

 

拦截类代码

@ParentPackage("conver")加上这个代码就好了

 

该项目基于注解

 

 

实现数据转码所遇到的问题,自定拦截器配置在默认的拦截器后面,导致数据装配完成后才做转码,并没有实现数据转码的效果。后面把自定义拦截器放在默认拦截器的前面,先转码再转配数据,实现转码成功。

 

分享到:
评论

相关推荐

    Struts2_自定义拦截器_用户权限验证

    本项目“Struts2_自定义拦截器_用户权限验证”将深入探讨如何在Eclipse开发环境中,利用Struts2框架自定义拦截器进行用户权限的验证,并处理各个Action之间的跳转。 首先,我们来看自定义拦截器的创建。在Struts2中...

    struts2的自定义拦截器例子

    在这个"struts2的自定义拦截器例子"中,我们将深入探讨如何创建和使用自定义拦截器。 首先,拦截器的本质是Java的面向切面编程(AOP)思想在Struts2中的体现。它们允许开发者在动作执行前后插入自定义的逻辑,例如...

    JSP 开发之Struts2内建自定义拦截器.docx

    在Struts2中,拦截器(Interceptor)扮演着关键角色,它们允许开发者在Action执行前后插入自定义逻辑,比如日志记录、权限验证、数据校验等。本文将深入探讨Struts2的内建自定义拦截器及其配置。 首先,让我们理解...

    struts2 自定义拦截器.rar

    在Struts2中,拦截器是基于责任链模式实现的,它们按照指定的顺序执行,对请求进行处理。拦截器可以用来进行权限检查、日志记录、事务管理等通用任务,从而将这些功能与业务逻辑分离,提高代码的可复用性和可维护性...

    Struts2_自定义拦截器

    自定义拦截器是扩展Struts2功能的重要手段,允许开发者根据项目需求实现特定的行为。 在Struts2中,拦截器是基于责任链模式实现的,它们按照注册的顺序依次执行。拦截器栈是Struts2中拦截器的集合,每个拦截器都...

    struts2自定义拦截器配置心得

    Struts2自定义拦截器的配置是Struts2框架中一个非常重要的功能,它允许开发者在Action执行前后插入自定义的逻辑,以实现如权限验证、日志记录、性能监控等多种需求。以下是对标题和描述中涉及的知识点的详细说明: ...

    struts2的一个自定义拦截器小例子

    本示例将聚焦于如何在Struts2中实现一个自定义拦截器。 首先,我们需要了解拦截器在Struts2中的作用。拦截器是AOP(面向切面编程)的一个核心概念,它允许开发者在动作执行前后插入额外的逻辑,如日志记录、权限...

    struts2自定义拦截器

    在Struts2中,自定义拦截器是实现业务逻辑控制、数据验证、权限管理等功能的重要手段。下面将详细探讨如何在Struts2中实现自定义拦截器来完成权限拦截。 首先,我们需要了解Struts2拦截器的工作原理。拦截器是在...

    Struts2自定义拦截器

    拦截器是Struts2的核心特性之一,它们在Action调用之前和之后执行,扮演着类似于过滤器的角色,允许我们实现诸如日志记录、权限检查、事务管理等通用功能。在深入探讨自定义拦截器之前,我们先理解一下Struts2拦截器...

    struts2的自定义拦截器代码

    2. **配置拦截器**:在Struts2的配置文件(通常为struts.xml)中注册自定义拦截器,并指定其在拦截器栈中的位置。例如: ```xml &lt;struts&gt; &lt;package name="default" namespace="/" extends="struts-default"&gt; ...

    自定义拦截器struts2源代码

    本篇将深入讲解如何在Struts2中自定义拦截器,并通过提供的源代码进行分析。 拦截器是Struts2框架的核心组件之一,它允许我们在请求到达Action之前或离开Action之后执行一些额外的操作,如日志记录、权限验证、性能...

    struts2的自定义拦截器代码例子

    总结起来,自定义拦截器是Struts2中的一种强大工具,它使得我们可以插入额外的业务逻辑或增强功能,而无需修改Action的代码。通过理解和熟练使用自定义拦截器,开发者可以更好地控制和优化应用的流程,提高代码的可...

    自定义拦截器的实现以及拦截器的详细配置

    1. **创建拦截器类**:自定义拦截器需要继承Struts2提供的`Interceptor`接口或实现`intercept()`方法。通常,我们会继承`AbstractInterceptor`抽象类,因为它已经为我们提供了默认的`intercept()`实现。 ```java ...

    struts2 用拦截器 实现用户权限登录

    在Struts2中,拦截器是实现业务逻辑和控制流程之间解耦的关键组件。本教程将详细介绍如何使用Struts2的拦截器来实现用户权限登录功能。 ### 一、拦截器的原理与作用 1. **原理**:拦截器工作在Action调用之前,它...

    Struts2自定义拦截器实现防止重复提交

    Struts2默认提供了一些拦截器来帮助处理这个问题,但如题目所述,由于性能考虑,项目组决定不使用Struts2的标签,因此需要自定义拦截器来实现防止重复提交的功能。 自定义拦截器的实现主要分为以下几个步骤: 1. *...

    自定义struts(实现拦截器)

    - Struts2的配置通常基于`struts.xml`文件,它定义了Action类、结果类型、拦截器栈等信息。自定义Struts时,你需要创建自己的XML配置文件,比如`mystruts.xml`,这个文件将替代或扩展默认的配置,用来加载自定义的...

Global site tag (gtag.js) - Google Analytics