详细解读-Spring请求处理(下)

简介: 详细解读-Spring请求处理(下)

二、请求映射处理

1.@RequestMapping

作用:将请求和处理请求的控制器方法关联起来,建立映射关系。

@RequestMapping用来匹配客户端发送的请求,可以在方法上使用, 也可以在类上使用。

方法:表示用来匹配要处理的请求

类上:表示为当前类的所有方法的请求地址添加一个前置路径,访问 的时候必须要添加此路径


@RequestMapping就是用来标识此方法用来处理什么请求,其中的/可以取消

取消后默认也是从当前项目的根目录开始查找,一般在编写的时候看个人习惯

同时,@RequestMapping也可以用来加在类上,

 @RequestMapping("/bobo1")
    public String bobo1(User user) {
        System.out.println(user);
        return "index.jsp";
    }


2.@PathVariable

此注解就是提供了对占位符URL的支持,就是将URL中占 位符参数绑定到控制器处理方法的参数中。

@PathVariable 用在参数上面的 专门用来获取URL目录级别的参数

比如 http://localhost:8080/springmvc/path/user/123/xushu 要获得123 @RequestMapping(“/user/{id}”) : @PathVariable(“id”) Int eger id 10


示例:

@RequestMapping("/user/{id}/{username}") 
public String path01(@PathVariable("id") Integer id,@PathVariable("username") String name)
{ 
  System.out.println(id); 
  System.out.println(name);
  return "/index.jsp"; 
}


3.REST

REST即表述性状态传递(英文:Representational State Transfer, 简称REST)是RoyFielding博士在2000年他的博士论文中提出来的一种软件架 构风格。

它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。 一种相较与之前URL所产生一种更优雅的URL风格


如果是原来的架构风格,需要发送四个请求,分别是?

查询用户:http://localhost:8080/app/user.do?action=getUser&id=xxx GET 增加用户:

http://localhost:8080/app/user_add.do POST 修改用户:

http://localhost:8080/app/xiugaiuser.do POST 删除用户:

http://localhost:8080/app/delete.do?id=1 GET/POST


让不同的请求方式表示不同的请求类型就可以简化我们 的查询,改成名词

看URL就知道要什么看http method就知道干什么

查询用户: http://localhost:8080/xxx/user/1 GET ­­查询

查询多个用户: http://localhost:8080/xxx/users GET

新增用户: http://localhost:8080/xxx/user POST ­­­新增

修改用户: http://localhost:8080/xxx/user/1 PUT ­­修改

删除用户:http://localhost:8080/xxx/user/1 DELETE ­­删除


对网络上所有的资源都有一个资源标志符;

对资源的操作不会改变标识符;

同一资源有多种表现形式(xml、json);

所有操作都是无状态的(Stateless)

符合上述REST原则的架构方式称为RESTful


HiddenHttpMethodFilter:浏览器 form 表单只支持 GET与 POST 请求,而DELETE、PUT 等 method 并不支持,Spring3.0 添加了一个过滤器,可以将这些请求转换为标准的 http 方法,使得支持 GET、POST、PUT 与DELETE 请求。

在web.xml中配置过滤器,来实现delete和put方法

<!--    处理html不支持rest中put和delete-->
    <filter>
        <filter-name>hiddenHttpMethod</filter-name>
        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>hiddenHttpMethod</filter-name>
        <servlet-name>springmvc</servlet-name>
    </filter-mapping>
@Controller
@RequestMapping("/rest")
public class RestController {
    // 查询
    @GetMapping("/user/{id}")
    public String get(@PathVariable("id") Integer id){
        System.out.println("查询用户:"+id);
        return "/index.jsp";
    }
    // 新增
    @PostMapping("/user")
    public String add(User user){
        System.out.println("新增用户:"+user);
        return "/index.jsp";
    }
    // 修改
    @PutMapping("/user/{id}")
    public String update(User user){
        System.out.println("修改用户:"+user);
        return "/index.jsp";
    }
    // 删除
    @DeleteMapping("/user/{id}")
    public String delete(@PathVariable("id") Integer id){
        System.out.println("删除用户:"+id);
        return "/index.jsp";
    }
}


4.静态资源的访问

当页面中包含静态资源的时候我们能够正确的获取到吗?

72912f52179043b3b6d50beaf89dc831.png


在自己设置的xml文件中加入一个配置

我这里图片放在web文件夹下的image文件夹中

   <mvc:default-servlet-handler/>
<!--    <mvc:annotation-driven></mvc:annotation-driven>-->
    <mvc:resources mapping="/images/**" location="/image/"/>


访问静态资源,只要在xml文件中加入如下配置即可:

<mvc:default-servlet-handler/>
    <mvc:annotation-driven></mvc:annotation-driven>   


相关文章
|
1月前
|
Java Spring
用spring发送http请求
用spring发送http请求
|
1月前
|
Web App开发 JavaScript Java
教会你什么是Spring-Rest- url 请求风格
教会你什么是Spring-Rest- url 请求风格
54 0
|
2天前
|
运维 Java 测试技术
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
9 3
|
1月前
|
监控 IDE Java
Java项目调试实战:如何高效调试Spring Boot项目中的GET请求,并通过equalsIgnoreCase()解决大小写不一致问题
Java项目调试实战:如何高效调试Spring Boot项目中的GET请求,并通过equalsIgnoreCase()解决大小写不一致问题
56 0
|
22小时前
|
JSON 前端开发 Java
spring mvc 请求与响应
spring mvc 请求与响应
6 0
|
12天前
|
前端开发 Java Spring
Spring MVC 请求处理流程
Spring MVC 请求处理流程
12 0
|
22天前
|
存储 前端开发 Java
Spring Web MVC入门(2)——请求(下)
Spring Web MVC入门(2)——请求
22 0
|
22天前
|
JSON 前端开发 Java
Spring Web MVC入门(2)——请求(上)
Spring Web MVC入门(2)——请求
16 0
|
1月前
|
Java 应用服务中间件 微服务
Spring Boot可以同时处理多少请求?
Spring Boot的并发处理能力受硬件、JVM配置、嵌入式Tomcat的线程池(默认最大连接数8192,最大等待数100)、应用效率、系统架构和网络条件影响。开发阶段可能处理数百个并发,优化后在适合的硬件上可处理数千乃至上万并发。大型系统常结合负载均衡器。
40 2
|
1月前
|
前端开发 Java Spring
请求映射掌握:探讨Spring MVC中@RequestMapping注解的妙用
请求映射掌握:探讨Spring MVC中@RequestMapping注解的妙用
59 1
请求映射掌握:探讨Spring MVC中@RequestMapping注解的妙用