zoukankan      html  css  js  c++  java
  • 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.测试

  • 相关阅读:
    epoll源码实现分析[整理]
    linux几种时间函数总结
    linux几种定时函数的使用
    linux下redis数据库的简单使用
    网络编程之非阻塞connect编写
    网络编程之select
    数码相框(LCD、I2C)
    centos tftp和samba的安装与配置
    libevent库简单使用
    c语言随机数
  • 原文地址:https://www.cnblogs.com/wanghuaying/p/9724972.html
Copyright © 2011-2022 走看看