Java面试宝典每日3题:day33
其他
2021-11-22 15:32:01
阅读次数: 0
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里用到。
转载自blog.csdn.net/qq_42025798/article/details/119837192