一、Spring MVC文件上传配置
Spring MVC通过配置一个MultipartResolver来上传文件。
Spring的控制器中,通过MultipartFile file来接收文件,通过MultipartFile[] files接收多个文件上传。
二、Spring MVC自定义HttpMessageConverter
HttpMessageConverter是用来处理request和response里的数据的。Spring为我们内置了大量的HttpMessageConverter,例如,MappingJackon2HttpMessageConverter、StringHttpMessageConverter。
运行效果:
点击请求后:
三、Spring MVC服务器端推送技术
服务端推送技术在日常开发中很常用,早期很多人的解决方案是使用Ajax向服务器轮询消息,使浏览器尽可能第一时间获得服务端的消息,但是因为这种方式的轮询频率不好控制,导致服务端的压力大大增加。
接下来向大家介绍的服务器端推送方案是:当客户端向服务端发送请求,服务端会抓住这个请求不放,等有数据更新的时候才返回给客户端,当客户端接收到消息后,再向服务端发送请求,周而复始。这种方式的好处是减少了服务器的请求数量,大大减少了服务器的压力。
下面介绍两种实现方法:基于SSE(Server Send Event服务端发送事件)的服务器端推送和基于Servlet3.0+的异步方法特性。第一种方式需要新式浏览器的支持,第二种方式是跨浏览器的。
1.SSE:
2.Servlet3.0+异步方法处理:
结果1:
结果2:
四、Spring MVC的测试
为了测试Web项目通常不需要启动项目,我们需要一些Servlet相关的模拟对象,比如:MockMVC、MockHttpServletRequest、MockHttpServletResponse、MockHttpSession等。
引入一个概念测试驱动开发(Test Driven Development,TDD),开发人员按照需求先写一个自己预期结果的测试用例,这个测试用例刚开始肯定是失败的测试,随着不断的编码和重构,最终让测试用例通过测试,这样才能保证软件的质量和可控性。