SpingMVC有关面试题

本文详细介绍了SpringMVC的工作流程,包括从请求到响应的每个步骤,并讲解了常用的注解如@Controller、@RequestMapping、@PathVariable等。还讨论了解决POST、GET请求中文乱码的方法,以及如何拦截GET请求。此外,文章还涵盖了RESTful服务实现、视图重定向与转发、SpringMVC与AJAX交互、以及如何从请求中获取参数等关键知识点。
摘要由CSDN通过智能技术生成

1.SpingMVC的工作流程

1.发送请求到前端控制器(dispatcherservlet)
2.前端控制器(dispatcherservlet)接收到请求后,根据URL调用HandlerMapping获得该handler配置的所有相关的对象,最后以HandlerExecutionChain对象的形式返回
3.dispatchersevlet根据获得的handler,选择一个合适的handlerAdapter
4.提取request中的额数据模型,填充handler入参,开始执行handler(也就是cotroller)
5.handler执行完成后,向dispatcherservlet返回一个modelandview对象
6.dispatcherservlet接收到modelandview对象,将modelandview对象传给viewresolve
7.viewresolver解析后返回具体的view
8.dispatcherservlet将渲染视图,返回给客户端

2.SpringMVC的常用注解

  1. @Controller,使用它标记的类就是一个SpringMVC Controller 对象
  2. @RequestMapping,处理请求映射地址
  3. @PathVariable,用于对应restful风格url中的参数
  4. @RequestParam,将请求的参数绑定到方法中的参数上
  5. @ResponseBody,将返回类型直接输入到http response body中
  6. @RequestBody,方法参数直接被绑定到http request body中

3.如何解决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配置文件添加编码与工程编码一样

<ConnectorURIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

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

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

5.如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象?

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

6.如何在spring mvc实现RESTful 服务?

1.导入jackson2包
2.开启注解驱动mvc:annotation-driven/

7.SpringMVC怎么样设定重定向和转发的?

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

8.SpringMvc怎么和AJAX相互调用的?

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

9.@RequestMapping注解用在类上面有什么作用?

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

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

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

11.如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象?

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

12.SpringMvc中函数的返回值类型有哪些?

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值