面试题_SpringMVC

SpringMVC的流程?

在这里插入图片描述
(1)用户发送请求至DispatcherServlet(前端控制器);
(2)DispatcherServlet(前端控制器)收到请求后,调用HandlerMapping(处理器映射器),请求获取Handler;
(3)HandlerMapping(处理器映射器)根据请求url找到具体的Handler(处理器),生成处理器对象及处理器拦截器,一并返回给DispatcherServlet(前端控制器);
(4)DispatcherServlet (前端控制器)调用 HandlerAdapter(处理器适配器),请求执行Handler;
(5)HandlerAdapter (处理器适配器)调用具体controller(处理器)处理业务;
(6)controller(处理器)返回给 HandlerAdapter(处理器适配器)一个ModelAndView对象;
(7)HandlerAdapter(处理器适配器)将ModelAndView对象,返回给DispatcherServlet(前端控制器);
(8)DispatcherServlet(前端控制器)将ModelAndView对象传给ViewResolver(视图解析器)进行解析;
(9)ViewResolver(视图解析器)解析后返回View;
(10)DispatcherServlet(前端控制器)对View进行视图渲染。
(11)DispatcherServlet(前端控制器)通过httpresponse返回view给浏览器。

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

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

SpringMVC常用的注解有哪些?

@RequestMapping:用于处理请求 url 映射的注解,可用于类或方法上。
@RequestBody:将json转换为java对象。
@ResponseBody:将对象转化为json对象响应给客户端。

如何解决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>

(2)get请求中文参数出现乱码解决方法有两个:
①修改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")

SpringMvc的控制器是不是单例模式?如果是,有什么问题?怎么解决?

是单例模式,在多线程访问的时候有线程安全问题,
解决方案是使用 ThreadLocal 写可变状态量。

怎样在方法里面得到Request,或者Session?

直接在方法的形参中声明request,SpringMvc就自动把request对象传入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值