SpringMVC
文章平均质量分 79
Archie_java
求知若饥,虚心若愚(stay hungry,stay foolish)
好记性不如烂笔头
展开
-
SpringMVC:如何保证Controller的并发安全
如果用SpringMVC 的 Controller时,尽量不在 Controller中使用实例变量,否则会出现线程不安全性的情况,导致数据逻辑混乱。某个请求对应的线程如果修改了这个变量,那么在别的请求中也可以读到这个变量修改后的的值。单例模式容易出现的问题是:在Controller中定义的实例变量,在多个请求并发时会出现竞争访问,Controller中的实例变量不是线程安全的。根据Tomcat官网中的介绍,对于一个浏览器请求,tomcat会指定一个处理线程,或是在线程池中选取空闲的,或者新建一个线程。原创 2023-08-06 22:06:42 · 218 阅读 · 0 评论 -
Http请求中Content-Type讲解以及在Spring MVC中的应用
在本文中,首先介绍了Content-Type主要支持的格式内容,然后基于@RequestMapping标注的内容介绍了主要的使用方法,其中,headers, consumes,produces,都是使用Content-Type中使用的各种媒体格式内容,可以基于这个格式内容来进行访问的控制和过滤。参考资料:HTTP中支持的Content-Type: http://tool.oschina.net/commonsMedia Type介绍。原创 2023-03-18 22:38:15 · 1502 阅读 · 0 评论 -
SpringMVC 【参数绑定详讲、默认支持参数类型、自定义参数绑定、RequestParam 注解】
SpringMVC 第四篇【参数绑定详讲、默认支持参数类型、自定义参数绑定、RequestParam 注解】参数绑定我们在 Controller 使用方法参数接收值,就是把 web 端的值给接收到 Controller 中处理,这个过程就叫做参数绑定…默认支持的参数类型从上面的用法我们可以发现,我们可以使用 request 对象、Model 对象等等,其实是不是可以随便把参数写上去都行???其实并不是的…Controller 方法默认支持的参数类型有 4 个,这 4 个足以支撑我们的日常开发了原创 2022-05-16 00:25:24 · 745 阅读 · 0 评论 -
SpringMVC接收基本类型和包装类型
先看一个示例:注意这两个参数都没有加@RequestParam注解。测试:直接报错。即没有加@RequestParam注解,基本数据类型参数是必填的。再测试:直接返回null,也就是说包装类型参数,没有加@RequestParam注解,如果没有传这个参数,那么这个参数是null;当然如果加了@RequestParam注解,默认required=true,如果不传入这个参数肯定会报错。这里就不一一举例了,总的来说,参数绑定这块要注意,不确定的时候要测试下。...原创 2022-05-16 00:11:01 · 325 阅读 · 0 评论 -
SpringMVC 参数绑定详解
概述记得之前跟前端同事联调接口的时候,后端SpringMVC需要接收数组类型的参数,然后跟前端说需要传数组类型过来。后来前端童鞋传了数组,但是后端接收不成功,联调失败。那时候由于时间关系没有仔细研究这块,当时想了个办法就是前端传一个json字符串,后端换成接收json字符串然后转成需要的数组对象。这显然不是一种好的做法,框架帮我们做好的事我们没有用上,还平白多了两次数据的转换。所以今天花时间研究了下,将springMVC的数据绑定做个总结。1. 简单类型参数即几种java原生的基本数据类型已经其封装类原创 2022-05-15 23:57:42 · 1467 阅读 · 0 评论 -
@ResponseBody 转化成json后与实体类字段名不一致_SpringMVC字符串解析成json对象(@RequestBody注解和@ResponseBody注解)
@ResponseBody 转化成json后与实体类字段名不一致实体类A字段名由B改成C后,Controller 中返回的List中字段名仍然是C经过@ResponseBody返回到前台后又变成了B后来发现公司项目采用的是阿里的fastjson, 是开源的Json格式化工具库 此工具库是根据实体类中的get方法来生成json字段先获取get方法名,再将"get"字符串截取掉作为json字段名而我恰恰只改了实体类的变量名称而没有改get方法名 所以造成了以上的错误 修正get方法后生效Sprin原创 2022-05-14 16:36:45 · 1019 阅读 · 0 评论 -
SpringMVC @RequestBody和@ResponseBody原理解析
SpringMVC @RequestBody和@ResponseBody原理解析前言@RequestBody作用是将http请求解析为对应的对象。例如:http请求的参数(application/json格式):{ "accountId": 10, "adGroupId": "12345678", "campaignId": "12345678", "dataType": 0, "sign": "abcdefg", "site": "us", "timeStamp": 1原创 2022-05-14 16:33:29 · 2809 阅读 · 0 评论 -
Spring如何将@RestController的对象自动转换为json_@ResponseBody 注解原理
我正在看一段代码,其中我假设spring决定在幕后使用Jackson为@RestController自动将对象转换为json@RestController @RequestMapping("/api")public class ApiController { private RoomServices roomServices; @Autowired public ApiController(RoomServices roomServices) { this.原创 2022-05-14 16:24:46 · 3520 阅读 · 0 评论 -
SpringMVC接收哪些类型参数参数
支持的数据类型:基本类型参数:包括基本类型和 String 类型POJO 类型参数:包括实体类,以及关联的实体类数组和集合类型参数:包括 List 结构和 Map 结构的集合(包括数组)SpringMVC 绑定请求参数是自动实现的,但是要想使用,必须遵循使用要求。使用要求:如果是基本类型或者 String 类型:要求我们的参数名称必须和控制器中方法的形参名称保持一致。(严格区分大小写)如果是 POJO 类型,或者它的关联对象:要求表单中参数名称和 POJO 类的属性名称保持一致。并且原创 2022-02-15 22:54:54 · 543 阅读 · 0 评论 -
Spring MVC 执行过程原理(请求映射原理、参数处理原理、返回值处理器)
Spring MVC 执行过程分析文章目录Spring MVC 执行过程分析请求映射原理适配器Adapter执行目标方法参数处理器解析器HandlerMethodArgumentResolver@RequestBody测试@RequestParam测试RequestParamMethodArgumentResolver分析执行目标方法体返回值处理器解析器目标方法执行完成处理派发结果请求映射原理SpringMVC功能分析都从 org.springframework.web.servlet.Dispatc原创 2022-02-03 22:38:31 · 342 阅读 · 0 评论 -
SpringMVC请求参数乱码问题
post 请求方式:在 web.xml 中配置一个过滤器 <!-- 配置 springMVC 编码过滤器 --> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class> org.springframework.web.filter.CharacterEncodingFi原创 2022-01-19 23:30:23 · 196 阅读 · 0 评论 -
【springmvc】@RequestParam详解以及加与不加的区别
以前写controller层的时候都是默认带上 @RequestParam 的, 今天发现不加@RequestParam 也能接收到参数下面我们来区分一下加与不加的区别这里有两种写法 @RequestMapping("/list") public String test(@RequestParam Long parentId) { } @RequestMapping("/list") public String test( Long parentId) { }第一种必须带原创 2022-01-13 20:58:49 · 1011 阅读 · 0 评论 -
properties配置文件的加密
要完成properties属性文件某些属性值的加密,和读取属性文件时进行解密,需要4个步骤编写加密解密工具类手动通过加密解密工具类获得加密后的属性值密文,并把密文填写在properties文件中编写PropertyPlaceholderConfigurer的子类,重写convertProperty()方法在spring-dao.xml配置文件中配置PropertyPlaceholderConfigurer类接下来我们将拿配置数据库的properties文件进行举例(一般我们需要对用户名和密码进原创 2022-01-13 19:42:33 · 2384 阅读 · 1 评论 -
SpringMVC参数的传递——接收List数组类型的数据
前言本文主要是记录SpringMVC中当前台传过来数组的时候,如何把前台传过来的数据封装到Controller层方法的形参中。在了解下面参数如何传递前先记住两个结论:当Ajax以application/x-www-form-urlencoded编码格式上传数据,必须使用JSON对象传递数据,后台需要使用@RequestParam 或者HttpServletRequest来接收数据当Ajax以application/json编码格式上传数据,必须使用JSON字符串传递数据,后台需要使用@Rquest原创 2022-01-13 00:07:07 · 6564 阅读 · 0 评论 -
注解@RequestParam【不添加默认项注解】与@RequestBody的使用场景
一、前言一直有这么一个疑问:在使用postman工具测试api接口的时候,如何使用 json 字符串传值呢,而不是使用 x-www-form-urlencoded 类型,毕竟通过 key-value 传值是有局限性的。假如我要测试批量插入数据的接口呢,使用 x-www-form-urlencoded 方法根本就不适用于这种场景。那么如何通过postman工具使用json字符串传值呢,这里就引申出来了spring的两个注解:@RequestParam@RequestBody总而言之,这两个注解都原创 2022-01-13 00:01:14 · 1301 阅读 · 0 评论 -
@requestbody和@requestparam到底什么作用
1、什么都不写GET可以自动封装为对象模型,没有的数值自动为0值POST请求体里面放了数据,但是还是使用了RequestParam里的数据总结:在不使用注解的情况下,相当于默认使用了RequestParam里的数据 (这种理解是错误的,真实的原因参考下面段落 有一个有趣的现象 ),而且可以自动封装为对象模型,没有的数据也不会报错,而是设为0值post请求时,如果不使用 contentType:'application/json;charset=utf-8',参数还是可以在RequestPar原创 2022-01-12 23:59:28 · 765 阅读 · 0 评论 -
SpringMVC注解@RequestParam全面解析____ 注解@RequestParam如何使用加与不加的区别
SpringMVC注解@RequestParam全面解析在此之前,写项目一直用的是@RequestParam(value=“aa” required=false)这个注解,但是并不知道它的意思。现在懂了,特来记录下。1、可以对传入参数指定参数名1 @RequestParam String inputStr 2 // 下面的对传入参数指定为aa,如果前端不传aa参数名,会报错 3 @RequestParam(value="aa") String inputStr 2、可以通过require原创 2022-01-12 23:53:05 · 2052 阅读 · 1 评论 -
注解RequestMapping中的URI路径最前面到底需不需要加斜线?
注解RequestMapping中的URI路径最前面到底需不需要加斜线?您有没有这样的困惑:在协同开发过程中,使用RequestMapping,或者是GetMapping,或者是PostMapping这类注解时,有的程序员加了斜线,有的程序员没有加斜线,实际好像都能访问到,那么到底需不需要加呢?举例以上路径写法都是可以访问的加不加都可以访问,从这一点可以推断出结论:RequestMapping最前面的斜线可加可不加(这里只是说最前面,如果是/a/b/c中间的斜线分隔符是一定要加的)所谓知其然原创 2021-11-15 22:41:02 · 1917 阅读 · 2 评论 -
SpringMVC接受List的几种方式
说到SpringMVC接受List参数,可能有人会说这个是个坑!下面我来跟大家说怎么补这个坑。下面我分几种情况来讲:一、只接收一个List1、form表单提交controller代码:@ResponseBody@RequestMapping("test")public void test(@RequestParam(value="list",required = false) List<Integer> list) { for (Integer integer : list) {原创 2021-11-14 15:57:14 · 8275 阅读 · 0 评论 -
Springmvc接收json数据的4种方式
1、以RequestParam接收前端传来的是json数据不多时:[id:id],可以直接用@RequestParam来获取值@Autowiredprivate AccomodationService accomodationService;@RequestMapping(value = "/update")@ResponseBodypublic String updateAttr(@RequestParam ("id") int id) { int res=accomodationS原创 2021-11-14 00:27:38 · 4891 阅读 · 0 评论 -
@RequestParam详解
@RequestParam主要用于将请求参数区域的数据映射到控制层方法的参数上首先我们需要知道@RequestParam注解主要有哪些参数value:请求中传入参数的名称,如果不设置后台接口的value值,则会默认为该变量名。比如上图中第一个参数如果不设置value=“page”,则前端传入的参数名必须为pageNum,否则在后台接口中pageNum将接收不到对应的数据required:该参数是否为必传项。默认是true,表示请求中一定要传入对应的参数,否则会报404错误,如果设置为fal原创 2021-11-06 10:20:18 · 90008 阅读 · 0 评论 -
SpringMVC 执行流程解析
SpringMVC 执行流程解析注:SpringMVC 版本 5.2.15上面这张图许多人都看过,本文试图从源码的角度带大家分析一下该过程。1. ContextLoaderListener首先我们从 ContextLoaderListener 讲起,它继承自 ServletContextListener,用于监听 Web 应用程序的启动与停止。ContextLoaderListener 中的 contextInitialized() 方法用于初始化 Web 应用程序上下文。ContextLo原创 2021-11-06 09:52:06 · 225 阅读 · 0 评论 -
@RequestParam 注解原理
@RequestParam 注解原理注:SpringMVC 版本 5.2.15介绍@RequestParam 注解用于绑定请求参数。它的具体内容如下:// 该注解作用的方法形参@Target(ElementType.PARAMETER)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface RequestParam { /** * 要绑定的参数名 */ @AliasFor("name") String原创 2021-11-06 09:44:36 · 1023 阅读 · 0 评论 -
SpringMVC源码之参数解析绑定原理
SpringMVC源码之参数解析绑定原理摘要本文从源码层面简单讲解SpringMVC的参数绑定原理SpringMVC参数绑定相关组件的初始化过程在理解初始化之前,先来认识一个接口HandlerMethodArgumentResolver方法参数解析器接口,这个接口是SpringMVC参数解析绑定的核心接口。不同的参数类型绑定都是通过实现这个接口来实现。也可以通过实现这个接口来自定义参数解析器。这个接口中有如下两个方法public interface HandlerMethodArg原创 2021-11-05 23:59:20 · 483 阅读 · 0 评论 -
mvc:annotation-driven 注解的作用
1.自动注册映射处理器和适配器这是该注解的主要功能,添加< mvc:annotation-driven/>注解后,容器中会<自动注册HandlerMapping与HandlerAdapter 两个bean。省去手动注册HandlerMapping和HandlerAdapter的步骤。当配置了< mvc:annotation-driven/>后,Spring就知道了我们启用注解驱动。然后Spring通过< context:component-scan/>标签的配置原创 2021-10-31 12:39:18 · 2889 阅读 · 1 评论 -
Java面试——SpringMVC系列总结
文章目录:1.什么是Spring MVC?2.Spring MVC的主要组件有哪些?3.请描述一下Spring MVC的工作流程?4.MVC是什么?MVC设计模式的好处有哪些5.拦截器Interceptor与过滤器Filter有什么区别?6.Spring MVC中常用注解有哪些?7.Spring MVC如何设定重定向和转发?8.Spring MVC如何解决POST请求中文乱码问题,GET请求又如何处理呢?1.什么是Spring MVC?Spring MVC是一个基于Java,实现了M原创 2021-10-12 23:35:02 · 154 阅读 · 0 评论