SpringMVC
1.SpringMVC执行流程
https://www.jianshu.com/p/8a20c547e245
(1)用户将请求发送到前端控制器
(2)前端控制器请求处理器映射器查找Handler(处理器)
(3)处理器映射器向前端控制器返回Handler执行链
(4)前端控制器调用处理器适配器去执行Handler
(5)处理器执行Handler
(6)Handler执行完Hander返回ModelAndView给处理器适配器
(7)处理器适配器将ModelAndView返回给前端控制器
(8)前端控制器将ModelAndView传给视图解析器
(9)视图解析器解析后返回具体View给前端控制器
(10)前端控制器对view进行渲染视图(即将模型数据填充到视图中)
(11)前端控制器向用户响应结果
2. MVC含义
Model(模型):表示应用程序核心,比如数据库记录列表
View(视图):显示数据
Cotroller(处理器):处理输入
3. SpringMVC常用注解
(1)处理器使用 @Controller
(2)@RequestMapping 请求URL
(3)@RequestBody 实现接收http请求的json数据,将json数据转化java对象
(4)@ResposeBody 实现将对象转化为json响应给客户
4. 如何开启注解处理器和适配器
一般会在springmvc.xml通过<mvc:annotation-driven>
5. 简单介绍一下SpringMVC
SpringMVC是一个基于MVC架构的用来简化web应用程序开发的应用开发框架,是Spring的一个子模块,在Web模型中,SpringMVC是一个很流行的框架,通过把Model,View,Controller分离,把复杂的Web应用分成了几部分,简化开发,减少出错。
6. SpringMVC的优点
(1)基于组件开发
(2)与Spring整合较好
7. SpringMVC与Struts2的区别
(1)SpringMVC的入口是一个servlet即前端控制器,Struts2入口是一个fifter过滤器
(2)SpringMVC是基于方法开发的,可以设计为单例或多例,struts2是基于类开发只能设计为多例模式
8. SpringMVC如何设定重定向和请求转发
(1)请求转发:在返回值前加 “forword:” ,如 "forword:user.do?name=method4"
(2)重定向:在返回值前加"redirect","redirect:http//www.baidu.com"
9. SpringMVC的核心入口是DispathServlet
10.SpringMVC的控制器是单例模式的,会存在线程安全问题,解决办法是:在控制器里面不要写字段(类成员变量)。
11.SpringMVC用什么对象从后台向前台传递数据
通过ModelMap
12.怎样把ModelMap里面的数据放入Session
可以在类上面加上@SessionAttributes注解
13.解决post和get中文乱码问题
post:每次在Request解析数据时设置编码格式,request.setCharacterEncoding(“utf-8”)或者使用编码过滤器解决
get:修改tomcat服务器的server.xml文件