当前位置: 首页 > 图灵资讯 > 技术篇> springmvc工作流程面试题(附答案)

springmvc工作流程面试题(附答案)

来源:图灵教育
时间:2023-03-28 17:43:33

对于学习java中的SSH三个框架java语言朋友们并不陌生。三个框架中的SpringMVC是当今最主流的Web MVC框架,要做一名合格java程序员,学好springmvc是必须的。下面整理了10个道路springmvc工作流程面试题,可作为朋友需要面试的学习准备材料。

1、请简单说说Spring。 MVC的工作原理?

答:(1)用户向服务器发送请求 捕获SpringMVC前端控制器;(2)前端控制器分析请求URL,获得请求资源标识符(URL)然后根据URL调用页面处理器获取Handler配置的所有相关对象(包括Handler对象和Handler对应的拦截器),最后以HandlerexecutionChain对象的形式返回;(3)前端控制器根据获取Handler选择合适的Handleradapter 适配器处理;(4)Handler完成数据处理后,将返回ModelAndView()对象返回到前端控制器;(5)Handler返回的ModelAndView()只是一个逻辑视图,而不是一个正式的视图。通过Viewresolver,前端控制器通过Viewresolver 试图将逻辑视图转化为真实视图;(6)Dispatcherservle通过model分析Modelandview()中的参数,最终显示完整的view并返回客户端。

2、SpringMVC 常用的注释有哪些?

答:@requestMapping:用于请求url映射;@RequestBody: 实现接收的注释 json数据由http请求,将json数据转换为java对象;ResponseBody:注解实现将 controller 返回对象的方法转化为 json 响应给客户;@Conntroller:控制器的注释,表示是表现层,不能用其他注释代替。

3、SpringMVC如何设置重定向和转发?

答:在返回值之前添加"forward:"可以转发结果,比如"forward:user.do?name=method4";在返回值之前添加"redirect:"返回值可以重定向。

4、springMVC和struts2有什么区别??

答:(1)springmvc入口为servlet,即前端控制器(DispatchServlet)

struts2入口是filter过滤器(StrutsPrepareAndExecuteFilter);(2)springmvc是基于方法开发(一个url对应一个方法),要求参数传输到方法的形状参数,可设计为单例或多例(推荐单例)。struts2是基于类开发,通过类属性传输参数。只能设计成多个案例;(3)springmvc通过参数分析器分析request请求的内容,并赋予方法参数值,将数据和视图包装成modelandview对象,最后通过reques域将modelandview中的模型数据传输到页面,Jsp视图分析器默认使用jstl。Struts使用值栈存储请求和响应数据,并通过OGNL访问数据。

5、SpringMVC流程?

答:(1)前端用户发送请求Dispatcherservlet捕获;(2)在Dispatcherservlet捕获请求后,调用Handlermaping处理映射器,请求获取Handler;(3)处理器映射器跟随请求url找到特定的处理器,生成处理器对象和处理器拦截器,并返回到Dispatcherservletet;(4)dispatcherservlet调用Handleradapter处理器适配器 ;(5)Handleradapter适用于handler;(6)Handler执行完成返回modelandviewer;(7)Handlerapdater将Handler执行结果Modelandview返回Dispatcherservleteter;(8)Dispatcherserviet讲述Modelandview传输给Viewrsolver视图解析器进行分析;(9)Viewresolver分析后返回特定Viewew;(10)Dispatcherservlet视图渲染View(即将模型数据充入视图,然后Dispatcherservlet响应用户。

6、如何处理Springmvc异常?

答:可以扔异常Spring框架由Spring框架处理,自定义实现Spring的全局异常分析器Handlerexceptionresolver,并在异常处理器中添加视图页面。

7、Springmvc控制器是否为单例设计模式,假如有什么问题,该怎么解决?

答:这是一种单例模式,因此在多线程访问中存在线程安全问题。不要使用同步,这会影响性能。解决方案是控制器中不能写字段。

8、Springmvc 与struts2有什么区别?

答:servlet是servlet的前端控制器(DispatchServlet),struts2入口是filter过虑器(StrutsPrepareAndExecuteFilter);

springmvc是基于方法开发(url对应一种方法),要求参数传输到方法的形状参数,可设计为单例或多例(推荐单例)。struts2是基于类开发的,通过类属性传输参数,只能设计为多例;

Struts使用值栈存储请求和响应数据,通过OGNL访问数据,Springmvc通过参数分析器分析request请求的内容,并给方法参赋值,将数据和视图包装成Modelandview对象,最后通过reques域将模型数据传输到页面。Jstl默认用于Jsp视图分析器。

9、Springmvc 文件上传需要注意什么?

答:在页面enctypeperm中提交enctyperm="multipart/form-data"的数据时,需要springmvc分析multipart类型的数据;在springmvc中.multipart类型分析器配置在xml中;MultipartFile attach (上传单个文件) 或者 MultipartFile[] attachs (上传多个文件)

10、 Springmvc 如何使用中拦截器?

答:定义拦截器,实现Handlerinterceptor接口提供三种方法

(1)preHandle:进入Handler方法前,用于身份认证和身份授权,如身份认证。如果认证通过,则表示当前用户未登录,则需要此方法拦截,不再向下执行(2)postHandle:进入Handler方法后,返回modelAndview前执行,应用场景从modelandview开始:将公共模型数据(如菜单导航)传输到视图,或在此统一指定视图;(3)afterCompletion:执行Handler完成执行此方法,应用场景:统一异常处理,统一日志处理。

以上就是springmvc工作流程面试,这里一起整理10个问题,并给出相应的参考答案,您可以根据附加答案学习springmvc工作流程相关知识。准备面试。Java程序员的合作伙伴,除了学习springmvc工作流程面试除此之外,还要向别人学习Web利器SpringMVC内容,这样才能做到面面俱到,从而顺利通过面试。