1.SpingMVC的工作流程
1.发送请求到前端控制器(dispatcherservlet)
2.前端控制器(dispatcherservlet)接收到请求后,根据URL调用HandlerMapping获得该handler配置的所有相关的对象,最后以HandlerExecutionChain对象的形式返回
3.dispatchersevlet根据获得的handler,选择一个合适的handlerAdapter
4.提取request中的额数据模型,填充handler入参,开始执行handler(也就是cotroller)
5.handler执行完成后,向dispatcherservlet返回一个modelandview对象
6.dispatcherservlet接收到modelandview对象,将modelandview对象传给viewresolve
7.viewresolver解析后返回具体的view
8.dispatcherservlet将渲染视图,返回给客户端
2.SpringMVC的常用注解
- @Controller,使用它标记的类就是一个SpringMVC Controller 对象
- @RequestMapping,处理请求映射地址
- @PathVariable,用于对应restful风格url中的参数
- @RequestParam,将请求的参数绑定到方法中的参数上
- @ResponseBody,将返回类型直接输入到http response body中
- @RequestBody,方法参数直接被绑定到http request body中
3.如何解决POST请求中文乱码问题,GET又如处理?
1.解决post请求乱码方法 在web.xml配置一个过滤器,设置成utf-8
<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>
2.get请求解决方法 修改tomcat配置文件添加编码与工程编码一样
<ConnectorURIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
4.如果在拦截请求中,我想拦截get方式提交的方法怎么配置?
可以在@RequestMapping注解里面加上method=RequestMethod.GET
5.如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象?
直接在方法中声明这个对象,SpringMvc就自动会把属性赋值到这个对象里面。
6.如何在spring mvc实现RESTful 服务?
1.导入jackson2包
2.开启注解驱动mvc:annotation-driven/
7.SpringMVC怎么样设定重定向和转发的?
(1)在返回值前面加"forward:“就可以让结果转发,譬如"forward:user?name=method4”
(2)在返回值前面加"redirect:“就可以让返回值重定向,譬如"redirect:http://www.atguigu.com”
8.SpringMvc怎么和AJAX相互调用的?
通过Jackson框架就可以把Java里面的对象直接转化成Js可以识别的Json对象。具体步骤如下 :
(1)加入Jackson.jar
(2)在配置文件中配置json的映射
(3)在接受Ajax方法里面可以直接返回Object,List等,但方法前面要加上@ResponseBody注解。
9.@RequestMapping注解用在类上面有什么作用?
它是一个用来处理请求地址映射的注解,可用于类或方法上。
用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
10.如果想在拦截的方法里面得到从前台传入的参数,怎么得到?
直接在形参里面声明这个参数就可以,但必须名字和传过来的参数一样。
11.如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象?
直接在方法中声明这个对象,SpringMvc就自动会把属性赋值到这个对象里面。
12.SpringMvc中函数的返回值类型有哪些?
返回值可以有很多类型,有String, ModelAndView,map等,但一般用String比较好。