SpringMVC 二

Day02:

SpringMVC返回类型:

  • void
    使用void 返回类型, 可以使用以下对象 设置作用域 请求转发 重定向 直接响应数据
HttpServletRequest转发、

HttpServletResponse重定向、

HttpServletResponse直接响应内容(getWriter)等方式达到与前段JSP的数据通讯
  • ModelAndView
使用默认支持类 model 传递数据
    
优化方式: 配置解析器的 前缀 和后缀
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
           <property name="prefix" value="/WEB-INF/views/"/>
           <property name="suffix" value=".jsp"/>
    </bean>
  • String 字符串(逻辑视图名)
SpringMVC在默认情况下返回字符返回的是逻辑视图名称
    会从InternalResourceResolver中配置的父路径找对应的jsp页面
    
//forward 转发
    格式:forward:+内部请求路径(/类上路径+/方法路径)
        
//request 重定向       
    格式:redirect:+请求路径(可以是外部系统的)
  • json 字符串
注解说明
@RestController注释在类上,生命一个bean,且表示此类中返回类型都是json(@Controller+@ResponseBody)
@ResponseBody注解在方法上,表示此方法返回类型为json
springmvc框架,默认使用HttpMessageConverter消息转换器,进行json格式数据转换,
在xml配置中使用
< mvc:annotation-driven/ >
    配置处理器映射器和处理器适配器的时候,默认支持Jackson的数据转换
导入Jackson依赖    

SpringMVC的Restful支持

REST,即Representational State Transfer的缩写。直接翻译的意思是"表现层状态转化"。
Restful风格 就是一种面向资源服务的API设计方式,它是规范,是标准, 只是提供了一组设计原则和约束条件 .使用URL定位资源,用HTTP动词(GET,POST,DELETE,PATCH)描述操作 ,
springMVC对restful的支持主要是设置@RequestMapping的method属性,或者使用子注解

路径请求方式描述原始
/customerGET获得用户列表/findCustomerAll
/customerPOST创建用户/saveCustomer
/customer/1DELETE删除id=1的用户信息/deleteCustomrById
/customer/1PUT修改id=1的用户信息整体信息/updateCustomerByIdAll
/customer/1PATCH修改id=1的用户信息部分信息/updateCustomerById
/customer/1GET查询id=1的用户信息部分信息/findCustomerById

SpringMVC文件上传

文件上传回顾

前提:
  • form表单的method属性设置为post方式
  • form表单的enctype属性设置为multipart/form-data,
  • form表单值需要一个文本选择域
    form表单为“multipart/form-data”的时候,实际就是二进制流的传输,后台就不能使用普通的string或者简单的pojo对象接受,
搭建图片服务器:

问题:
在集群环境下,用户第一次访问 A 服务器 上传文件,当用户第二次访问 B 服务器时 下载之前上传的文件,B 服务器没有,访问失败

分析:
专门配置一台图片服务器, 当 用户第一次访问 A 服务器时 上传文件到图片服务器, A服务器只存储文件路径, 当用户第二次访问 B 服务器 下载文件,直接根据id从图片服务器下载即可

意义:
1、提供统一的文件服务
2、实现业务与非业务功能的分离
3、降低业务服务器的压力

  • 文件上传依赖:
<!-- 文件上传包版本 -->
<fileupload.version>1.3.1</fileupload.version>
<commonsio.version>2.4</commonsio.version>
<commonscodec.version>1.9</commonscodec.version>


<!-- 文件上传组件依赖 -->
<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>${fileupload.version}</version>
</dependency>
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>${commonsio.version}</version>
</dependency>
<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>${commonscodec.version}</version>
</dependency>
  • 配置CommonsMultipartResolver
<!-- 配置文件上传解析器,说明:
           1.文件上传解析器bean的id属性值,必须是文件上传解析器接口名称首字母小写:multipartResolver
        -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <!-- maxUploadSize:文件上传大小限制。以字节为单位。  10m=10*1024*1024-->
    <property name="maxUploadSize" value="10485760"></property>

    <!-- maxInMemorySize:配置内存缓冲区的大小。以字节为单位。 4k=4*1024-->
    <property name="maxInMemorySize" value="4096"></property>

    <!-- defaultEncoding:配置字符集编码 -->
    <property name="defaultEncoding" value="UTF-8"></property>
</bean>
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值