关于spring我了解的很少,是入门级。
一、xml配置
关于地址映射,是在在web.xml中配置相应的servlet。
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
请求过来,通过<servlet-mapping>中的<url-pattern>拦截相应的请求,通过<servlet-name>找到响应servlet。
二、注解
注解可以替换在xml中的繁琐的配置,有提供@RequestMapping 注解处理请求地址映射。
请求简单映射后台
@RequestMapping("/hello")
public @ResponseBody String test() {
return "hello!";
}
注:@ResponseBody 是将返回结果转换为特定格式,通常是JSON或者XML,写入流中,传至前端。不会再走视图处理器。@RequestMapping 类上映射地址(http:***/hello),方法上映射处理方法(http:***/*/hello)
基于多个普通的URL路径
//普通的url路径映射
@RequestMapping(value={"/multi1","/multi2","/test/multi"})
public @ResponseBody String multiUrl() {
return "test multi url";
}
基于路径变量的URL映射
这种URL映射可以直接在路径上指定变量,通过@PathVariable可以获得对象。
//基本的URL模板映射
@RequestMapping(value="/user1/{name}")
public @ResponseBody String basicUrl1(@PathVariable String name){
return "hello"+name;
}
@RequestMapping(value="/user2/{name}/test")
public @ResponseBody String basicUrl2(@PathVariable String name){
return "hello"+name+"test";
}
@RequestMapping(value="/user1/{name}/test/{age}")
public @ResponseBody String basicUrl3(@PathVariable String name,@PathVariable int age){
return "hello"+name+" age"+age;
}
基于通配风格的url映射
1)
@RequestMapping(value="/ant1?")
public @ResponseBody String ant1(){
return "ant1?";
}
请求:
localhost:8080/context/ant12 或者
localhost:8080/context/ant1a
2)
@RequestMapping(value="/ant2*")
public @ResponseBody String ant2(){
return "ant2*";
}
请求:
localhost:8080/context/ant2aaaa 或者
localhost:8080/context/ant2
3)
@RequestMapping(value="/ant3/*")
public @ResponseBody String ant3(){
return "ant3/*";
}
请求:
localhost:8080/context/ant3/aaaa 或者
localhost:8080/context/ant3/123
4)
@RequestMapping(value="/ant4/**")
public @ResponseBody String ant4(){
return "ant4/**";
}
请求:
localhost:8080/context/ant4/ 或者
localhost:8080/context/ant4/aaa 或者
localhost:8080/context/ant4/aaa/123
混用统配和路径变量
//混用
@RequestMapping(value="/ant5/**/{name}")
public @ResponseBody String ant5(@PathVariable String name){
return "ant+url "+name;
}
请求:
localhost:8080/context/ant5/123 或者
localhost:8080/context/ant5/aaa/123 或者
localhost:8080/context/ant5/aaa/123/test
最后一个会被当做name值
基于正则的url映射
这个比较有意思,它支持{名称:正则表达式}的写法,以另一种风格限制url的映射。
//正则表达式
@RequestMapping(value="/student/{name:\\w+}-{age:\\d+}")
public @ResponseBody String regUrl(@PathVariable String name,@PathVariable int age){
return "name:"+name+" age:"+age;
}
请求:
localhost:8080/context/student/wangwu-33 或者
localhost:8080/context/student/zhao4-22
参考:http://www.cnblogs.com/xing901022/p/5263702.html
http://blog.csdn.net/cw_hello1/article/details/51322652
386

被折叠的 条评论
为什么被折叠?



