一、return + 路径
如果不加forward和redirect关键字,那么直接在return的字符串上添加springMVC配置文件里设置好的前缀和后缀,然后转发到资源。
如果加上forward,那么不会拼接配置文件里设置的前缀和后缀,直接原字符串转发资源。
如果加上redirect则再向服务器发送一次新的请求
forward和redirect的区别是前者在服务器端重发,浏览器感知不到,地址栏也不会变化。
return+路径就是纯粹用于跳转页面。 而return+redirect就用于再次转向controller。如果加了redirect但是没有加相关注解的话,程序会报错
二、RequestMapping和ResponseBody
1.@RequestMapping
@RequestMapping 是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径;用于方法上,表示在类的父路径下追加方法上注解中的地址将会访问到该方法,此处需注意@RequestMapping用在类上可以没用,但是用在方法上必须有。
@Controller
//设置想要跳转的父路径
@RequestMapping(value = "/Controllers")
public class StatisticUserCtrl {
//如需注入,则写入需要注入的类
//@Autowired
// 设置方法下的子路经
@RequestMapping(value = "/method")
public String helloworld() {
return "helloWorld";
}
}
2.@ResponseBody
@ResponseBody通常是在@RequestMapping的后面使用,原本@RequestMapping的返回值通常为跳转路径,但是加了@ResponseBody之后,返回结果就不会解析为跳转路径,而是直接写入HTTP响应正文中。
返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)就需要使用@ResponseBody。