zoukankan      html  css  js  c++  java
  • SpringMvc总结

    Springmvc总结

    1.Springmvc是什么?

    是一个基于spring的mvc的框架。可以和spring无缝衔接。

    2.为什么使用Springmvc而抛弃原来的mvc结构?

    a) 因为以前的mvc结构,写起来比较复杂,一个servlet在web.xml文件中有8行的配置,如果处理逻辑过多,就会导致配置文件过度庞大,不便于管理。并且在servlet中只能处理一个逻辑。如果针对同一个页面有多个操作,则需要编写多个servlet。在servlet中获取到的参数类型只能是string,需要手动来转变。

    b) springmvc只需要配置一个servlet(DispatcherServlet)就可以管理所有的servlet,并且springmvc使用Controller层代替Web层中的servlet,在Controller中可以处理多个逻辑。Springmvc获取的参数类型支持自动转换,对于基本数据类型还支持自动封装。

    3.springmvc原理(如何运行、加载机制)

    3.1Springmvc各部分组件的作用:

    1.DispatcherServlet:前置控制器,负责接收并处理所有的web请求,根据handlerMapping找到具体的Controller,由controller完成具体的处理逻辑。

    2.HandlerMapping:负责处理web请求和具体的Controller之间的映射关系匹配。

    3.Controller:DispatherServlet的次级控制器,web请求的具体处理者。DispatherServlet获得handlerMapping的返回结果后,调用controller的处理方法处理当前的业务请求,处理完成后返回ModelAndView对象。

    4.ViewResolver:用来处理视图名与具体的view实例之间的映射对应关系。根据ModelAndView中的视图名查找相应的View实现类,然后将查找的结果返回给DispatcherServlet,DispatcherServlet最终会将ModelAndView中的模型数据交给返回的View处理最终的视图渲染工作。

    5.View:为支持多种视图技术

    3.2springMVC 的五大组件怎么协同工作

     

      

        》DispatcherServlet收到请求之后,依据 HandlerMapping的配置调用相应的处理器来处理。

    DispatcherServlet调用HandlerMapping指定的Controller(处理器)来处理。

        》Controller(处理器)将处理结果封装成ModelAndView, 然后返回DispatcherServlet。

        》DispatcherServlet依据ViewResovler的解析。

    调用相应的视图对象(比如某个jsp)来生成相应的页面。

    4.form 中Enctype=multipart/form-data 的作用

    ENCTYPE="multipart/form-data"用于表单里有图片上传。 
    <form name="userInfo" method="post" action="first_submit.jsp"    ENCTYPE="multipart/form-data"> 
    表单标签中设置enctype="multipart/form-data"来确保匿名上载文件的正确编码。 
    如下: 
    <tr> 
          <td height="30" align="right">上传企业营业执照图片:</td> 
          <td><INPUT TYPE="FILE" NAME="uploadfile" SIZE="34"    onChange="checkimage()"></td> 
        </tr> 
    就得加ENCTYPE="multipart/form-data"。 
    表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据,进行下面的操作. 
    enctype="multipart/form-data"是上传二进制数据; form里面的input的值以2进制的方式传过去。 form里面的input的值以2进制的方式传过去,所以request就得不到值了。 也就是说加了这段代码,用request就会传递不成功,取表单值加入数据库时,用到下面的: 
    SmartUpload su = new SmartUpload();//新建一个SmartUpload对象 
    su.getRequest().getParameterValues();取数组值 
    su.getRequest().getParameter( );取单个参数单个值 

    5.Mybatis运行原理

  • 相关阅读:
    hlt 与 llt 相关
    LINUX重启MYSQL的命令
    python 判断元素是否在一个列表中
    xshell && xftp 下载
    UltraISO 下载
    mysql 全连接和 oracle 全连接查询、区别
    导致SQL执行慢的原因
    什么是索引?
    在浏览器地址栏输入URL,按下回车后究竟发生了什么?
    URL的作用是什么?它由几部分组成?
  • 原文地址:https://www.cnblogs.com/dxp5201/p/8921916.html
Copyright © 2011-2022 走看看