美文网首页Java 杂谈JAVA开发
Java面试系列—框架篇(SpringMVC)

Java面试系列—框架篇(SpringMVC)

作者: 奋斗的蛐蛐 | 来源:发表于2018-08-17 09:47 被阅读3次

    先整理出一批面试笔试面试题。后续将继续更新,如果本文中出现问题,请及时与蛐蛐联系,蛐蛐马上继续修改,后续也会同步更新。

    什么是SpringMVC?

    SpringMVC是Spring的一个模块

    简单介绍下SpringMVC和Struts2的区别?

    • SpringMVC的入口是一个servlet,而struts2入口是一个filter。
    • SpringMVC一个url对应一个方法,传递参数通过形参;Struts2是基于类开发,传递参数是通过类的属性。

    SpringMVC中的控制器的注解一般用哪个?

    一般用@Conntroller注解

    @RequestMapping注解有什么作用?

    是一个用来处理请求地址映射的注解

    SpringMVC的优点

    • 可以使用各种视图技术,而不仅仅局限于JSP
    • 支持各种请求资源的映射策略
    • 它应是易于扩展的

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

    是单例模式,所以在多线程访问的时候有线程安全问题,不要用同步,会影响性能的

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

    • 在返回值前面加"forward:"可以让结果转发
    • 在返回值前面加"redirect:"可以让结果重定向。

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

    ModelAndView

    什么叫RBAC?如何设计表?

    • 基于角色的访问访问控制的一个思想,一种数据库设计思想.在具有权限的项目中应该如何去设计数据库模型。
    • 角色表、用户表、菜单表、用户角色关联表、角色菜单关联表

    拦截器执行顺序:假设先配置A后配置B拦截器

    A.preHandle--> B.preHandler-->控制器-->B.postHandler--> A.posthandle-->JSP -->B.aftercompletion--> A afterCompletion

    SpringMVC有哪些常用注解

    • @Controller
      • 标记的类就是一个SpringMVC Controller 对象
    • @RequestMapping
      • 用来处理请求地址映射的注解
    @RequestMapping(value = "/testUrl", method = RequestMethod.GET)
    public String testUrl( String  value) {
        System.out.println("testUrl:" + value);
        return null;
    }
    

    上面@RequestMapping(value = "/testUrl", method = RequestMethod.GET)
    可以改为@PostMapping(value = "/testUrl")

    • @Autowired
      • 做bean的注入时使用
    • @RequestParam
      • @RequestParam用于将请求参数区数据映射到功能处理方法的参数上
    @RequestMapping(value = "/testUrl", method = RequestMethod.GET)
    public String testUrl(@RequestParam("value") String  value) {
        System.out.println("testUrl:" + value);
        return null;
    }
    
    • @ResponseBody
      • 该注解用于将Controller的方法返回的对象

    SpringMVC运行原理

    当用户发送请求后被DispatcherSevlet进行分发,然后转交给HandlerMapping进行验证格式是否合法,如果不合法报异常,如果合法向下传递交给HandlerAdapter准备调用某个Controller,Controller在进入之前一般都需要执行HandlerInterceptor拦截器的preHandle()方法,判断是否可以调用Controller.如果可以调用才能进入Controller,当Controller执行完成后再次进入拦截的postHandle验证传递内容是否合法,如果合法交给ViewResovler视图解析器调用具体的View视图资源.调用成功后再次进入拦截器的afterCompletion做最后验证,如果一切正确,响应给客户端.

    相关文章

      网友评论

        本文标题:Java面试系列—框架篇(SpringMVC)

        本文链接:https://www.haomeiwen.com/subject/ijhzbftx.html