SpringMVC常见面试题总结【概念】

什么是Spring MVC?介绍你对SpringMVC的理解。

springmvc是一个基于java实现了mvc设计模式的轻量级web框架,经过把model,view,controller分离,将web层进行解耦,把复杂的web应用分红几部分,简化开发。前端

SpringMVC的流程?

1.用户发送请求被前端DispatcherServlet捕获, 2.DispatcherServlet捕获到请求后,调用HandlerMapping处理映射器,请求获取Handle 3.处理器映射器跟据请求url找到具体的处理器,生成处理器对象及处理器拦截器并返回给DispatcherServlet 4.DispatcherServlet调用HandlerAdapter处理器适配器 5.HandlerAdapter通过适配调用handler 6.Handler执行完成返回ModelAndView 7.HandlerApdater将Handler执行结果ModelAndView返回给DispatcherServlet 8.DispatcherServlet讲讲ModelAndView传给ViewResolver视图解析器进行解析 9.ViewResolver解析后返回具体View 10.DispatcherServlet对View进行视图渲染(即将模型数据充至视图中)而后DispatcherServlet响应用户java

SpringMVC的优势:

与spring框架继承,支持各类请求资源的映射策略,支持各类视图技术程序员

SpringMVC的主要组件?

前端控制器DispatcherServlet: 做用:接受请求,响应结果,至关于转发器 处理器映射器HandlerMapping 做用:跟据请求的·url来查找Handler 处理器适配器HandlerAdapter 处理器Handler(须要程序员开发) 视图解析器 ViewResolver(不须要程序员开发) 做用:进行视图的解析,根据视图逻辑名解析成真正的视图视图View(须要程序员开发jsp)web

SpringMVC怎样设置重定向和转发?

1.转发:在返回值前面加“forward” 2.重定向:在返回值前面加:“redirect”spring

SpringMVC怎么样和AJAX相互调用的?

经过jackson框架把java里面的对象直接转化为js能够识别的json对象,具体步骤: 加入jar包:jackson.jar 在配置文件中配置json的映射 在接受Ajax方法里面直接返回list等,但在方法前面加@ResponseBody注解json

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

1.解决post请求乱码方法 在web.xml配置一个过滤器,设置成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配置文件添加编码与工程编码同样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编码。restful

SpringMVC的异常处理?

能够将异常抛给Spring框架,有Spring处理,咱们只须要配置简单的异常处理器,在异常处理器中添加视图页面便可。

SpringMVC经常使用的注解有那些?

@RequestMapping:用于处理请求 url 映射的注解,可用于类或方法上。用于类上,则表示类中的全部响应请求的方法都是以该地址做为父路径。

@RequestBody:注解实现接收http请求的json数据,将json转换为java对象。

@ResponseBody:注解实现将conreoller方法返回对象转化为json对象响应给客户。

SpringMvc的控制器是否是单例模式,若是是,有什么问题,怎么解决

是单例模式,因此在多线程访问的时候存在线程安全的问题。

若是在拦截请求中,我想拦截get方式提交的方法怎么配置?

能够在@RequestMapping注解里面加上method=RequestMethod.GET

怎样在方法里面获得request,或者session?

直接在方法形参声明request,SpringMVC就自动就把request对象传入

如何在拦截的方法里面获得前台传入的参数?

在形参里面声明这个参数,名字和传过来的参数必须同样

若是前台有不少个参数传入,而且这些参数都是一个对象的,那么怎么样快速获得这个对象?

直接在方法中声明这个对象,SpringMvc就自动会把属性赋值到这个对象里面。

SpingMVC中函数的返回值是什么?

返回值能够有不少类型,有String, ModelAndView。ModelAndView类把视图和数据都合并的一块儿的,但通常用String比较好

SpringMVC用什么对象从后台向前台传递参数的?

用modelmap对象,能够在这个对象里面调用put方法,把对象加到里面,前台就能够经过el表达式拿到。

怎么样把ModelMap里面的数据放入Session里面?

能够在类加注解@SessionAttributes,里面包含的字符串要放入session里面的key

如何在spring mvc实现RESTful 服务

1.导入jackson2包

2,开启注解驱动mvc:annotation-driven/

SpringMvc中有个类把视图和数据都合并的一块儿的,叫什么?

ModelAndView

SpringMvc里面拦截器是怎么写的

有两种写法,一种是实现HandlerInterceptor接口,另一种是继承适配器类,,接着在接口方法当中,实现处理逻辑;而后在SpringMvc的配置文件中配置拦截器便可:

<!-- 拦截器的配置 -->
	<mvc:interceptors>
		<mvc:interceptor>
			<!-- ** 表示当前目录及其子目录路径 -->
			<mvc:mapping path="/**"/>
			<bean class="com.dpb.interceptor.FirstIntercepter"></bean>
		</mvc:interceptor>
	</mvc:interceptors>

介绍SpringMVC restful风格:

RESTful是一种架构的规范与约束、原则,符合这种规范的架构就是RESTful架构 在RESTful接口中,全部的方法都是返回JSON,没有返回页面的(ModelAndView),所以,全部的方法上都须要添加@ResponseBody注解。一个替代的简化方案,是使用 @RestController 代替@Controller。@RestController其实是一个组合注解,是@Controller和@ResponseBody的组合

相关文章
相关标签/搜索