SpringMvc面试专题知识点及其详解

一、什么是 SpringMvc?

SpringMvc 是 spring 的一个模块,基于 MVC 的一个框架,无需中间整合层来整合。

二、Spring MVC 的优点

1)它是基于组件技术的.全部的应用对象,无论控制器和视图,还是业务对象之类的都是 java组件.并且和 Spring 提供的其他基础结构紧密集成

2)不依赖于 Servlet API(目标虽是如此,但是在实现的时候确实是依赖于 Servlet 的)

3)可以任意使用各种视图技术,而不仅仅局限于 JSP

4)支持各种请求资源的映射策略

5)它应是易于扩展的

三、SpringMVC 的工作原理和流程

原理如下图所示:
在这里插入图片描述
流程说明:

  1. 客户端( 浏览器) 发送请求, 直接请求到DispatcherServlet
  2. DispatcherServlet 根据请求信息调用HandlerMapping, 解析请求对应的Handler
  3. 解析到对应的Handler ( 也就是我们平常说的Controller 控制器) 后, 开始由HandlerAdapter 适配器处理
  4. HandlerAdapter 会根据Handler 来调用真正的处理器处理请求, 并处理相应的业务逻辑
  5. 处理器处理完业务后, 会返回一个ModelAndView对象, Model 是返回的数据对象, View 是个逻辑上的视图
  6. ViewResolver 会根据逻辑View 查找实际的View视图
  7. DispaterServlet 把返回的Model 传给View ( 视图渲染)
  8. 最后把View视图返回给客户端(浏览器)

四、SpringMvc中如何开启注解处理器和适配器?

我们在项目中一般会在 springmvc.xml 中通过开启 < mvc:annotation-driven> 来实现注解处理器和适配器的开启

五、SpringMvc中如何解决 get 和 post 乱码问题?

      解决 post 请求乱码:我们可以在 web.xml 里边配置一个 CharacterEncodingFilter 过滤器, 设置为 UTF-8
      解决 get 请求的乱码:有两种方法。对于 get 请求中文参数出现乱码解决方法有两个:

  1. 修改 tomcat 配置文件添加编码与工程编码一致
  2. 另 外一 种方法 对参数进行重新编码 String userName = New
    String(Request.getParameter(“userName”).getBytes(“ISO8859-1”), “utf-8”);

六、SpringMvc和Struts2有什么区别?

  1. springMVC单例非线程安全,struts2线程安全(对每个请求都产生一个实例)
  2. springMvc 的入口是一个 servlet 即前端控制器,而 struts2 入口是一个 filter 过虑器
  3. springMVC是基于方法的设计,而sturts是基于类
  4. springMVC是用方法来接受参数;struts2 是通过类的属性传递参数

七、SpringMvc 里面拦截器是怎么写的?

      有两种写法,一种是实现接口,另外一种是继承适配器类,然后在 SpringMvc 的配置文件中配置拦截器即可;

< !-- 配置 SpringMvc 的拦截器 -->:

<mvc:interceptors>
	<!-- 配置一个拦截器的 Bean 就可以了 默认是对所有请求都拦截 -->
	<bean id="myInterceptor" class="com.et.action.MyHandlerInterceptor"></bean>
	<!-- 只针对部分请求拦截 -->
		<mvc:interceptor>
			<mvc:mapping path="/modelMap.do" />
			<bean class="com.et.action.MyHandlerInterceptorAdapter" />
		</mvc:interceptor>
</mvc:interceptors>
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Monika、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值