SpringMVC知识点总结

本文详细介绍了SpringMVC的核心概念、工作流程和优势。从SpringMVC的处理器是单例模式及其注解使用,到配置注解处理器和适配器,再到解决GET和POST请求乱码问题的方法。此外,还探讨了重定向和转发的设置,常用的注解,以及如何与AJAX交互。同时,文章阐述了拦截器和过滤器的区别,并分析了自定义拦截器的实现。最后,简述了Servlet的生命周期和SpringMVC中的异常处理策略。
摘要由CSDN通过智能技术生成

1、什么是 SpringMvc? Spring MVC 的优点?

SpringMvc是spring的一个模块,基于MVC的一个框架,无需中间整合层来整合。
MVC框架就是一个分离了控制器,模型对象、分派器以及处理程序的各个角色,这种分离让它们更容易进行定制。功能类似于Servlet,springmvc的核心控制器dispatcherServlet是继承自framworkerSevlet
来看看继承图:
在这里插入图片描述

优点:

  1. 它是基于组件技术的。全部的应用对象,无论控制器和视图,还是业务对象 之类的都是java组件。并且和Spring提供的其他基础结构组件紧密集成.
  2. 不依赖于Servlet API(目标虽是如此,但是在实现的时候确实是依赖于 Servlet 的)
  3. 可以任意使用各种视图技术,而不仅仅局限于JSP
  4. 支持各种请求资源的映射策略
  5. 它应是易于扩展的

2、SpringMVC工作原理?

工作流程图:
在这里插入图片描述

执行时序图:
在这里插入图片描述
⑴ 用户发送请求至前端控制器DispatcherServlet

⑵ DispatcherServlet收到请求调用HandlerMapping处理器映射器

⑶ 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

⑷ DispatcherServlet通过HandlerAdapter处理器适配器调用处理器

⑸ 执行处理器(Controller,也叫后端控制器)。

⑹ Controller执行完成返回ModelAndView

⑺ HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet

⑻ DispatcherServlet将ModelAndView传给ViewReslover视图解析器

⑼ ViewReslover解析后返回具体View

⑽ DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。

⑾ DispatcherServlet响应用户。

3、SpringMvc的处理器是不是单例模式?SpingMvc中的处理器的注解?

是单例模式,所以在多线程访问的时候有线程安全问题,不要用同步,会影响性能的,解决方案是在处理器里面不能写字段。

—般用@Conn troller注解,表示是表现层,不能用用别的注解代替。

4 如何开启注解处理器和适配器?

我们在项目中一般会在 springmvc.xml 中通过开启 mvc:annotation-driven来实现注解处
理器和适配器的开启。

5、如何解决get 和post 乱码问题?

解决 post 请求乱码:我们可以在 web.xml 里边配置一个 CharacterEncodingFilter 过滤器。 设置为 utf-8.
解决 get 请求的乱码:有两种方法。对于 get 请求中文参数出现乱码解决方法有两个:

  1. 修改 tomcat 配置文件添加编码与工程编码一致。
  2. 另外一种方法对参数进行重新编码 String userName = New
    String(Request.getParameter(“userName”).getBytes(“ISO8859-1”), “utf-8”);

6、SpringMVC怎么样设定重定向和转发的?

(1)转发:在返回值前面加"forward:",譬如"forward:user.do?name=method4"
(2)重定向:在返回值前面加"redirect:",譬如"redirect:http://www.baidu.com"

7、 SpringMVC常用的注解有哪些?

SpringMVC常用的注解有

@RequestMapping:用于处理请求 url 映射的注解,可用于类或方法上。用于类上,则表示类中的所有响应请求的方法都是以该地址作为父路径。
get方式提交的方法,可以在 @RequestMappi ng 注解里面加上 method=Re

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值