SpringMVC入门级理解

SpringMVC

在这里插入图片描述
在 Spring 的基本架构中,红色圈起来的 Spring Web MVC ,它是属于Spring基本架构里面的一个组成部分,属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面,所以我们在后期和 Spring 进行整合的时候,几乎不需要别的什么配置。

SpringMVC的核心架构:
在这里插入图片描述

具体流程:

(1)首先浏览器发送请求——>DispatcherServlet,前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流程控制;

(2)DispatcherServlet——>HandlerMapping,处理器映射器将会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器对象、多个HandlerInterceptor拦截器)对象;

(3)DispatcherServlet——>HandlerAdapter,处理器适配器将会把处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易支持很多类型的处理器;

(4)HandlerAdapter——>调用处理器相应功能处理方法,并返回一个ModelAndView对象(包含模型数据、逻辑视图名);

(5)ModelAndView对象(Model部分是业务对象返回的模型数据,View部分为逻辑视图名)——> ViewResolver, 视图解析器将把逻辑视图名解析为具体的View;

(6)View——>渲染,View会根据传进来的Model模型数据进行渲染,此处的Model实际是一个Map数据结构;

(7)返回控制权给DispatcherServlet,由DispatcherServlet返回响应给用户,到此一个流程结束。

springMVC入门

  1. 创建项目到xxx,添加一个jar包
    spring-webmvc-4.1.0.RELEASE.jar

  2. web.xml
    在这里插入图片描述
    只有在满足地址后缀 .do,才会进入SpringMVC框架

  3. 添加,配置SpringMVC的主配置文件 springmvc-servlet.xml
    在这里插入图片描述

  4. 创建controller包,创建一个普通的类ClientController,添加对应注解(与上图base-package=“controller”)对应
    在这里插入图片描述
    与视图解析器,拼接前置和后置地址为/success.jsp或/fail.jsp
    5… 修改login.jsp 的登录跳转地址
    在这里插入图片描述
    地址后加上匹配规则 .do,进入SpringMVC框架
    否则会报错。
    在这里插入图片描述

实例工作流程:
1. 加载web.xml,读取配置,启动SpringMVC
2. 发送URL请求,匹配规则*.do,实例化SpringMVC的Servlet对象
3. 扫描注解路径,寻找标记注解@Controller层
4. 根据URI请求的地址,匹配方法上的注解@RequestMapping的值
5. 执行方法
6. 解析返回值,匹配默认的视图解析器,拼接成一个跳转的URI(默认转发)

ViewResolver

视图解析器负责将处理结果生成View视图. 这里介绍两种常用的视图解析器:

InternalResourceViewResolver(转发)

该视图解析器用于完成对当前Web应用内部资源的封装和跳转. 而对于内部资源的查找规则是, 将ModelAndView中指定的视图名称与视图解析器配置的前缀与后缀想结合, 拼接成一个Web应用内部资源路径. 内部资源路径 = 前缀 + 视图名称 + 后缀.

InternalResourceViewResolver解析器会把处理器方法返回的模型属性都存放到对应的request中, 然后将请求转发到目标URL.
(1)视图解析器配置如下

在这里插入图片描述
BeanNameViewResolver (重定向)

InternalResourceViewResolver视图解析器存在一个问题, 就是只可以完成将内部资源封装后的跳转, 无法跳转向外部资源, 如外部网页.

BeanNameViewResolver 视图解析器将资源(内部资源和外部资源)封装为bean实例, 然后在 ModelAndView 中通过设置bean实例的id值来指定资源. 在配置文件中可以同时配置多个资源bean.
在这里插入图片描述

中文乱码解决

Get请求乱码

Tomcat8已经解决了Get请求乱码, 如果是Tomcat8以下的版本, 可以使用以下两种方法:

更改Tomcat的配置文件server.xml
在这里插入图片描述

对参数进行重新编码

String userName =new
String(request.getParamter(“userName”).getBytes(“ISO-8859-1”),“UTF-8”); //ISO-8859-1是Tomcat8以下版本的默认编码

Post请求乱码
在web.xml中加入:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值