`

Spring MVC框架学习笔记1

阅读更多

Spring MVC环境搭建
        今天刚接触Spring MVC,费了半天劲大框架,下面是自己一个个找出来的,不对的请指正!

我用的服务器是tomcat 7,jdk 1.7

往后台传入json对象(jquery实现):

            1, 在spring-servlet.xml中加入如下配置,将加载静态资源。

                       <!-- 加载静态文件 mapping /jsp/** 对应的是webcontent下,js文件夹与WEB-INF同级 -->
                          <mvc:resources location="/js/" mapping="/js/**"/>
                          <mvc:resources location="/img/" mapping="/img/**"/>

          2,前台ajax:

<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
$(function(){
 alert("hello!");
 $("#btn1").on(
   "click",
   function(){
    $.ajax({
        url:"testJson",  
        dataType:"json",
        data:{"username":"xsd","password":"xsdpaw"},
        type:"POST",
        success:function(){
               alert("ok");
           }
    });
   });
});
</script>

    3,后台controller

@RequestMapping("/testJson")
 @ResponseBody
 public String hello(User user){
  System.out.println(user.getUsername());
  System.out.println(user.getPassword());
  String jsonObj="{\"username\":\"xsd\",\"\":\"xsd_pas\"}";
  return jsonObj;
 }

加上 @ResponseBody表示,该方法返回的内容,不经过视图映射(自己想的),直接写入到响应包的体部. 所以要是放返的是xml文件,也是要加上的。

            不需要导入任何的额外jar包,前台要将json写对。eg:{"username":"xsd","password":"xsdpaw"}。

             后台的controller的方法上,参数既可以是基本类型,也可以是对象,框架会自动封装的。在方法上加上@RequestResponse

spring-servlet.xml中配置首页(我自己瞎弄的)

     <bean name="/" class="org.springframework.web.servlet.mvc.ParameterizableViewController">    
          <property name="viewName" value="test"/>    
      </bean>  

String MVC文件上传于下载,需要jar包,common-io和common-fileupload

      上传:1,在spring-servlet.xml中加入下面的配置

              <!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 --> 
             <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
        <property name="defaultEncoding" value="UTF-8"/> 
        <!-- 指定所上传文件的总大小不能超过200KB。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 --> 
        <property name="maxUploadSize" value="200000"/> 
    </bean>  
    <!-- SpringMVC在超出上传文件限制时,会抛出org.springframework.web.multipart.MaxUploadSizeExceededException --> 
    <!-- 该异常是SpringMVC在检查上传的文件信息时抛出来的,而且此时还没有进入到Controller方法中 --> 
    <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> 
        <property name="exceptionMappings"> 
            <props> 
                <!-- 遇到MaxUploadSizeExceededException异常时,自动跳转到/WEB-INF/jsp/error_fileupload.jsp页面 --> 
                <prop key="org.springframework.web.multipart.MaxUploadSizeExceededException">uploaderror</prop> 
            </props> 
        </property> 
    </bean>  

        2,再写如下controller

             //参数file1要与前台的file控件的name属性同名,

            //若想传入多个文件,前台控件要用多个file控件,且name属性要相同,MultipartFile file1要改成

            //MultipartFile[]数组。在程序中进行遍历

               @RequestMapping(value="/upload",method=RequestMethod.POST)
 public String testUpload(MultipartFile file1,HttpServletRequest request) {
         String realPath = request.getRealPath("/");;
         try {
              FileUtils.copyInputStreamToFile(file1.getInputStream(), new File(realPath, file1.getOriginalFilename()));
         } catch (IOException e) {
                e.printStackTrace();
          }
        System.out.println("上传成功");
        return null;
 }

      下载:

           @RequestMapping(value="/download")
 public ResponseEntity<byte[]> testDownload(HttpServletRequest request,HttpServletResponse response){
         String path = request.getRealPath("/")+"/"+"类图中的6中关系.txt";
         File file = new File(path);
         HttpHeaders headers = new HttpHeaders(); 
         String fileName = null;
        try {
              fileName = new String("类图中的6中关系.txt".getBytes("UTF-8"),"iso-8859-1");
          } catch (UnsupportedEncodingException e) {
                 // TODO Auto-generated catch block
                  e.printStackTrace();
           }//为了解决中文名称乱码问题
         headers.setContentDispositionFormData("attachment", fileName); 
         headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); 
      try {
          return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers,HttpStatus.CREATED);
     } catch (IOException e) {
         e.printStackTrace();
      }
      return null;
 }

  • 大小: 7.2 KB
分享到:
评论

相关推荐

    Spring&Mybatis&SpringMVC总结笔记-最全最基础.pdf

    这是我搜集的Spring、Mybatis、SpringMVC笔记,结合自己的理解,又进行加工,是一个很不错的SSM入门学习、面试的好资料。建议收藏哦

    终结版--Spring MVC+MYBatis企业应用实战

    本书介绍了 Java EE 领域的两个开源框架: Spring的MVC 和 MyBatis。其中 Spring的版本为 4.2, My Batis的版本是 3.4o 本书的示例建议在 Tomcat 8 上运行。

    javaSpring学习笔记

    在“Java Spring学习笔记”中,你将找到对Spring框架的全面介绍,包括IoC(控制反转)和DI(依赖注入)原理、AOP(面向切面编程)、Spring MVC、Spring Boot等核心内容。每个主题都结合了理论知识和实际示例,帮助你...

    Spring + Spring MVC + MyBtais学习笔记.md

    适合刚接触Java框架的学生

    基于注解的spring_3.0.x_MVC学习笔记

    基于注解的spring_3.0.x_MVC学习笔记 例子很详细 适合学习SpringMVC框架的初学者

    Spring学习笔记.zip

    反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 Spring MVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多 著名的第三方框架和类库...

    SpringMVC笔记.zip

    使用 Spring 可插入的 MVC 架构,从而在使用 Spring 进行 WEB 开发时,可以选择使用 Spring的 Spring MVC 框架或集成其他 MVC 开发框架,如 Struts1(现在一般不用),Struts2 等。SpringMVC 已经成为目前最主流的 MVC...

    YUNBIJI.zip_spring ajax_云笔记_云笔记 项目_云笔记项目

    云笔记项目主要用于客户在线学习时记录笔记,在该功能基础上又扩展了分享,收藏,活动等功能,该项目采用MVC设计模式,Spring+MyBatis,Ajax,jQuery框架开发,在此技术上实现项目的登录模块,笔记本模块,笔记模块,...

    springMVC学习笔记

    Spring MVC 是目前最主流的 MVC 框架之一 Spring MVC 通过一套 MVC 注解,让 POJO 成为处理请 求的控制器,而无须实现任何接口。 支持 REST 风格的 URL 请求 采用了松散耦合可插拔组件结构,比其他 MVC 框架更具 ...

    spring培训学习笔记

    提供MVC Web 框架的实现,并对一些常用的企业服务API(Application Interface)提供一致的模型封装,是一个全方位的应用程序框架(Application framework),除此之外,对于现存的各种框架(Struts、JSF、Hibernate ...

    Spring Boot学习资料教程.docx

    本教程为笔者学习 Spring Boot 时写的笔记,适合没有接触过此框架的新手。内容非常全面,其中的代码都能运行,笔者都做了验证。本教程是简单笔记记录,从零到一学习 Spring Boot。本教程涉及的知识如下: Hell World...

    springboot学习思维笔记.xmind

    springboot学习笔记 spring基础 Spring概述 Spring的简史 xml配置 注解配置 java配置 Spring概述 Spring的模块 核心容器CoreContainer Spring-Core Spring-Beans ...

    毕业设计管理系统java服务端,采用spring mvc.zip

    为了帮助大家更好地完成毕业设计,我们特地整理了一系列Java毕业设计项目参考资源,包括源代码、MD文档、笔记等等,希望能对您的学习与研究提供有力支持。 项目源代码:涵盖了多个Java毕业设计项目的完整代码,包括...

    xmljava系统源码-spring-cloud-kuang:狂神springcloud笔记+源码+config

    SpringCloud笔记 1、前言 1.1、回顾 回顾之前的知识 JavaSE 数据库 前端 Servlet Http Mybatis Spring SpringMVC SpringBoot Dubbo、Zookeeper、分布式基础 Maven、Git Ajax、Json ... 串一下自己会的东西 数据库 ...

    java学习笔记

    java学习笔记大全:java内容介绍 java编程可以分成三个方向: 1、java se (j2se)桌面开发 java中的基础中的基础 2、java ee (j2ee)web开发 3、java me (j2me)手机开发 java se课程介绍 java面向对象编程(基础) java...

    SpringMVC学习笔记.zip

    笔记都是markdown格式的,请自行下载阅读器进行查看个人推荐Typora,当然notepad++也行

    leetcode下载-blogNote:个人博客学习笔记

    MVC学习笔记(四) -SpringMVC源码分析之参数如何自动转换为实体类 Spring MVC学习笔记(五) -SpringMVC源码分析之参数handleMapping初始化如何映射URL //todo 配置文件顺序加载还未分析 SpringBoot学习笔记(五)-...

    JavaWeb图书管理系统(MVC框架).zip

    技术栈概览:涵盖了Spring、SpringMVC、MyBatis等主流JavaWeb框架的使用,以及MySQL数据库的管理。 项目模块解析:按照实际项目结构,分模块介绍了后台管理、用户权限管理、数据报表生成等功能的具体实现。 代码与...

    AppFuse学习笔记(J2EE入门级框架)

    用户可以自由选择Struts、Spring/MVC,Webwork,Taperstry、JSF这几个web框架。采用TDD的开发方式,使用JUnit测试各层,甚至测试 jsp 输出的 w/o 错误。为了简化开发,预定义好了一套目录结构、基类、用来创建数据库...

    基于微信小程序的英语学习交流平台小程序的实现+ssm框架.rar

    使用Spring MVC框架实现前后端数据交互,采用RESTful风格的API设计,提高了系统的灵活性和易用性。 结合MyBatis框架进行数据持久化操作,实现了与数据库的交互,包括用户信息、学习资料、课程内容等数据的管理和操作...

Global site tag (gtag.js) - Google Analytics