• SpringMVC常见面试题


    1. 什么是Spring MVC ?

    1. Spring MVC是一个基于MVC架构的用来简化web应用程序开发的应用开发框架,它是Spring的一部分,它和Struts2一样都属于表现层的框架。
    2. MVC(Model模型  View 视图 Controller 控制器):这是一种软件架构思想,是一种开发模式,将软件划分为三种不同类型的模块,分别是模型,视图,和控制器。
    3. 模型:用于封装业务逻辑处理(java类);
    4. 视图:用于数据展现和操作界面(jsp);
    5. 控制器:用于协调视图和模型(Servlet);
    6. 处理流程:视图将请求发送给控制器,由控制器选择对应的模型来处理;模型将处理结果交给控制器,控制器选择合适的视图来展现处理结果;

    优点:方便测试和代码的维护,分工协作等

    2. Spring MVC的五大组键 ?

    1. 前端控制器 (DispatcherServlet)
    2. 映射处理器(HandlerMapping)
    3. 处理器(Controller)
    4. 模型和视图(ModelAndView)
    5. 视图解析器(ViewResolver)

     

     

    附: Spring MVC 的运行原理文字解析: 客户端请求提交到DispatcherServlet 由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller DispatcherServlet将请求提交到Controller Controller调用业务逻辑处理后,返回ModelAndView DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图 视图负责将结果显示到客户

    3. SpringMVC的控制器是不是单例模式,如果是,有什么问题,怎么解决?

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

    4. SpringMVC中控制器的注解一般用哪个,有没有别的注解可以代替?

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

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

    用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

    6. SpringMVC怎样设定重定向和转发 ?

    1. 在返回值的前面加”forward”,就可以实现让结果转发;
    2. 在返回值的前面加上”redirect”,就可以让返回值重定向。

    7. Spring MVC的优点:

    1. 基于View框架的无缝集成,采用IOC便于测试
    2. 典型的纯MVC架构,Struts是不完全基于MVC框架的
    3. 与tapestry是纯正的Servlet系统

    8. 基于注解的Spring MVC的应用编程步骤

    Step1:导包(Spring-webmvc),添加spring配置文件,配置前端控制器dispatcherServlet

    Step2: 写Controller

    Step3:写JSP

    Step4:在Spring的配置文件里面添加视图解析器、组建扫描、mvc注解扫描

    9. SpringMVC如何读取请求参数值 ?

    方式1:通过request

    方式2:通过@RequestParam

    方式3:通过Javabean

    10. Spring MVC如何向页面传值 ?

    方式1: 绑定数据到request

    方式2: 返回ModelandView

    方式3:绑定数据到ModelMap

    方式4:绑定数据到Session

    11. 系统如何分层 ?

    1. 系统分为表现层(UI):数据的展现,操作页面,请求转发。
    2. 业务层(服务层):封装业务处理逻辑
    3. 持久层(数据访问层):封装数据访问逻辑

    各层之间的关系: 表示层通过接口调用业务层,业务层通过接口调用持久层,这样,当下一层发生变化改变,不影响上一层的数据。 MVC是一种表现层的架构思想。

     

    12. Spring MVC如何解决中文乱码问题 ?

    1. 可以使用SpringMVC提供的过滤器(CharacterEncodingFilter)来解决;只需要配置该过滤器就可以,需要注意的是:
    2. 过滤器的编码设置应该与jsp页面保存一致
    3. 表单的提交方式设置为post

     

     

    13. SpringMVC中的拦截器问题 ?

    DispatcherServlet收到请求之后,如果有拦截器,则先执行拦截器的方法,在执行处理器的方法; 注意:过滤器属于Servlet规范,拦截的是Servlet容器的调用过程 拦截器属于spring框架,拦截的是DispatcherServlet的调用过程 如何写一个拦截器: 1) 写一个java类,实现HandlerInterceptor接口; 2) 在接口方法当中,实现处理逻辑。 3) 配置拦截器 4) 拦截器还可以设置优先级:依据配置的顺序来执行

    14. Spring MVC的异常处理 ?

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

     

     

  • 相关阅读:
    回调函数仿360开机
    封装运动框架基本函数(多个属性包括透明度和zIndex)
    封装运动框架基本函数(单个属性)
    返回当前样式的函数
    MacOs High Sierra 升级失败解决办法
    Easy-RSA 3 Quickstart README
    Easily use UUIDs in Laravel
    OAuth2.0 原理流程及其单点登录和权限控制
    细说SSO单点登录
    单点登录
  • 原文地址:https://www.cnblogs.com/aohongzhu/p/12938742.html
Copyright © 2020-2023  润新知