建立目录结构
请求进来,先去找Controller看能不能处理,不能处理的所有请求又都交给静态资源处理器,
静态资源就会去指定的这几个目录
去找资源。
如果静态资源也找不到,那就赶回404;
我们只有登录之后才能能访问一些动态请求,所以一般在发起请求时会设置拦截器,如果我们来拦截/**,那麽就会把静态资源也给拦截,为了访问静态资源方便,我们会给访问静态资源的的方式将一个前缀,设这一个标志,让拦截器去放行这些静态资源请求。比如:http://127.0.0.1:8080/resources/aa.jpg,一次可见我们加了一个resources前缀,当拦截器看到resources的前缀时,就会放行这样的请求。
我们可以在yml文件中加入这样一个设置:
spring:
mvc:
static-path-pattern: /resources/**
我们还可以设置静态资源默认的访问问文件夹,不重要不先写了
欢迎页支持
在静态资源路径下放一个index.html,可以访问index.html.**但是前提是不能配置静态资源的前缀**,否则不能访问index.html;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>欢迎页</title>
</head>
<body>
<h2>欢迎页</h2>
</body>
</html>
不写index.htm名,直接访问http://127.0.0.1:8080/
自定义的favicon
把favicon放在静态资源下的目类即可:
restful风格
请求参数
一 @PathVariable
编写一个欢迎页
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>欢迎页</title>
</head>
<body>
<h2>欢迎页</h2>
<ul>
<a href="/car/1/owner/zhangsan">/car/1/owner/zhangsan</a>
</ul>
</body>
</html>
编写也i个Controller
@RestController
public class ParameterController {
@GetMapping("/car/{id}/owner/{username}")
public Map<String,Object> getCar(@PathVariable("id") Integer id,
@PathVariable("username") String username ) {
Map<String,Object> map= new HashMap<>();
map.put("id",id);
map.put("username",username);
return map;
}
}
结果
另外:
还有可以使用一个 map<String ,String> 进行全部的接收
@RestController
public class ParameterController {
@GetMapping("/car/{id}/owner/{username}")
public Map<String,Object> getCar(@PathVariable Map<String,String> pv) {
Map<String,Object> map= new HashMap<>();
map.put("id",pv.get("id"));
map.put("username",pv.get("username"));
return map;
}
}
返回结果同上
二 @RequestHeader
请求投中有这样一个参数 user-agent,通过以下方式获取:
@RestController
public class ParameterController {
@GetMapping("/car/{id}/owner/{username}")
public Map<String,Object> getCar(@RequestHeader("user-agent") String useragent) {
Map<String,Object> map= new HashMap<>();
map.put("user-agent",useragent);
return map;
}
}
结果
另外,也可以用 Map,Headers来获取所有的请求头:
@RestController
public class ParameterController {
@GetMapping("/car/{id}/owner/{username}")
public Map<String,Object> getCar(@RequestHeader Map<String,String> header) {
Map<String,Object> map= new HashMap<>();
map.put("header",header);
return map;
}
}
三 @RequestParam
通过请求的参数取值:
注意:相同的属性:inters 列表中复选框
@RestController
public class ParameterController {
@GetMapping("/car/{id}/owner/{username}")
public Map<String,Object> getCar(@RequestParam("inters")List<String> inters) {
Map<String,Object> map= new HashMap<>();
map.put("inters",inters);
return map;
}
}
map的形式:注意列表只获得了一项
@RestController
public class ParameterController {
@GetMapping("/car/{id}/owner/{username}")
public Map<String,Object> getCar(@RequestParam Map<String,String> params) {
Map<String,Object> map= new HashMap<>();
map.put("params",params);
return map;
}
}