Java面试宝典每日3题:day33

Posted 闲言_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面试宝典每日3题:day33相关的知识,希望对你有一定的参考价值。

1.@Controller注解的作用?

  在SpringMVC中,控制器Controller负责处理 由DispatcherServlet分发的请求,它把用户请求的数据经过业务处理层处理之后 封装成一个Model,然后再把该Model返回给对应的 View进行展示。
  在SpringMVC 中提供了一个非常简便的定义Controller的方法,你无需继承特定的类或实现特定的接口, 只需要使用@Controller标记一个类是Controller,然后 使用@RequestMapping和@RequestParam 等一些注解用以定义URL请求和Controller方法之间的映射,这样 Controller就能被外界访问到。
  此外Controller 不会直接依赖于HttpServletRequest和HttpServletResponse等HTTPServlet对象,他们可以通过Controller的方法参数灵活的获取到。
  @Controller用于 标记在一个类上,使用它标记的类就是一个Spring MVC Controller对象。分发处理器会将 扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping注解
  @Controller只 是定义了一个控制器类,而 使用@RequestMapping注解的方法才是真正处理请求的处理器。单单使用@Controller标记在一个类上还不能真正意义上的说它就是Spring MVC 的一个控制器类,因为这个时候Spring还不认识它。那么要如何做Spring才能认识它呢?这个时候就 需要我们把这个控制器类交给Spring 来管理。有两种方式:
  1.在Spring MVC的配置文件中定义我的Controller 的bean 对象。
  2.在Spring MVC的配置文件中告诉Spring 该去哪里找标记为@Controller的Controller控制器。

2.@ResponseBody注解的作用

  用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写到Response对象的body数据区。
  使用时机: 返回的数据不是html标签的页面,而是其他某种格式的数据时(如 json、xml等)使用。

3.@PathVariable和@RequestParam的区别

   请求路径上有个id的变量值,可以通过@PathVariable来获取
  @RequestMapping("/page/{id}",method=RequestMethod.GET)
  @RequestParam用来 获得静态的URL请求入参 spring注解时action里用到。

以上是关于Java面试宝典每日3题:day33的主要内容,如果未能解决你的问题,请参考以下文章

Java面试宝典每日3题:day31

Java面试宝典每日3题:day18

Java面试宝典每日3题:day24

Java面试宝典每日3题:day17

Java面试宝典每日3题:day21

Java面试宝典每日3题:day37