Spring框架总结(8)

Json&File&Date&Encoding

  1. SpringMVC处理JSON
    1. 导包
      1.     <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.9.6</version>
            </dependency>
    2. 在Handler方法上使用@ResponseBody注解
      1.     @ResponseBody
            @RequestMapping("/json")
            public Book json() {
                Book book = new Book(12,"谷物大脑",39);
                return book;
            }
  2. 文件上传的处理
    1. 完成文件上传功能的实现方式:
      1. 原生ServletAPI:Request.getInputStream()
      2. 采用现有的组件:FileUpload,SmartUpload
      3. 使用框架提供的功能
    2. 使用SpringMVC上传功能的步骤
      1. 配置上传文件的解析器(CommonsMultipartResolver)
        1.     <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
                  <property name="defaultEncoding" value="UTF-8"></property>
                  <property name="maxUploadSize" value="10485760"></property>
              </bean>
      2. 定义上传页面
        1.     <form action="uploadFile" method="post" enctype="multipart/form-data">
                  姓名:<input type="text" name="name"><br>
                  照片:<input type="image" name="photo"><br>
                  <input type="submit" value="上传">
              </form>
      3. 在Handler中接收文件并保存
        1.     @Autowired
              ServletContext context;
        2.     @RequestMapping("/uploadFile")
              public String uploadFile(String name, @RequestParam("photo") MultipartFile photo) {
                  
                  System.out.println("姓名:"+name);
                  if(!photo.isEmpty()) {
                      System.out.println("原始文件名:"+photo.getOriginalFilename());
                      System.out.println("文件的大小:"+photo.getSize());
                      System.out.println("文件类型"+photo.getContentType());
                      try {
                          String path = context.getRealPath("/");
                          path = path + "WEB-INF/jsp/img/";
                          System.out.println(path);
                          photo.transferTo(new File(path+photo.getOriginalFilename()));
                      } catch (IllegalStateException | IOException e) {
                          // TODO Auto-generated catch block
                          e.printStackTrace();
                      }
                  } else {
                      System.out.println("文件为空");
                  }
                  return "success";
              }
  3. 日期类型的处理
    1. java.util.Date:@DateTimeFormat 注解,指定转化的格式即可;此注解还可用在 Calendar,Long,jota
  4. 字符编码的配置(web.xml)
    1.     <!-- 字符编码 -->
          <filter>
              <filter-name>CharacterEncodingFilter</filter-name>
              <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
              <init-param>
                  <param-name>encoding</param-name>
                  <param-value>UTF-8</param-value>
              </init-param>
          </filter>
          <filter-mapping>
              <filter-name>CharacterEncodingFilter</filter-name>
              <url-pattern>/*</url-pattern>
          </filter-mapping>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值