您现在的位置是:首页 > 电脑 > 

SpringMVC相关的面试题

2025-07-20 04:46:44
SpringMVC相关的面试题 1.什么是springMVC   springmvc是spirng框架的一个模块,是一个基于MVC框架的web框架 2.springmvc的流程   a.客户端发送请求   b.前端控制器Dis

SpringMVC相关的面试题

1.什么是springMVC

  springmvc是spirng框架的一个模块,是一个基于MVC框架的web框架

2.springmvc的流程

  a.客户端发送请求

  b.前端控制器DispatcherServlet 接收请求,并调用处理映射器HandlerMapping(可以根据xml配置、注解进行查)

  c.处理映射器到具体的处理器进行处理,生成处理器对象Handler以及处理HandlerInterceptor(如果有则生成)返回到前端控制器

  d.DispatcherServlet 调用处理适配器HandlerAdapter

  e.处理适配器通过调用具体的处理器,处理器执行后生成ModelAndView,返回给处理适配器ModelAndView对象

  f.处理适配器向DispatcherServlet 返回ModelAndView (ModelAndView是springmvc框架的一个底层对象,包括 Model和view)

  g.DispatcherServlet 将ModelAndView 传递给视图解析器 ViewReslover

  h.视图解析器解析后返回具体的view(根据逻辑视图名解析成真正的视图(jsp)

  i.DispatcherServlet 根据View进行渲染视图(视图渲染将模型数据(在ModelAndView对象中)填充到request域)。 

  j.前端控制器向用户响应结果

.如何解决POST请求中文乱码问题,GET的又如何处理呢?

1、针对Post方式提交的请求如果出现乱码

可以每次在request解析数据时设置编码格式:request.setCharacterEncoding(utf-8);

也可以使用编码过滤器来解决,最常用的方法是使用Spring提供的编码过滤器:

在Web.xml中增加如下配置(要注意的是它的位置一定要是第一个执行的过滤器):

<filter>
<filter-name>charsetFilter</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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>

该过滤器要做的其实就是强制为所有请求和响应设置编码格式:

request.setCharacterEncoding(utf-8);
respe.setCharacterEncoding(utf-8);

2、针对Get方式的乱码问题,

由于参数是通过URL传递的,所以上面通过request设置的编码格式是不起作用的,

此时可以在每次发生请求之前对URL进行编码:例如:Location.href=/encodeURI(http://localhost/test/s?name=中文&=女);

当然也有更简便的方法,那就是在服务器端配置URL编码格式

修改tomcat的配置文件server.xml:
             <ConnectorURIEncoding=UTF-8 
                 port=8080   maxHttpHeaderSize=8192
               maxThreads=150 minSpareThreads=25 maxSpareThreads=75
               connectionTimeout=20000 disableUploadTimeout=true />

只需增加 URIEncoding=UTF-8  这一句,然后重启tomcat即可。

 4.SpringMVC与Struts2的主要区别?

详细讲解   1.springmvc的入口是一个servlet即前端控制器,而struts2入口是一个filter过滤器 2.springmvc是基于方法开发,传递参数是通过方法形参,可以设计为单例或多例(建议单例),    struts2是基于类开发,传递参数是通过类的属性,只能设计为多例。 
.Struts采用值栈存储请求和响应的数据,通过OGL存取数据
  springmvc通过参数解析器是将request对象内容进行解析成方法形参,将响应数据和页面封装成ModelAndView对象, 最后又将模型数据通过request对象传输到页面。 Jsp视图解析器默认使用jstl。 4.性能上Struts1>SpringMvc>Struts2 开发速度上SpringMvc和Struts2差不多,比Struts1要高   5.SpringMvc的控制器是不是单例模式,如果是,有什么问题,怎么解决

是单例模式,所以在多线程访问的时候有线程安全问题,不要用同步,会影响性能的,解决方案是在控制器里面不能写字段

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

在返回值前面加forward:就可以让结果转发,譬如forward:user.do?name=method4

在返回值前面加redirect:就可以让返回值重定向,譬如redirect:

7.SpingMvc中的控制器的注解一般用那个,有没有别的注解可以替代

一般用@Conntroller注解,表示是表现层,不能用用别的注解代替.

8.springMVC常用注解标签详情 springmvc常用注解标签详解 SpringMvc面试题  

转载于:.html

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/diannao/648964.html

相关标签:无
上传时间: 2023-07-26 17:24:44
留言与评论(共有 9 条评论)
本站网友 永安论坛
19分钟前 发表
有什么问题
本站网友 广东省天然气管网
2分钟前 发表
 7.SpingMvc中的控制器的注解一般用那个
本站网友 德法
26分钟前 发表
比Struts1要高   5.SpringMvc的控制器是不是单例模式
本站网友 rails
19分钟前 发表
就可以让返回值重定向
本站网友 sis文件
29分钟前 发表
怎么解决 是单例模式
本站网友 水性润滑剂
19分钟前 发表
所以在多线程访问的时候有线程安全问题
本站网友 肝病药
20分钟前 发表
就可以让返回值重定向
本站网友 测试死链接
5分钟前 发表
会影响性能的