java springmvc面试题_springmvc工作流程面试题(附答案)「建议收藏」

java springmvc面试题_springmvc工作流程面试题(附答案)「建议收藏」对于java中的SSH三大框架,学习java语言的朋友都不陌生。三大框架中的SpringMVC是当今最主流的WebMVC框架,要做一名合格java程序员,学好springmvc是必须的。下面整理了10道springmvc工作流程面试题,可以作为有面试需要朋友们的学习准备资料。1、请简单说一下SpringMVC的工作原理?答:(1)用户向服务器发送请求,请求被springMVC前端控制器捕获;…

大家好,又见面了,我是你们的朋友全栈君。

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

af836adc929f19b3e5303eae7a2930ea.png

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

答:(1)用户向服务器发送请求,请求被 springMVC前端控制器捕获;(2)前端控制器对请求URL进行解析,得到请求资源标识符(URL)然后根据该URL调用页面处理器获得该Handler配置的所有相关对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回;(3)前端控制器根据获得Handler选择一个合适的HandlerAdapter 适配器处理;(4)Handler对数据处理完成以后将返回一个ModelAndView()对象给前端控制器;(5)Handler返回的ModelAndView()只是一个逻辑视图并不是一个正式的视图,前端控制器通过ViewResolver 试图解析器将逻辑视图转化为真正的视图View;(6)DispatcherServle通过model解析出ModelAndView()中的参数进行解析最终展现出完整的view并返回给客户端。

2、SpringMVC 常用注解都有哪些?

答:@requestMapping:用于请求url映射;@RequestBody: 注解实现接收 http请求的json数据,将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对象,最后又将ModelAndView中的模型数据通过reques域传输到页面,Jsp视图解析器默认使用jstl。Struts采用值栈存储请求和响应的数据,通过OGNL存取数据。

5、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响应用户。

6、Springmvc如何做异常处理?

答:可以将异常抛给Spring框架,由Spring框架来处理,自定义实现spring的全局异常解析器HandlerExceptionResolver,在异常处理器中添视图页面即可。

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

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

8、Springmvc 和struts2的区别有哪些?

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

springmvc是基于方法开发(一个url对应一个方法),请求参数传递到方法的形参,可以设计为单例或多例(建议单例),struts2是基于类开发,传递参数是通过类的属性,只能设计为多例;

Struts采用值栈存储请求和响应的数据,通过OGNL存取数据,springmvc通过参数解析器是将request请求内容解析,并给方法形参赋值,将数据和视图封装成ModelAndView对象,最后又将ModelAndView中的模型数据通过reques域传输到页面。Jsp视图解析器默认使用jstl。

9、Springmvc 中对于文件的上传有哪些需要注意的?

答:在页面form中提交enctype=”multipart/form-data”的数据时,需要springmvc对multipart类型的数据进行解析;在springmvc.xml中配置multipart类型解析器;方法中使用: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中的内容,这样才能做到面面俱到,从而顺利通过面试。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139591.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python控制灯_树莓派python编程 做一个LED呼吸灯「建议收藏」

    呼吸灯概述上一篇我们通过控制GPIO口输出高低电平来控制一只LED的亮灭。这次我们来控制LED的亮度,灯由暗渐渐变亮,再由亮渐渐边暗,反复循环,也就是呼吸灯的效果。按Ctrl+C结束程序。通过本节课,你能学习到:脉冲宽度调制技术所需硬件树莓派x1面包板x1杜邦线x2LED灯x1名称解释我们知道,通过LED的电流越大,LED越亮,电流越小,LED越暗。如果可以控制输出电流大小就可…

    2022年4月16日
    45
  • git删除暂存区的内容,删除phpstorm产生的.idea文件夹

    git删除暂存区的内容,删除phpstorm产生的.idea文件夹git删除暂存区的内容,删除phpstorm产生的.idea文件夹

    2022年4月24日
    187
  • 基于51单片机控制步进电机正反转

    基于51单片机控制步进电机正反转基于51单片机控制步进电机正反转此次采用uln2003模块来链接步进电机;##步进电机工作原理步进电机是一种将电脉冲信号转换成相应角位移或线位移的电动机。每输入一个脉冲信号,转子就转动一个角度或前进一步,其输出的角位移或线位移与输入的脉冲数成正比,转速与脉冲频率成正比。步进电动机的结构形式和分类方法较多,一般按励磁方式分为磁阻式、永磁式和混磁式三种;按相数可分为单相、两相、三相和多相等形式。因此我们可以控制单片机I/O口的电平来控制步进电机,此次设计中采用四相单拍工作方式,在这种工作方式下,A、

    2022年5月31日
    73
  • linux默认安装路径在哪里_linux常用的20个命令

    linux默认安装路径在哪里_linux常用的20个命令Nginx安装安装路径 /usr/local/nginx配置文件 /usr/local/nginx/conf/nginx.conf启动:进入到/usr/local/nginx/sbin下,./nginx关闭:进入到/usr/local/nginx/sbin下 ./nginx -s stop 重启:同上, -s reload停止 kill -9 线程号查看 ps -ef|grep nginxhttps://www.jianshu.com/p/9f2c162ac77c 可参考安装ng

    2022年8月19日
    18
  • PL/SQL 入门学习(一)

    PL/SQL 入门学习(一)在学校的时候虽说上过PL/SQL这门课,然并卵,只恨当时啊!工作关系,需要用到Oracle存储过程。我就简单看了一些教程,特此记录一下。首先,先介绍一下PL/SQL是什么?PL/SQL是是由甲骨文公司在90年代初开发,以提高SQL的功能。PL/SQL是嵌入在Oracle数据库中的编程语言之一。PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加了编程语言的特点…

    2022年8月20日
    5
  • SQL数据库Rownumber()的两种排序方式

    SQL数据库Rownumber()的两种排序方式提示。先按一个字段分组,再按一些字段排序,最后编号。代码如下:selectrow_number()over(partitionbyUserIporderbyinsertTime),*fromuseraccess以上就是SQLServer数据库row_number()over()来自动产生行号的过程,ROW_NUMBER()OVER(PARTITIO…

    2022年5月28日
    89

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号