spring mvc常见面试题

2019-11-05  本文已影响0人  原点_da4e

什么是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 发布!

上一篇下一篇

猜你喜欢

热点阅读