
spring mvc
文章平均质量分 54
Dongguabai
这个作者很懒,什么都没留下…
展开
-
基于抽象 HandlerInterceptor 快速实现接口鉴权
本文主要探讨了基于抽象的 HandlerInterceptor 来实现鉴权注解,它可以灵活地控制用户的访问权限。原创 2024-07-09 20:28:09 · 764 阅读 · 0 评论 -
记一次HandlerMethodArgumentResolver失效的问题
从上面的方法可以看出,mvc在获得参数解析器时, 会先从缓存中获得参数解析器,若不存在,则遍历argumentResolvers,若有一个解析器的supportsParameter结果为true,则对该解析器进行缓存,并退出遍历。先说结论,因为在获得参数解析器的过程中,Controller的入参存在@RequestHeader注解的Map参数,mvc优先解析到其他的参数解析器,从而跳过了自定义参数解析器的判断与执行。或者我们可以在Controller中添加一个自定义参数,即解决走不到自定义解析器的问题。转载 2024-01-21 00:25:03 · 1241 阅读 · 0 评论 -
Spring Boot 项目启动后打印 Mapping 地址
【代码】Spring Boot 项目启动后打印 Mapping 地址。原创 2024-01-18 11:48:53 · 2283 阅读 · 0 评论 -
每天学习一点点之 Spring Web MVC 之抽象 HandlerInterceptor 实现常用功能(限流、权限等)
本文首先阐述了虽然 Spring AOP 可以实现限流、鉴权等需要代理的功能,但由于依赖动态代理,会带来一定的性能损耗。然后通过对的抽象,我们实现了一套在 Spring Web MVC 层面的静态代理机制,从而方便快速地在 Web 端实现代理功能。原创 2023-11-20 22:37:36 · 415 阅读 · 0 评论 -
为什么我们在Springmvc拦截器的时候要加判断 handler instanceof HandlerMethod
在Spring MVC中,拦截器(Interceptor)的preHandlepostHandle和方法的第三个参数是一个Object类型的handler参数。这个handler参数实际上就是处理当前请求的处理器。在Spring MVC中,处理器不一定是类型的。例如,当请求的URL对应的是一个静态资源时,处理器可能是类型的。另外,如果你自定义了处理器类型,那么处理器也可能是你自定义的类型。因此,如果你的拦截器的代码只适用于类型的处理器,你需要在代码中加入。原创 2023-11-19 23:53:31 · 940 阅读 · 0 评论 -
Spring MVC获取所有注册的url
本文的目的是获取所有通过requestMapping注册的url @RequestMapping("getAllUrl") @ResponseBody public Set<String> getAllUrl(HttpServletRequest request) { Set<String> result = new HashSet<String>();转载 2021-03-31 11:15:54 · 533 阅读 · 0 评论 -
SpringMVC获取@responsebody返回值,可操作,可修改
在项目开发中,有时候我们需求在拦截器中获取@responsebody的返回值,但是在我的知识体系中没有方法获取,(除非研究源码),但是在springMVC4版本以后,新加了一个@ControllerService注解。用此注解然后实现ResponseBodyAdvice接口可获取带有@responsebody的返回值,然后操作。...转载 2021-03-19 10:48:53 · 789 阅读 · 0 评论 -
多个 Filter 的执行顺序
这个图比那些复杂的描述好理解多了:转载 2020-01-14 17:30:50 · 1333 阅读 · 0 评论 -
Spring MVC 中 Model 的值设置到哪去了?
在 Spring MVC 中 Model 用的还是挺多的,配合一些模版技术传值也很方便,那么 Model 到底将值存到哪去了呢?比如可以看这个方法:org.springframework.web.servlet.view.InternalResourceView#renderMergedOutputModel:@Override protected void renderMergedOutpu...原创 2019-08-23 09:52:04 · 1541 阅读 · 0 评论 -
MultipartFile 异步存储 FileNotFoundException 分析与解决
原文地址:https://mp.weixin.qq.com/s?__biz=MzU1OTgyMDc3Mg==&mid=2247483939&idx=1&sn=820a03e6d3a4c15b6d6a354602fd7991&chksm=fc1038a8cb67b1bebb7b381dcfd22c6927314beee6159729bd63060da4d3d416bd...原创 2019-08-19 16:06:17 · 1558 阅读 · 0 评论 -
使用表单在SpringMVC的后台上传文件时遇到500错误:The current request is not a multipart request
转自:https://blog.youkuaiyun.com/it_admin_boss/article/details/78640315一、我出现错误的原因是在前端的表单属性里没有加入这一属性enctype="multipart/form-data",然后继续运行Tomcat,上传还是报一样的错误,继续认真观看,发现我使用表单的默认提交方式,所以把提交方式改为method="post",再次运行...转载 2018-11-14 14:17:38 · 1407 阅读 · 0 评论 -
SpringMVC接收Map参数
要注意的是,这样是接收不到任何参数的:Controller:需要在Map前面增加@RequestParam。测试:还有一种别的用法,封装一个类,内部维护一个Map<String,User>,但是这种用法建议不要用。...原创 2018-11-02 19:00:41 · 3144 阅读 · 1 评论 -
Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC
异常信息如下:2018-11-02 16:28:07.954 INFO 16220 --- [io-18080-exec-1] o.apache.coyote.http11.Http11Processor : Error parsing HTTP request header Note: further occurrences of HTTP request parsing erro...原创 2018-11-02 16:50:54 · 535 阅读 · 0 评论 -
@InitBinder注解的使用
用法一:绑定同属性多对象比如这里有一个User类:Person类:两个类都有name和address属性。在Controller中:在浏览器中访问:发现name和address同时被绑定到了user和person中,但是如果只想绑定到指定的类中,可以这么做:@InitBinder里面的参数表示参数的名称。再来测试:这个WebDataBin...原创 2018-11-02 15:59:41 · 981 阅读 · 0 评论 -
SpringMVC接收基本类型和包装类型
先看一个示例:注意这两个参数都没有加@RequestParam注解。测试:直接报错。即没有加@RequestParam注解,基本数据类型参数是必填的。再测试:直接返回null,也就是说包装类型参数,没有加@RequestParam注解,如果没有传这个参数,那么这个参数是null;当然如果加了@RequestParam注解,默认required=true,如果不传入这...原创 2018-11-02 14:51:28 · 1639 阅读 · 0 评论 -
SpringMVC Jackson为null转化为空串处理
import com.fasterxml.jackson.core.JsonGenerator;import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.databind.JsonSerializer;import com.fasterxml.jackson.databind...原创 2018-10-19 18:18:53 · 1390 阅读 · 1 评论 -
解决SpringMVC返回JSON IE下提示下载
SpringMVC的配置文件中:<!--注解驱动 --><mvc:annotation-driven> <mvc:message-converters> <!-- <ref bean="stringHttpMessageConverter"/>--> <ref bean="mapp原创 2018-10-12 16:18:42 · 1099 阅读 · 0 评论 -
Spring MVC 自定义Converter
我这个是String-Date配置文件: 一个类实现Conventer接口:在Controller上:原创 2018-10-12 16:11:16 · 594 阅读 · 0 评论 -
SpringMVC接收数组/集合参数
使用@RequestParam注解前端:Controller:这里用List集合、数组都可以接收。GET/POST请求不限。XHR:不使用@RequestParam注解比如这个例子:浏览器访问:控制台输出:接收复杂对象List集合这里有一个User类:如果前台有多个User传过来,那么可以这么做:封装一个类,属性为Li...原创 2018-10-12 00:38:32 · 18324 阅读 · 0 评论 -
SpringMVC整合FastJson:用"最快的json转换工具"替换SpringMVC的默认json转换
转自:https://blog.youkuaiyun.com/cslucifer/article/details/78610515一.环境说明Windows 10 1709 Spring 4.3.12.RELEASE FastJson 1.2.40 IDEA 2017.3 JDK 1.8.0_144二.开始配置在SpringmMVC的配置文件中加入如下代码 (目前最新版的配置是这样,以...转载 2018-10-10 14:40:21 · 1614 阅读 · 0 评论 -
Spring MVC 返回前端对象null转为空字符串
转自:https://blog.youkuaiyun.com/qq_36804701/article/details/81116119在测试移动端接口的时候,手机端开发的人要求我们把返回对象null转成空字符串,觉得页面显示null不美观。虽然我让他们在手机端判断一下就好,不过他们很不情愿的样子,实际上就是懒。算了,我就上网查找了一下资料:import java.io.IOException; ...转载 2018-10-10 14:28:25 · 2844 阅读 · 0 评论 -
SpringMVC - 参数中文乱码的问题
转自:https://blog.youkuaiyun.com/J080624/article/details/56015604后台常常会根据@RequestParam 或者@PathVariable 等从URL或者Form Data 获取参数数据。当其中有中文的时候,不可避免发生了乱码。。。【首先说明GET方法:】方法一:修改Tomcat的server.xml因为Tomcat默认使用ISO-...转载 2018-10-10 09:16:43 · 548 阅读 · 0 评论 -
Spring MVC设置不拦截静态资源
在Spring Boot中:这里还可以自行添加拦截器:Spring在Registry中通过org.springframework.web.servlet.config.annotation.InterceptorRegistry#registrations来存储各个拦截器。套路和之前分析过的Spring Boot自定义消息、类型转换器差不多(可参看:https://blog.csd...原创 2018-09-22 01:29:58 · 528 阅读 · 0 评论 -
分析Spring MVC自定义类型转换
分析有时候需要将前台传来一些特定格式的数据对象转化成特定的Java对象,这个时候类型转换器就派上用场了。这里简单介绍使用比较简单的Converter接口。Converter是Spring 3.0后的一个函数式接口,只有一个方法,将source转化成target: 在WebMvcConfigurationSupport中有这样一个方法:根据注释,可以在WebMvc...原创 2018-08-13 09:41:56 · 554 阅读 · 0 评论 -
分析Spring MVC自定义消息转换器
分析在Spring MVC的请求处理阶段大致可以分为以下几个步骤:根据请求url找到对应的Controller的Method,参数绑定后通过反射执行方法,将执行结果交给视图解析器响应视图。而在这之前需要通过消息转化器。Spring Boot底层通过HttpMessageConverters依靠Jackson将Java实体类输出为JSON格式。当有多个转换器可用时,根据消息对象类型和需要的内...原创 2018-08-13 09:25:43 · 3500 阅读 · 0 评论 -
Spring MVC拦截器中的第三个参数handler
在Spring中使用拦截器非常简单,但是之前一直没有关注过第三个参数Object handler。官方API中是这么定义的:SpringMVC会将请求通过处理器映射器将请求交给匹配的Handler处理,这个handler参数就是描述的处理请求的Handler。下面定义了一个拦截器:/** * @author Dongguabai * @date 2018-07-01 13...原创 2018-07-22 23:33:41 · 18944 阅读 · 8 评论 -
@JsonView的使用
@JsonView注解可以用来过滤序列化对象的字段属性,可以用来定义返回相同的Json的时候,过滤掉哪些属性,可能说的不是很清楚,打个比方,现在在Controller中有两个方法都是以Json的形式返回的User对象(有userName和password两个属性),但是有一个方法我只想返回User对象的userName,不想返回password,有一个方法我userName和password都要返...原创 2018-07-02 15:35:29 · 8693 阅读 · 6 评论 -
SpringMVC在url中使用正则表达式
原来在SpringMVC中获取url上的参数是这么做的:有时候需要通过正则表达式限制这个id,比如只能输入数字,可以这么使用:测试使用:原创 2018-07-02 15:06:29 · 2434 阅读 · 0 评论 -
使用eclipse从零开始搭建ssm maven工程(一)
1.创建maven工程:项目结构如下:【可能会出现建立maven项目后没有出现“src/main/java”的情况,可以按照如下操作:选中项目-右键-选择jre环境即可】这时候我们发现项目工程中webapp下没有web.xml和WEB-INF,解决方法如下:选中项目-右键-properties-先关闭动态web工程-applay然...原创 2018-03-16 11:26:55 · 543 阅读 · 0 评论 -
JackSon解析json中文出现的编码问题
项目使用了SpringMVC框架,使用@RequestBody交互数据的时候出现了下面的异常: 很明显是JackSon解析json出现了编码问题。 原因是而json字符串的分隔符必须是英文标点,当json字符串中含有中文时,使用jackson解析会出异常。目前有两种解决方式:第一种方式: 在服务器中修改JVM配置: tomcat: 在catalina.bat文...原创 2018-03-09 00:47:16 · 10747 阅读 · 0 评论