1.springMVC是什么?他和struts2有什么区别?

springMVC和struts2都属于表现层的框架,他是spring框架的一部分.
区别:
a)  springMVC的入口是servlet,即前端控制器,而struts2入口是一个filter过滤器
b)  springMVC是基于方法开发(一个url对应一个方法),请求参数传递到方法的形参,可以设计为单例或多例(建议单例).
      struts2是基于类开发,传递参数是通过类的属性,只能设计为多例.
c)   struts2采用值栈存储请求和响应的数据,通过OGNL存取数据,
      springMVC通过参数解析器将request请求内容解析,并给方法形参赋值,将数据和视图封装成ModelAndView对象,最后将ModelAndView中的模型数据通过request域传输到页面.jsp视图解析器默认使用jstl.

2.框架结构

3.配置

a)  组件扫描器:省去在spring容器配置每个controller类的繁琐.使用<context:component-scan>自动扫描标记@controller的控制器类,多个包之间采用半角逗号分隔
    <!-- 扫描controller注解,多个包中间使用半角逗号分隔 --><context:component-scan base-package="cn.itcast.springmvc.controller.first"/>

b)  注解处理器和适配器的配置:

springmvc使用<mvc:annotation-driven>自动加载RequestMappingHandlerMapping和RequestMappingHandlerAdapter,可用在springmvc.xml配置文件中使用<mvc:annotation-driven>替代注解处理器和适配器的配置。

c) 视图解析器

在springmvc.xml文件配置如下:

  <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass"value="org.springframework.web.servlet.view.JstlView" /><property name="prefix" value="/WEB-INF/jsp/" /><property name="suffix" value=".jsp" /></bean>

4.参数绑定

a) 绑定简单数据类型

使用Model和ModelMap的效果一样,如果直接使用Model,springmvc会实例化ModelMap。

如果使用Model则可以不使用ModelAndView对象,Model对象可以向页面传递数据,View对象则可以使用String返回值替代。不管是Model还是ModelAndView,其本质都是使用Request对象向jsp传递数据。

参数类型推荐使用包装数据类型,因为基础数据类型不可以为null.

使用@RequestParam常用于处理简单类型的绑定

value:参数名字

required:是否必须(默认是true)

defaultValue:默认值,表示如果请求中没有同名参数时的默认值

b) 绑定pojo

要求:pojo对象中的属性名和表单中的input的name属性一致

注意:提交的表单中不要有日期类型的数据,否则会报400错误,如果想提交日期类型的数据,需要用到自定义参数绑定.

c) 自定义参数绑定

因为日期数据有很多格式,springMVC没办法吧字符串转换成日期类型,所以需要自定义参数绑定.

前端控制器接收到请求后,找到注解形式的处理器适配器,对RequestMapping标记的方法进行适配,并对方法中的形参进行参数绑定。在springmvc这可以在处理器适配器上自定义Converter进行参数绑定。如果使用<mvc:annotation-driven/>可以在此标签上进行扩展

自定义converter

public class DateConverter implements Converter<String, Date> {@Overridepublic Date convert(String source) {SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");try {return simpleDateFormat.parse(source);} catch (ParseException e) {e.printStackTrace();}return null;}
}

配置converter

    <!-- 加载注解驱动 --><mvc:annotation-driven conversion-service="conversionService "/><!-- 转换器配置 --><bean id="conversionService"class="org.springframework.format.support.FormattingConversionServiceFactoryBean"><property name="converters"><set><bean class="cn.***.springmvc.convert.DateConverter"/></set></property></bean>

5.解决乱码问题

a)  解决post乱码

在web.xml中加入
    <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>

b)get请求中文参数出现乱码解决方式(二种)

第一种:修改tomcat配置文件添加编码与工程编码一致
        <Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
第二种:对参数进行重新编码:
        String userName new
        String(request.getParamter("userName").getBytes("ISO8859-1"),"utf-8")

springmvc个人小结相关推荐

  1. SpringMVC框架 学习DAY_03:@RequestMapping注解/拦截器与过滤器

    1. 关于@RequestMapping注解 在控制器中,在处理请求的方法之前添加@RequestMapping注解,可以配置请求路径与处理请求的方法的映射关系! 在@RequestMapping注解 ...

  2. SpringMVC——MVC思想、前端控制器、SpringMVC概述、编写第一个SpringMVC程序

    目录 一.什么是MVC 二.前端控制器(中心控制器) 1.什么是前端控制器 2.前端控制器原理 三.什么是SpringMVC 1.SpringMVC简介 2.SpringMVC和Struts2 四.S ...

  3. Spring MVC 教程详解 个人总结 复习必备 面试宝典 狂神笔记

    文章目录 一.MVC 模式 1.什么是 MVC 2.Servlet MVC 小结 二.Spring MVC 1.Spring MVC 概念 为什么学习 Spring MVC 中央控制器 Dispatc ...

  4. spring注解驱动开发-10 Servlet3.0

    Spring AOP实现 前言 servlet3.0简介 ServletContainerInitializer shared libraries(共享库) / runtimes pluggabili ...

  5. 【SpringMVC框架】小结+视图解析器配置前缀和后缀

    1.入门程序小结 通过入门程序理解springmvc前端控制器.处理器映射器.处理器适配器.视图解析器用法. 前端控制器配置: 第一种:*.action,访问以.action结尾 由Dispatche ...

  6. SpringMVC小结

    一放下就生疏,所以要温故,所以要笔记. Tip,多数情况下,SpringMVC建议单例执行,Struts2建议多例执行. 原因就在于Struts2使用属性驱动或模型驱动,而SpringMVC则使用方法 ...

  7. spring+springmvc+ibatis整合小结

    最近在整合Spring和ibatis时,不管applicationContext.xml放在哪儿,在web.xml中怎么配置,tomcat启动时始终报applicationContext.xml的错. ...

  8. SpringMVC中@RequestMapping 6个基本用法小结

    1)最基本的,方法级别上应用,例如: Java代码   @RequestMapping(value="/departments") public String simplePatt ...

  9. SpringMVC拦截器-知识小结

    拦截器中的方法说明如下

最新文章

  1. 九度OnlineJudge之1004:Median
  2. Vue指令篇_v-for_列表渲染
  3. c#期末考试知识点_c#期末考试复习题及答案
  4. GPS围栏两个多边形相交问题的奇葩解法
  5. MATLAB——SRTM DEM显示
  6. python图形编程环境环境_Python开发环境Wing IDE matplotlib 2D绘图库代码调试技巧小结...
  7. echarts地图示例
  8. windows上的左斜杠和linux上的右斜杠的记忆方式
  9. 安装pytorch1.10.0/cu111时报错:no matching distribution found for torchvision==0.11.0+cu111
  10. 离散化-利用计算机求解y=x,离散信号处理(双语)-中国大学mooc-题库零氪
  11. C语言实现系统日历查询系统
  12. 基于STM32F103的消防系统之火焰传感器
  13. ubuntu远程利用邮箱客户端发送邮件
  14. python下载博文中微博图床图片
  15. fastreport一些技巧
  16. 商城 商品模块 数据库 表设计
  17. 物联网的物流企业信息集成综合管理平台,主要有哪些特征?
  18. 外呼系统需要服务器么,外呼
  19. maven和springboot
  20. 迷你服务器开机无显示,迷你版云服务器未启动

热门文章

  1. apple 个人或公司账号(99$)升级企业账号(299$)
  2. binary-tree-maximum-path-sum——二叉树任意一条路径上的最大值
  3. Nginx常用命令介绍
  4. ACM题目————中位数
  5. 使用CocoaPods被卡住:Updating local specs repositories
  6. ListView的Item点击事件(消息传递)
  7. Linux内核加载全流程
  8. oracle 数据库文件丢失
  9. python基础—正则表达式即re模块
  10. mac更新之后vmware fusion下vmware tools报错