springmvc2

1. 简介

  • springMVC中json的使用
  • 文件上传
  • springMVC中的拦截器
  • 模板引擎freemarker   themeleaf 
  • ssm整合

2.    jackson

1.@RequestBody/ @ResponseBody处理Json数据

作用:

@RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容转换为json、xml等格式的数据并绑定到controller方法的参数上。

本例子应用:

@RequestBody注解实现接收http请求的json数据,将json数据转换为java对象。

@ResponseBody注解把controller方法的返回值(java对象)转化为json数据。

2.1.请求Json响应Json

1.添加处理json数据配置

1.编写代码【请求json、返回json】

2.编写页面ajax

3.启动测试

2.2请求pojo响应json

1.添加处理json数据配置【同上】

2.编写Controller代码

2.编写页面代码

3.测试代码

注意:

       配置静态资源不拦截:

       在springmvc的配置文件中配置:

       <mvc:default-servlet-handler/>

    

3.    文件上传

2.1导入jar文件

              common.fileupload

              common.io

2.2配置文件上传解析器

<!-- 文件上传解析器 -->

 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

              <!-- 单位byte -->

              <property name="maxUploadSize" value="1024000"></property>

 </bean>

2.3代码编写

@RequestMapping("/upload")

    public void uploadPic(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request){

       

        String originalFilename = file.getOriginalFilename();

        //suffix=originalFilename.substring(originalFilename.lastIndexOf("."));

        String path = request.getSession().getServletContext().getRealPath("/upload"); 

        File dir = new File(path);

        dir.mkdir();

        try {

            file.transferTo(new File(dir,originalFilename));

            System.out.println("success");

        } catch (IllegalStateException | IOException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

    }

4.    拦截器

定义

l  Spring Web MVC 的处理器拦截器类似于Servlet 开发中的过滤器Filter,用于对处理器进行预处理和后处理

拦截器代码编写:实现HandlerInterceptor接口:

preHandle:执行前调用此方法

postHandle:controller执行后但未返回视图前调用此方法

afterCompletion:controller执行后且视图返回后调用此方法

拦截器配置

拦截所有请求。

<!--拦截器 -->

<mvc:interceptors>

<!--多个拦截器,顺序执行 -->

<mvc:interceptor>

          <mvc:mapping path="/**"/>

          <mvc:exclude-mapping path="/login*"/><!—不拦截的路径-->

          <bean class="com.qf.springmvc.filter.HandlerInterceptor1"></bean>

</mvc:interceptor>

<mvc:interceptor>

          <mvc:mapping path="/**"/>

          <bean class="com.qf.springmvc.filter.HandlerInterceptor2"></bean>

</mvc:interceptor>

</mvc:interceptors>

案例:登录控制

5.    freeMarker(见freemarker文档)

6.     ssm整合

       为了更好的学习 springmvc和mybatis,需要将springmvc和mybatis进行整合。

整合目标:

控制层采用springmvc

持久层使用mybatis实现。

事务:spring

1.需求

实现Book查询

2.jar包

包括:

spring(包括springmvc)

mybatis

mybatis-spring整合包

数据库驱动、第三方连接池。

3.Dao

目标:

1、spring管理SqlSessionFactory、mapper

详细参考mybatis与spring整合案例。

3.1.db.properties

3.2.log4j.properties

3.3.sqlMapConfig.xml

在classpath下创建mybatis/sqlMapConfig.xml

3.4.applicationContext-dao.xml

配置数据源、事务管理,配置SqlSessionFactory、mapper(MapperScannerConfigurer)扫描器。

3.5. Mapper.xml

4.Service

目标:

1、Service由spring管理

1、spring对Service进行事务控制。

4.2.applicationContext-transaction.xml

配置事务管理器。

4.3.Service

5.Action

5.1.springmvc.xml

5.2.web.xml

加载spring容器,配置springmvc前置控制器

5.3.Controller

6.测试

原文地址:https://www.cnblogs.com/wanghuaying/p/9724972.html