spring mvc常见面试题
什么是spring mvc , 谈谈对spring mvc的理解
spring mvc 是基于java实现的mvc设计模式的web轻量级框架,将复杂的web应用分解为Model , View ,Controller 的职责分解,方便开发人员开发,维护
SpringMVC的流程
1.用户发送请求到DispatcherServlet
2.DispatcherServlet 收到请求后调用HandleMapping 处理器 ,请求获取Handle
3.DispatcherServlet根据url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet
4.DispatcherServlet 调用 HandlerAdapter处理器适配器;
5.HandlerAdapter 经过适配调用 具体处理器(Handler,也叫后端控制器);
6.Handler执行完成返回ModelAndView;
7.HandlerAdapter将Handler执行结果ModelAndView返回给DispatcherServlet;
8.DispatcherServlet将ModelAndView传给ViewResolver视图解析器进行解析
9.ViewResolver解析后返回具体View;
10.DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)
11.DispatcherServlet响应用户。
SpringMVC怎么样设定重定向和转发的?
1.转发:在返回值前面加"forward:",譬如"forward:user.do?name=method4"
转发 地址栏不发生改变 ,请求一次
2.重定向:在返回值前面加"redirect:",譬如"redirect:http://www.baidu.com"
重定向 地址栏发生改变,请求两次
SpringMvc怎么和AJAX相互调用的
1.加入Jackson。jar
2.在配置文件中配置json的映射
3.在Ajax方法里可以直接返回ObjectList , 但前面要加上@ResponseBody注解
8、如何解决POST请求中文乱码问题,GET的又如何处理呢?
1解决post请求乱码问题:
在web.xml中配置一个CharacterEncodingFilter过滤器,设置成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>
2get请求中文参数出现乱码解决方法有两个:
①修改tomcat配置文件添加编码与工程编码一致,如下:
<ConnectorURIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
②另外一种方法对参数进行重新编码:
String userName = new String(request.getParamter("userName").getBytes("ISO8859-1"),"utf-8")
ISO8859-1是tomcat默认编码,需要将tomcat编码后的内容按utf-8编码。
spring mvc 的注解有那些
@RequestMapping:用于处理请求 url 映射的注解,可用于类或方法上。用于类上,则表示类中的所有响应请求的方法都是以该地址作为父路径。
@RequestBody:注解实现接收http请求的json数据,将json转换为java对象。
@ResponseBody:注解实现将conreoller方法返回对象转化为json对象响应给客户。
想要拦截get方法请求
可以在@RequestMapping注解里面加上method=RequestMethod.GET。
本文由博客一文多发平台 OpenWrite 发布!