Spring第六天

Day06

一、 SpringMVC介绍:主要负责前端控制的框架,主要负责页面和Servlet间的交互,SpringMVCSpring家族的一大产品,SpringSpringMVC之间可以做到无缝衔接

回顾servlet:缺点

  1. 一个Servlet8行配置文件
  2. 一个Servlet只能处理一个业务逻辑

addUserServletupdateUserServlet

一张表有可能有4+nServlet 所以会有32+n行配置文件

  1. 获取属性只能得到字符串类型 需要自己转换类型
  2. 获取参数的方式只能是 request.getParamters

SpringMVC:优点

  1. 不管工程中有多少个servlet 只需要配置一个servlet分发器即可
  2. Springmvc中使用controller替代servlet 一个controller中可以有n个业务逻辑
  3. 获取参数的类型支持自动转换,而且支持对象的自动封装
  4. Springmvc有多种获取参数的方式

 

 

二、 SpringMVC的入门案例

  1. 导入jar包:把课前资料里面的jar包全部导入
  2. xml中配置DispatcherServlet 配置方式类似之前的Servlet的配置
    1. 按下 ctrl+shift+T 打开Open type 输入DispatcherServlet点进去找到类的完整名称

 

  1. 复制找到的类名

 

 

配置springmvc核心配置文件

 

代码:创建HelloController实现Controller接口

 

SpringMVC的工作过程:当用户在浏览器中输入地址访问的时候 首先会由DispatcherServlet拦截,然后通过核心配置文件 找到响应Controller 执行Controller里面的方法

 

三、 简化Controller

  1. 在配置文件中 开启包扫描,引入 mvc的约束
  2. 配置文件中添加包扫描和mvc注解开关

 

修改Controller代码:

 

SpringMVC的执行流程:

 

 

补充说明:当web工程复制的时候 修改项目名称 需要改两个地方

 

四、 配置资源解析器

 

使用资源解析器后 return页面的时候只需要写文件名

 

五、 获取页面传递过来的参数

 

 

 

六、 快速获取参数的方式:

 

七、 把接收到的参数 直接封装到对象中

此种方式必须要求属性有set方法必须要有无参的构造方法

 

引用类型的属性如果注入数据:

需要在表单中标示出层次结构

 

八、 中文乱码问题

 

解决中文乱码需要修改两个地方:

  1. jsp页面

 

  1. web.xml中添加过滤器

 

九、 日期问题:

由于浏览器中的默认日期格式为2018/2/32,而代码中的日期格式为2017-2-32 需要通过下面的代码把浏览器传递过来的格式修改成 - - 的格式

 

 

如果不修改会报以下错:

 

十、 参数的同名提交

如果参数名一样,接收参数时用String类型接收会把多个参数通过“,”合并成一个String,如果想接收到多个值,可以接收参数时 变量声明为数组类型

 

 

十一、提交的参数名 和接收的变量类型名称不一致

通过@RequestParam注解解决此问题

 

DefaultValue 如果没有传递过来参数则为默认值

 

Required:是必须传递此参数 如果不传 则报错

 

 

 

十二、文件上传

  1. 表单的提交类型

 

  1. springmvc配置文件中配置文件上传解析器

 

  1. 代码接收

 

 

十三、重定向和转发

重定向:两次请求两次响应,不能传参,地址改变

转发 :一次请求一次响应,可以传参,地址不变

默认为转发,如果需要重定向 需要在返回的地址中添加redirect

 

posted @ 2018-04-23 21:11  小哥爱美食  阅读(96)  评论(0编辑  收藏  举报