springmvc拦截器拦截可以处理非法字符吗?

我拦截请求,并对请求的参数做了过滤 如图:

图片说明

然后到了controller里面 参数并没有改变 ,请问是我解决方法的问题吗?这种方法行的通吗?还是少了些东西?谢谢大神

图片说明

0

6个回答

你这个拦截器有没有配置呢,调试下这个拦截器的代码有没有执行呢?

0
MiaomiaoRose
MiaomiaoRose 已经进去了值也改了 就是到controller里时 取的又是原来的值
3 年多之前 回复
0
MiaomiaoRose
MiaomiaoRose 已经进去了值也改了 就是到controller里时 取的又是原来的值
3 年多之前 回复

图片说明

我确定拦截器在controller之前已经进去了

0

建议在HttpServletRequestWrapper https://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/http/HttpServletRequestWrapper.html 中处理

http://stackoverflow.com/questions/27504696/how-to-change-the-posted-values-with-a-spring-mvc-interceptor

 I answer my own question. In fact it is rather complex and it took me some time to find a working solution. First, I created a filter in a Spring configuration class (Spring Boot environment exactly) :

@Configuration
@ComponentScan({ "istia.st.springmvc.config", "istia.st.springmvc.controllers", "istia.st.springmvc.models" })
@EnableAutoConfiguration
public class Config extends WebMvcConfigurerAdapter {
    @Bean
    public Filter cultureFilter() {
        return new CultureFilter();
    }

}
Here we declare a filter that will (by default) filter every request before it attains the final handler. Then I created the filter :

public class CultureFilter extends OncePerRequestFilter {

    @Override
    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
            throws ServletException, IOException {
        // next handler 
        filterChain.doFilter(new CultureRequestWrapper(request), response);
    }
}
[OncePerRequestFilter] is a Spring class. The trick is to replace the actual request with a new one [CultureRequestWrapper(request)]. Then I created the CultureRequestWrapper :

public class CultureRequestWrapper extends HttpServletRequestWrapper {

    public CultureRequestWrapper(HttpServletRequest request) {
        super(request);
    }

    @Override
    public String[] getParameterValues(String name) {
        // posted values a et b
        if (name != null && (name.equals("a") || name.equals("b"))) {
            String[] values = super.getParameterValues(name);
            String[] newValues = values.clone();
            newValues[0] = newValues[0].replace(",", ".");
            return newValues;
        }
        // other cases
        return super.getParameterValues(name);
    }

}
I redefined the [getParameterValues] of [HttpServletRequest] but it depends on the final servlet that will manage the request. We have to redefine the [HttpServletRequest] methods used by this servlet.
0

应该 用 OncePerRequestFilter 过滤在 http://blog.csdn.net/geloin/article/details/7445441

0

spring 拦截去可以修改request 内容吗?

0
rui888
无法显示此用户 回复MiaomiaoRose:我昨晚回去测试了,filter 中可以改变传入到controller 的参数
3 年多之前 回复
rui888
无法显示此用户 回复MiaomiaoRose: http://www.ocpsoft.org/opensource/how-to-safely-add-modify-servlet-request-parameter-values/
3 年多之前 回复
rui888
无法显示此用户 回复MiaomiaoRose: http://blog.csdn.net/xieyuooo/article/details/8447301
3 年多之前 回复
MiaomiaoRose
MiaomiaoRose 我又用了filter 并不能改变我的controller获取的参数值........................
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
SpringMVC 过滤参数的非法字符
import java.io.IOException; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestW
springmvc拦截器面对ajax时的处理
前面说过,当前台是ajax传过来的请求的时候拦截器并不能跳转,原因可想而知了,因为ajax是局部的,不管是成功还是失败都会由ajax的的成功或者失败函数的进行处理。 没看过的可查看另一篇文章 那我们就需要区分传过来的请求是否是ajax请求,然后将Url的转发交给前台来做 原理:ajax请求会先发送一个请求头,判断正确后才发送真正的请求 代码如下 1.后台代码@Override publ
springmvc统一的异常处理拦截器实现
springmvc已经实现了异常的处理,这里我对异常进行自定义实现 实现继承SimpleMappingExceptionResolver实现自定义的异常拦截器, 通过viewName是否为空来判断action请求是ajax还是http [code="java"] import java.io.IOException; import java.io.PrintWriter; im...
SpringMVC编码过滤+拦截器+异常处理
目录 一、SpringMVC 编码过滤+拦截器+异常处理 1.编码过滤 1.1 基本概念 1.2 传统乱码解决 1.3 SpringMVC编码过滤器 2.拦截器 2.1 基本概念 2.2 实现HandlerInterceptor 3.异常处理 3.1 基本简介 3.2 SimpleMappingExceptionResovlver 3.3 HandlerExceptionR...
关于springmvc拦截器不拦截jsp页面的折腾
一,拦截器的用法 编写拦截器类 继承HandlerInterceptorAdapter类并重写需要的方法 或实现HandlerInterceptor接口并实现所有方法。 在spring-mvc.xml(也就是springmvc的配置文件)中添加拦截器,代码如下 <!-- 拦截器 --> <mvc:interceptors> <mvc:interce...
Spring AOP拦截Exception重新抛出让Spring MVC拦截器拦截
       今天遇到一个问题,并不是技术上很牛逼,只是有一点灵异,如何灵异的呢?因为我第一次部署测试没有反应,但是当我实在是hold不住,调试spring mvc源码的时候,它悄悄的,竟然好了。。。。。由此而产生的最直接后果是,当第一次我测试失败后,我直接否定了这个方案转而尝试其他方案,结果导致了我浪费了很多时间。。。。。         个中蛋疼问题,心力憔悴之处暂且不表,言归正传。 ...
spring3.0 MVC初步5-利用拦截器防止SQL注入
一、定义拦截器类实现HandlerInterceptor接口 public class SqlInjectIntercepter implements HandlerInterceptor {  @Override  public void afterCompletion(HttpServletRequest arg0,    HttpServletResponse arg1, Objec
java学习笔记——springmvc 之 拦截器 与 异常处理 和 SpringMVC的运行流程总结
十二、 拦截器 1、自定义拦截器概述 Spring MVC也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器必须实现HandlerInterceptor接口 preHandle():这个方法在业务处理器处理请求之前被调用,在该方法中对用户请求 request 进行处理。如果程序员决定该拦截器对请求进行拦截处理后还要调用其他的拦截器,或者是业务处理器去...
spring mvc 拦截器拦截jsp页面
spring mvc 拦截器怎么拦截jsp页面你这个 是拦截带 /jsp 的 .do请求 解决方案 用spring 的拦截器 去拦截 所有的 .do 请求, 然后写一个 过滤器去拦截 所有的.jsp 的请求 这样才能防止循环过滤这种会把所有jsp请求过滤不推荐。<filter> <filter-name> loginFilter</filter-name>
springmvc静态资源拦截 不要被拦截成页面就需要单独进行处理
在web.xml文件中经常看到这样的配置&amp;lt;servlet-name&amp;gt;default&amp;lt;/servlet-name&amp;gt;,这个配置的作用是:对客户端请求的静态资源如图片、JS文件等的请求交由默认的servlet进行处理,如下所示:&amp;lt;servlet-mapping&amp;gt;&amp;lt;servlet-name&amp;gt;default&amp;lt;/servlet-name&amp;gt;&amp;lt;ur...
spring MVC AOP 拦截方法参数并根据业务逻辑处理参数
/** 例如登录把token转化为用户对象 */ 1,在spring-mvc.xml配置文件中的注入bean                                                                                   1 -->                              
SpringMVC文件上传、拦截器与异常处理
文件上传 Spring MVC 为文件上传提供了直接的支持,这种支持是通过即插即用的 MultipartResolver 实现的。Spring 用Jakarta Commons FileUpload 技术实现了一个MultipartResolver 实现类:CommonsMultipartResovler,因此需要依赖commons-fileupload.jar。 Spring MVC 上下文...
四.SpringMVC中的 拦截器与异常处理
1.装配与自定义拦截器 主要作用:日志记录,权限检查,性能监控,通用行为 定义的Interceptor类要实现Spring 的HandlerInterceptor 接口 定义的Interceptor类继承实现了HandlerInterceptor 接口的类(比如 HandlerInterceptorAdapter 类) HandlerInterceptor三个方法: preHandle (
struts2学习之登陆拦截器和非法字符拦截器(六)
struts2拦截器
springmvc 拦截器拦截静态资源
springmvc拦截器interceptors   springmvc拦截器能够对请求的资源路径进行拦截,极大的简化了拦截器的书写。但是,千万千万要注意一点:静态资源的放行。  上代码: &amp;lt;mvc:resources mapping=&quot;/resources/**&quot; location=&quot;/static/resources&quot; /&amp;gt; &amp;lt;mvc:resources mappin...
springmvc拦截器对于流对象传输的拦截
      当前的项目中存在下面一种场景:web应用的某个功能中,jsp中加载的某个插件需要将数据提交给web服务端。插件中通过ObjectOutputStream向web端传输数据,但springmvc的拦截器会提前读取该流对象,那么配置指定的Action就无法再读取到该Stream的内容,会导致如下异常: java.io.EOFException at java.io.ObjectI...
SpringMVC——(7)拦截器与处理异常
目录 一、自定义拦截器 1、HandlerInterceptor 接口 2、后台: 3、配置拦截器 二、拦截器执行顺序 1、单个拦截器执行顺序 2、多个拦截器 三、异常处理 1、基于控制器 2、基于自定义的异常类 3、统一全局处理异常 4、DefaultHandlerExceptionResolver 一、自定义拦截器 1、HandlerInterceptor 接口 ...
springMvc使用拦截器自定义处理参数
  前言:      这两天开发遇到一个需求,那就是在后台接收到请求后,能不能自定义添加参数呢?      我们知道request中是能获取到前端获取的参数的,但是在后端不能再往parameter中添加参数了,虽然可以使用request.setAttribute()方法往request中存放数据,但是这些数据springmvc在解析request中的数据时是不会解析的;      而且,如果我们想...
Java中使用Springmvc拦截器拦截XSS攻击(XSS拦截)
1.定义拦截器(设置要拦截的方法或者不拦截的)2.拦截器写法(这里用了两个,一个拦截html标签,一个拦截html事件属性)IllegalCharInterceptor拦截器写法如下:其中HTMLSprit.delHTMLTag()方法如下:JqqXssInterceptor拦截器写法如下:其中枚举类写法如下:...
Spring MVC请求转发与拦截
1.Spring MVC概述: Spring MVC是Spring提供的一个强大而灵活的web框架。借助于注解,Spring MVC提供了几乎是POJO的开发模式,使得控制器的开发和测试更加简单。这些控制器一般不直接处理请求,而是将其委托给Spring上下文中的其他bean,通过Spring的依赖注入功能,这些bean被注入到控制器中。 Spring MVC主要由DispatcherS
SpringMVC【校验器、统一处理异常、RESTful、拦截器】
前言 本博文主要讲解的知识点如下: 校验器 统一处理异常 RESTful 拦截器 Validation 在我们的Struts2中,我们是继承ActionSupport来实现校验的…它有两种方式来实现校验的功能 手写代码 XML配置 这两种方式也是可以特定处理方法或者整个Action的 而SpringMVC使用JSR-303(javaEE6规范的一部分)校验规范,sprin...
Spring MVC全局异常处理与拦截器校检
在使用Spring MVC进行开发时,总是要对系统异常和用户的异常行为进行处理,以提供给用户友好的提示,也可以提高系统的安全性。拦截系统响应错误首先是拦截系统响应错误,这个可以在web.xml中配置,根据错误代码跳转到相应的提示页面。这里要注意一个问题,错误处理页面所用到的静态资源最好是直接写在页面中,或者同一个文件夹下,因为如果用户访问了一个系统不存在的路径,例如:/ss/kk/ll/tt.jsp
JS跨域:1.解决方案之-SpringMVC拦截器
一 拦截器代码。package com.wiimedia.controller;import java.util.List;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.Handler
SpringMVC 拦截返回值,并自定义
有关取代mvc:annotation-driven使用自定义配置请看: http://blog.csdn.net/cml_blog/article/details/45222431 1、在项目开发中,自定义全局返回值拦截是非常实用的,就如在Struts2的拦截器中,可以根据Action的返回值自定义返回信息,如果返回SUCCESS就统一返回一个成功的json对象,如果FAIL就返回
spring mvc 拦截器怎么拦截jsp页面
spring mvc 拦截器怎么拦截jsp页面 你这个 是拦截带 /jsp 的 .do请求   解决方案 用spring 的拦截器 去拦截 所有的 .do 请求,  然后写一个 过滤器去拦截 所有的.jsp 的请求 这样才能防止循环过滤 这种会把所有jsp请求过滤不推荐。 filter>         filter-name
Spring MVC通过拦截器处理sql注入、跨站XSS攻击风险(jeecg)
最近一个以前做的政府网站被信息安全部门扫描了一下,存在一些风险,发了一份安全报告过来。所以开始对这个网站进行安全性升级。其中主要的几个问题是sql注入风险、跨站xss攻击和链接注入问题。首先,什么是sql注入,度娘一下一大堆,官方语言我就不多说了,说说我自己的理解吧。sql注入就是通过url或者post提交数据时候,字符串类型的参数会被别人利用传入sql语句,最终破坏数据库或者达到一些见不得人的目的
Spring MVC 中“拦截器”处理模型数据 (二) @ModelAttribute
在这里强烈建议看看我之前写的几篇关于SpringMVC的博客,都是串通的。@ModelAttribute这个是SpringMVC中处理模型数据的最难也是最重要的点。相当于以前Struct的拦截器。用途:比如我们要修改一个对象的部分数据,按照以前的思维,new一个对象保存数据,然后赋值,把不修改数据先拿出来保存起来。但是这个已经Out了, 在SpringMVC中,是拿到数据库的实例,然后把传进来的值也
spring mvc 拦截器 拦截路径
/** 拦截所有请求 /*  拦截当前一级 /  拦截最初的页面 参考博客:http://blog.csdn.net/u014520797/article/details/52893474
Spring MVC实现静态资源访问,viewcontroller,拦截器,路径匹配等配置
spring mvc 定制配置需要配置类继承 一个webmvcconfigureradapter ,通过重写这个类的方法,来完成常用的配置 包括静态资源 , controller ,拦截器,路径匹配的配置等等 具体代码如下 @Component public class WebMvcConfig extends WebMvcConfigurerAdapter { /** * 配...
关于session失效时springmvc拦截器拦截ajax请求失败的问题
前两天做项目时在处理session失效时使用springMVC拦截器拦截ajax请求,结果发现正常请求拦截没问题,ajax请求拦截到了,可是ajax success函数捕获数据是登录页的源码,去网上查了一下 , https://my.oschina.net/zhk/blog/323452 明白了怎么回事 具体来说ajax是用XMLHttpRequest 对象用于和服务器交换数据。它的请求头区
springmvc为什么不能拦截jsp页面?
springmvc为什么不能拦截jsp页面? 转自:http://www.cnblogs.com/Anders888/p/6073190.html springmvc 拦截器,不拦截jsp文件 spring mvc的拦截器只拦截controller不拦截jsp文件,如果不拦截jsp文件也会给系统带安全性问题。 解决方案有两种: 1、将所有的jsp文件放入到WEB-
Spring MVC中@ControllerAdvice注解实现全局异常拦截
@ControllerAdvice注解一般用作处理系统error,拦截出错信息,返回报错提示界面,防止用户看到一推出错信息! Java代码  import org.springframework.ui.Model;  import org.springframework.web.bind.WebDataBinder;  import org.springframework.web.bind.ann...
Spring MVC使用拦截器实现日志记录
spring记录日志有两种,一种是通过AOP,另一种是通过拦截器interceptor,这里选择的是拦截器interceptor:  一、Interceptor实现类 SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor 来实现的。在SpringMVC 中定义一个Interceptor 非常简单,主要有两种方式: 第一种方
Servlet过滤器与SpringMVC拦截器
Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter。 通过Filter技术,开发人员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截。简单说,就是可以实现web容器对某资源的访问前截获进行相关的处理,还可以在某资源向web容器返回响应前进行截获进行处理。Servlet过滤器和SpringM
springMVC框架--springMVC拦截器原理(五)
一、     SpringMVC拦截器实现原理 用户请求到DispatherServlet中,DispatherServlet调用HandlerMapping查找Handler,HandlerMapping返回一个拦截器链(HandlerExecutionChain),springmvc中的拦截器是通过HandlerMapping发起的。          在企业开发,使用拦截器实现用户认证(
使用Spring mvc 的返回值拦截器对controller的返回值做拦截处理
使用场景: 有时我们针对特定的返回值类型,希望在Controller处理之后再对结果进行某些特殊的处理,比如修改HTTP的头,或者修改对象等等,这时我们可以采用如下的方式进行统一的处理 1.定义特定的返回值对象
Spring Mvc 公共Controller 使用拦截器注入请求信息
在Spring Mvc 中我们在Controller 中要想使用 HttpServletRequest HttpSession HttpServletResponse 等请求信息,这些信息有多种方式,这里就重点说下我使用的拦截器注入方式方式一:(使用注解)/** * 每一个Control 被执行时 * * @author jiangzeyin * @dat
SpringMVC拦截器之拦截跳转页面
package com.guide.interceptors; import java.util.Enumeration; import java.util.HashMap; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.serv
Spring MVC 拦截器和Ajax使用
Spring MVC 拦截器和Ajax使用 1、拦截器说明:     Spring MVC 中包含了拦截器,这是为了针对特殊的请求。例如,用户的权限验证。     Interceptors类必须实现HandlerInterceptor(org.springframework.web.servlet.HandlerInterceptor)。这个接口定义了三个方法 preHan
SpringMVC添加拦截器后静态资源处理
web.xml配置(感觉不是太好): <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/assets/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name>
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 python可以培训吗 云计算可以学吗