SpringMVC基于注解进行URL映射

前言

这里写图片描述
自己之前写了好几个web程序,都遵从这样的方式:地址栏输入的url,后台一定存在对应的servlet。
然而某天看着自己博客地址,链接由域名和自己用户名(如上图所示),就忍不住开始想了,csdn那么多用户,总不可能有那么多servlet吧。
一定是进行了某种映射,于是去查了些资料,知道了如何去实现这样的效果。

使用url映射的好处

先说说好处,知道好处才有力气用。
1、缩短url,隐藏实际路径提高安全性 。
2、易于用户记忆和键入。
3、易于被搜索引擎收录。
4、保证用户的书签保存以及友情链接长期有效。(因为外现的url并不存在,实际更新维护时不会对虚拟url产生影响)

第一:易扩展,如上面说的用户名作为url的一部分,既方便用户记忆,代码结构也更直观
第二:便于搜索引擎对链接

使用

步入主题,我们来看看SpringMVC怎样进行URL映射

普通映射

@RequestMapping(value = "abcde")
public String shi()
{
    return "";    
}

多个url映射

@RequestMapping(value = {"abcde", "fgh"})
public String shi()
{
    return "";    
}

获取路径变量的url映射

@RequestMapping(value = "/{name}")
    @ResponseBody
    public Map shi(@PathVariable String name)
    {
        HashMap s = new HashMap();
        s.put("aaa", name);
        return yi(name);
    }

基于通配风格的url映射

通配符

? 表示匹配一个字符,不能为空
比如@RequestMapping(value = “/a?”)

匹配:
localhost:8080/aa
localhost:8080/ab  等等
  • 表示匹配任意个字符但不能跨/

比如@RequestMapping(value = “/a*”)

匹配:
localhost:8080/aa
localhost:8080/abc
localhost:8080/acde
localhost:8080/acde/  等等
不能匹配
localhost::8080/acde/s

** 表示匹配任意个字符并且无/的限制

比如@RequestMapping(value = “/a/**”)

匹配:
localhost:8080/aa
localhost:8080/abc
localhost:8080/acde/saf
localhost:8080/acde/saf/asf  等等
请赐予我钱进的动力吧~
0%