SpringMVC面试题及答案(21-25)

21、SpringMVC中如何实现拦截器的顺序?

SpringMVC中实现拦截器的顺序是通过实现HandlerInterceptor接口的preHandle方法中的返回值来控制的。返回值为true表示继续执行下一个拦截器或处理器,返回false则不会执行后续的拦截器和处理器。

22、SpringMVC中如何使用@ModelAttribute注解?

@ModelAttribute注解用于将请求参数绑定到Model中,被该注解标注的方法会在每个被@RequestMapping注解的方法之前执行,并将返回值添加到Model中。@ModelAttribute注解还可以用于声明一个Model的属性或方法,使得在@RequestMapping注解的方法中可以直接使用该属性或方法。

23、SpringMVC中如何使用@PathVariable注解?

@PathVariable注解用于从URL中获取参数值,可以将路径变量与@RequestMapping注解中的URL模板匹配,然后将参数值绑定到指定的方法参数上。

24、SpringMVC中如何使用@RequestBody注解?

@RequestBody注解用于将HTTP请求体中的内容绑定到一个Java对象上。该注解可以将请求的JSON/XML等数据自动转换为Java对象,方便进行数据处理和转换。

25、SpringMVC中如何使用@ResponseBody注解?
@ResponseBody注解用于指示SpringMVC方法返回的结果直接写入HTTP响应正文中,而不是将其解释为视图名称。在处理RESTful Web服务时,通常使用此注解将数据作为JSON、XML或其他格式返回给客户端。
示例代码:

@Controller
@RequestMapping("/example")
public class ExampleController {

    @ResponseBody
    @RequestMapping(value = "/hello", method = RequestMethod.GET)
    public String hello() {
        return "Hello World";
    }
}


在此示例中,hello()方法使用@ResponseBody注解来指示将”Hello World”字符串直接写入HTTP响应正文中。