首页 > 编程语言 >java面试题_简单说明hibernate、Struts2、Spring、springMVC、mybatis的执行流程或者原理_4_SpringspringMVC

java面试题_简单说明hibernate、Struts2、Spring、springMVC、mybatis的执行流程或者原理_4_SpringspringMVC

时间:2023-02-20 13:01:49浏览次数:50  
标签:面试题 hibernate 请求 SpringMvc Spring 对象 注解 SpringspringMVC 方法


系列文章目录

文章目录

  • ​​系列文章目录​​
  • ​​SpringspringMVC的执行流程 一句话概括/快速记​​
  • ​​面试题​​
  • ​​1、什么是Spring MVC ?简单介绍下你对springMVC的理解?​​
  • ​​2、Springmvc的优点​​
  • ​​3、springMVC和struts2的区别有哪些​​
  • ​​4、SpringMVC怎么样设定重定向和转发的​​
  • ​​5、SpringMvc怎么和AJAX相互调用的?​​
  • ​​6、如何解决POST请求中文乱码问题,GET的又如何处理呢?​​
  • ​​7、Spring MVC怎么做异常处理​​
  • ​​8、SpringMvc的核心入口类是什么,Struts1,Struts2的分别是什么​​
  • ​​9、SpringMvc的控制器是不是单例模式,如果是,有什么问题,怎么解决​​
  • ​​10、SpingMvc中的控制器的注解一般用那个,有没有别的注解可以替代​​
  • ​​11、@RequestMapping注解用在类上面有什么作用​​
  • ​​12、怎么样把某个请求映射到特定的方法上面​​
  • ​​13、如果在拦截请求中,我想拦截get方式提交的方法,怎么配置​​
  • ​​14、怎么样在方法里面得到Request,或者Session​​
  • ​​15、如果想在拦截的方法里面得到从前台传入的参数,怎么得到​​
  • ​​16、SpringMvc中函数的返回值是什么​​
  • ​​17、SpringMvc用什么对象从后台向前台传递数据的​​
  • ​​18、SpringMvc中有个类把视图和数据都合并的一起的,叫什么​​
  • ​​19、当一个方法向AJAX返回特殊对象,譬如Object,List等,需要做什么处理​​
  • ​​20、@ResponseBody注解作用​​
  • ​​总结​​

SpringspringMVC的执行流程 一句话概括/快速记

核心控制器(DispatcherServlet )捕获请求,查找 Hander,执行 Handler,选择 ViewResolver,通过
ViewResoler 渲染视图并返回

具体步骤:
1)用户向服务器发送请求,请求被 Spring 前端控制 Servelt DispatcherServlet
捕获;
2)DispatcherServlet 对请求 URL 进行解析,得到请求资源标识符(URI)。然后
根据该 URI,调用 HandlerMapping 获得该 Handler 配置的所有相关的对象 (包括
Handler 对象以及 Handler 对象对应的拦截器),最后以 HandlerExecutionChain 对象
的形式返回;
3)DispatcherServlet 根据获得的 Handler,选择一个合适的 HandlerAdapter。
(附注:如果成功获得 HandlerAdapter 后,此时将开始执行拦截器的 preHandler(…)
方法)
4) 提取 Request 中的模型数据,填充 Handler 入参,开始执行 Handler
(Controller)。 在填充 Handler 的入参过程中,根据你的配置,Spring 将帮你做一些
额外的工作:
HttpMessageConveter: 将请求消息(如 Json、xml 等数据)转换成一个对象,
将对象转换为指定的响应信息
数据转换:对请求消息进行数据转换。如 String 转换成 Integer、Double 等
数据根式化:对请求消息进行数据格式化。 如将字符串转换成格式化数字或格式化
日期等
数据验证: 验证数据的有效性(长度、格式等),验证结果存储到 BindingResult
或 Error 中
5)Handler 执行完成后,向 DispatcherServlet 返回一个 ModelAndView 对象;
6)根据返回的 ModelAndView,选择一个适合的 ViewResolver(必须是已经注册
到 Spring 容器中的 ViewResolver)返回给 DispatcherServlet ;
7)ViewResolver 结合 Model 和 View,来渲染视图
8)将渲染结果返回给客户端

面试题

1、什么是Spring MVC ?简单介绍下你对springMVC的理解?

Spring MVC是一个基于MVC架构的用来简化web应用程序开发的应用开发框架,它是Spring的一个模块,无需中间整合层来整合 ,它和Struts2一样都属于表现层的框架。在web模型中,MVC是一种很流行的框架,通过把Model,View,Controller分离,把较为复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。

java面试题_简单说明hibernate、Struts2、Spring、springMVC、mybatis的执行流程或者原理_4_SpringspringMVC_MVC

2、Springmvc的优点

(1)它是基于组件技术的。全部的应用对象,无论控制器和视图,还是业务对象之类的都是 java组件.并且和Spring提供的其他基础结构紧密集成
(2)不依赖于Servlet API(目标虽是如此,但是在实现的时候确实是依赖于Servlet的)
(3)可以任意使用各种视图技术,而不仅仅局限于JSP
(4) 支持各种请求资源的映射策略
(5)它应是易于扩展的

3、springMVC和struts2的区别有哪些

区别:
(1)springmvc的入口是一个servlet即前端控制器(DispatchServlet),而struts2入口是一个filter过虑器(StrutsPrepareAndExecuteFilter)。
(2)springmvc是基于方法开发(一个url对应一个方法),请求参数传递到方法的形参,可以设计为单例或多例(建议单例),
struts2是基于类开发,传递参数是通过类的属性,只能设计为多例。
(3)Struts采用值栈存储请求和响应的数据,通过OGNL存取数据,
springmvc通过参数解析器是将request请求内容解析,并给方法形参赋值,将数据和视图封装成ModelAndView对象,
最后又将 ModelAndView中的模型数据通过reques域传输到页面。Jsp视图解析器默认使用jstl

4、SpringMVC怎么样设定重定向和转发的

举例:
(1)在返回值前面加"forward:“就可以让结果转发,譬如"forward:user.do?name=method4”
(2)在返回值前面加"redirect:“就可以让返回值重定向,譬如"redirect:http://www.baidu.com”

5、SpringMvc怎么和AJAX相互调用的?

通过Jackson框架就可以把Java里面的对象直接转化成Js可以识别的Json对象。具体步骤如下 :
(1)加入Jackson.jar
(2)在配置文件中配置json的映射
(3)在接受Ajax方法里面可以直接返回Object,List等,但方法前面要加上@ResponseBody注解

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

(1)解决post请求乱码问题:
在web.xml中加入:

<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配置文件添加编码 URIEncoding="utf-8"与工程编码一致,如下:

②另外一种方法对参数进行重新编码:ISO8859-1是tomcat默认编码,需要将tomcat编码后的内容按utf-8编码
String userName = new String(request.getParamter(“userName”).getBytes(“ISO8859-1”),“utf-8”)

7、Spring MVC怎么做异常处理

可以将异常抛给Spring框架,由Spring框架来处理;我们只需要配置简单的异常处理器,在异常处理器中添视图页面即可

8、SpringMvc的核心入口类是什么,Struts1,Struts2的分别是什么

SpringMvc的是DispatchServlet,
Struts1的是ActionServlet,
Struts2的是StrutsPrepareAndExecuteFilter

9、SpringMvc的控制器是不是单例模式,如果是,有什么问题,怎么解决

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

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

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

11、@RequestMapping注解用在类上面有什么作用

答:是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径

12、怎么样把某个请求映射到特定的方法上面

答:直接在方法上面加上注解@RequestMapping,并且在这个注解里面写上要拦截的路径

13、如果在拦截请求中,我想拦截get方式提交的方法,怎么配置

可以在@RequestMapping注解里面加上method=RequestMethod.GET

14、怎么样在方法里面得到Request,或者Session

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

15、如果想在拦截的方法里面得到从前台传入的参数,怎么得到

直接在形参里面声明这个参数就可以,但必须名字和传过来的参数一样

16、SpringMvc中函数的返回值是什么

返回值可以有很多类型,有String, ModelAndView,但一般用String比较好

17、SpringMvc用什么对象从后台向前台传递数据的

通过ModelMap对象,可以在这个对象里面用put方法,把对象加到里面,前台就可以通过el表达式拿到

18、SpringMvc中有个类把视图和数据都合并的一起的,叫什么

ModelAndView

19、当一个方法向AJAX返回特殊对象,譬如Object,List等,需要做什么处理

要加上@ResponseBody注解

20、@ResponseBody注解作用

注解 @ResponseBody,使用在控制层(controller)的方法上
作用:将方法的返回值,以特定的格式写入到response的body区域,进而将数据返回给客户端。
当加上@ResponseBody注解后不会解析成跳转地址 会解析成相应的json格式的对象 集合 字符串或者xml等直接返回给前台 可以通过 ajax 的“success”:fucntion(data){} data直接获取到

总结


标签:面试题,hibernate,请求,SpringMvc,Spring,对象,注解,SpringspringMVC,方法
From: https://blog.51cto.com/u_15800767/6068370

相关文章

  • java面试题_简单说明hibernate、Struts2、Spring、springMVC、mybatis的执行流程或者
    系列文章目录文章目录​​系列文章目录​​​​spring面试题​​​​1、简单介绍一下Spring?​​​​2、面向切面编程是啥意思​​​​3、介绍一下对SpringIoC的理解​​​......
  • sql面试题_SQl优化技巧_1、注意通配符中like的使用,百分号放后面_2、避免在where子句中
    系列文章目录作为程序员经常和数据库打交道的时候还是非常频繁的,掌握住一些Sql的优化技巧还是非常有必要的。下面列出一些常用的SQl优化技巧文章目录​​系列文章目录​​​......
  • 百度前端必会react面试题总结
    对React和Vue的理解,它们的异同相似之处:都将注意力集中保持在核心库,而将其他功能如路由和全局状态管理交给相关的库都有自己的构建工具,能让你得到一个根据最佳实践......
  • 2023-02-19,新的30道Vue面试题!
    分享当下较新的30道Vue面试题!(qq.com)Thedifferencebetweenvueandangular?VueandAngulararebothpopularJavaScriptframeworksusedforbuildingwebappli......
  • hibernate 本地查询 字段别名 映射到 DTO时注意事项
    本地原生SQL:SELECTpole.pIdaspoleIdFROMlamppolepoleLEFTJOINgrouppolegpONpole.pId=gp.pId Query:Queryq=getSession().createSQLQuery(sql2.toString......
  • Elasticsearch面试题
    Elasticsearch面试题1、elasticsearch了解多少,说说你们公司es的集群架构,索引数据大小,分片有多少,以及一些调优手段。面试官:想了解应聘者之前公司接触的ES使用场景......
  • Kafka面试题
    Kafka面试题1、Kafka是什么1.broker:Kafka服务器,负责消息存储和转发2.topic:消息类别,Kafka按照topic来分类消息3.partition:topic的分区,一个topic可以包......
  • 微服务面试题
    微服务面试题微服务,又称微服务架构,是一种架构风格,它将应用程序构建为以业务领域为模型的小型自治服务集合。通俗地说,你必须看到蜜蜂如何通过对齐六角形蜡细胞来构建它......
  • MyBatis面试题
    MyBatis面试题1、什么是Mybatis?1、Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接......
  • ZooKeeper面试题
    ZooKeeper面试题1、什么是Zookeeper?ZooKeeper是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。......