springmvc url地址配置

@RequestMapping

注解的概念

通过@RequestMapping将请求地址与方法进行绑定,可以在类级别和方法级别声明

类级别的注解负责将一个特定的请求路径映射到一个控制器上,将url和类绑定

通过方法级别的注解可以细化映射,能够讲一个特定的请求路径映射到某个具体的方法上

将url和类的方法绑定

1. 映射单个url

@RequestMapping("") 或 @RequestMapping(value="")

/**
* @RequestMapping 声明在⽅法上⾯,映射单个 URL
* 访问地址:(如果有类路径需要写在⽅法路径前⾯)
* http://ip:port/springmvc01/test01
* @return
*/
@RequestMapping("/test01")
// @RequestMapping(value = "/test01")
public ModelAndView test01(){
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("hello","test01");
modelAndView.setViewName("hello");
return modelAndView;
}

/**
* 路径开头是否加 斜杠"/" 均可
* @RequestMapping("/请求路径") 与 @RequestMapping("请求路径")均可
* 建议加上,如:@RequestMapping("/test02")
* 访问地址:(如果有类路径需要写在⽅法路径前⾯)
* http://ip:port/springmvc01/test02
* @return
*/
@RequestMapping("test02")
public ModelAndView test02(){
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("hello","test02");
modelAndView.setViewName("hello");
return modelAndView;
}

2.映射多个 URL

@RequestMapping({"",""}) 或 @RequestMapping(value={"",""})

/**
* @RequestMapping 声明在⽅法上⾯,映射多个 URL
* ⽀持⼀个⽅法绑定多个 url 的操作
* 访问地址:(如果有类路径需要写在⽅法路径前⾯)
* http://ip:port/springmvc01/test03_01
* http://ip:port/springmvc01/test03_02
* @return
*/
@RequestMapping({"/test03_01","/test03_02"})
// @RequestMapping(value = {"/test03_01","/test03_02"})
public ModelAndView test03(){
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("hello","test03");
modelAndView.setViewName("hello");
return modelAndView;
}

3. 映射 URL 在控制器上

⽤于类上,表示类中的所有响应请求的⽅法都是以该地址作为⽗路径。

注 : 这时候的访问方法就要在浏览器上加上这个父路径地址

如 : http://localhost:8081/springmvc002/url/test04

localhost:端口号/项目访问路径/父路径(类路径)/方法路径

@Controller
@RequestMapping("/url")
public class UrlController {
/**
* @RequestMapping 声明在类上⾯,类中的的⽅法都是以该地址作为⽗路径
* 声明级别:
* 类级别 + ⽅法级别 (/类路径/⽅法路径)
* 访问地址:
* http://ip:port/springmvc01/url/test04
* @return
*/
@RequestMapping("/test04")
public ModelAndView test04(){
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("hello","test04");
modelAndView.setViewName("hello");
return modelAndView;
}
}

4. 设置 URL 映射的请求⽅式

默认没有设置请求⽅式,在HTTP 请求中最常⽤的请求⽅法是 GET、POST,还有其他的⼀些⽅法,
如:DELET、PUT、HEAD 等。
可以通过 method 属性设置⽀持的请求⽅式,如 method=RequestMethod.POST;如设置多种请求⽅
式,以⼤括号包围,逗号隔开即可。

/**
 * 访问hello路径,返回指定路径
 * (4)mv设置映射地址的请求方式
 *  通过@RequestMapping的method属性值设置请求方式,请求方式有(get,post)等
 *  如果没有指定请求方式,默认是接收任意请求方式
 *  如果指定了请求方式,则需要根据设置的指定方式去访问
 *
 *  访问地址还是 : localhost:springmvc002/8081/url_04/url04
 *  但是请求方式必须是post的
 */
// 使用注解标识是controller层
@Controller
@RequestMapping(value = "/url_04" ,method = RequestMethod.GET)// 这时候访问url_03,表示类中的所有响应你请求的方法都是以U改地址作为为父路径
public class URLCoontroller04 {

    // @RequestMapping(value = {"/url02","/url002"})
    @RequestMapping({"/url04","url004"}) // 不管访问哪一个都是可以访问到的
    // 地址映射器--->当访问hello的时候会找注解下的方法
    public ModelAndView hello(){
        // 准备模型和视图
        ModelAndView modelAndView = new ModelAndView();
        // 设置视图名称----->这里的名字可以随便定,只要保持创建的jsp文件名要是一致的,否则是不能够访问的
        modelAndView.setViewName("url");
        // 设置数据模型---->attributeName是可以随便定义的     attributeValue是Object的,所以是可以写所有的内容
        modelAndView.addObject("msg","真难,spring");
        // 返回视图和模型
        return modelAndView;
    }

}

5.通过参数名称映射 URL

localhost:端口号/项目的访问路径/类的方法路径?参数路径
/**
* 通过参数名称访问
* 通过参数的形式访问
* 访问地址:
* http://ip:port/springmvc01/url?test06
* @return
*/
@RequestMapping(params = "test06")
public ModelAndView test06(){
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("hello","test06");
modelAndView.setViewName("hello");
return modelAndView;
}