Spring MVC 之 文件下载与批量打包下载
文件下载大多使用输出流的方式来实现。而SpringMVC 提供了一个ResponseEntity
类型,可以很方便地定义返回的HttpHeaders
和HttpStatus
。
文件下载大多使用输出流的方式来实现。而SpringMVC 提供了一个ResponseEntity
类型,可以很方便地定义返回的HttpHeaders
和HttpStatus
。
声明一点:对于软件质量的保证,单元测试真的非常有必要,在CMMI-5标准也是对单元测试有明确要求的。
有的公司的对开发要求严谨的话,开发流程可能执行的是测试驱动开发(TDD
),即根据拿到需求,开发人员先写预期单元测试用例,再根据满足测试用例的要求来开发业务代码。
在不启动项目的情况下,对Spring Web项目,需要一些Servlet
相关的模拟对象,比如:MockMvc,MockHttpSession,MockHttpServletRequest,MockHttpServletResponse
等,还需要WebAppConfiguration
。
声明一点:对于软件质量的保证,单元测试真的非常有必要,在CMMI-5标准也是对单元测试有明确要求的。
有的公司的对开发要求严谨的话,开发流程可能执行的是测试驱动开发(TDD
),即根据拿到需求,开发人员先写预期单元测试用例,再根据满足测试用例的要求来开发业务代码。
在不启动项目的情况下,对Spring Web项目,需要一些Servlet
相关的模拟对象,比如:MockMvc,MockHttpSession,MockHttpServletRequest,MockHttpServletResponse
等,还需要WebAppConfiguration
。
报错:访问Maven
管理的SpringMVC
项目jsp
页面,错误:at org.apache.jsp.WEB_002dINF.jsp.index_jsp._jspInit(index_jsp.java:31)
原因:是项目的servlet-api
或jsp-api
两个jar
包与Tomcat
自带的包冲突导致。
解决:在pom.xml
文件,将这两个jar
包添加<scope>provided</scope>
控制,只在编译和测试有效。
Web 应用都应该要求对输入数据和请求数据做数据校验,将异常和非法数据过滤掉,确保系统的健壮性。
数据校验分客户端校验和服务端校验,客户端校验主要在页面通过JavaScript来实现,过滤正常用户的误操作,仅做初步过滤;服务端校验是整个应用阻止非法数据的最后防线,客户端校验绝不能替代服务端的校验,客户端校验可以降低服务器的负载。
汇总下@DateTimeFormatter
和@NumberFormat
的属性。
SpringMVC默认自带 Jackson
支持 Json
序列化,了解jackson的注解使用可以很方便自定义json
字符串。
项目中有一些数据是有一定的格式的(如:时间,日期,货币),或同类型的数据会有不同显示格式,这时需要对数据进行格式化。Spring提供了格式化框架,位于org.springframework.format
包,Formatter<T>
是其中最重要的接口。
后台接收前端传过来的数据往往与后台定义的实体类的属性类型并不匹配,就需要用到数据类型转换,若在每个代码文件中手动去转就非常麻烦。Spring MVC提供了默认转换器,也提供了接口用于实现自定义的类型转换器。
对开发者来说是国际化,对使用者来说是本地化。
SpringMVC 的国际化是建立在Java国际化的基础之上,也是通过提供不同国家/语言环境的消息资源,然后通过ResourceBundle
加载指定Local
对应的资源文件,再取得该资源文件中指定key
对应的消息。