请求(httpServletRequest):获取请求数据
响应(httpServletResponse):设置响应数据
BS架构:Browser/Server,浏览器/服务器模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端(淘宝网页、京东网页)
CS架构:Client/Server 客户端/服务器架构模式(例如安装微信、百度网盘等)
BS架构:维护方便 、体验一般
CS架构开发、维护麻烦 体验不错
Postman的下载
在网站Download Postman | Get Started for Free 下载自己所需的exe 然后登录账号安装即可
点击create Workspace创建
然后指定一个项目名字
创建完毕以后会自动的进入
然后点击+创建请求
用原始方式创建
我们在控制类中书写如下代码并在postman中测试
package com.ming.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; @RestController public class Requsetcontroller { @RequestMapping("/simpleParam") public String simpleParam(HttpServletRequest request){ String name=request.getParameter("name"); String Stringage = request.getParameter("age"); int age = Integer.parseInt(Stringage); System.out.println(name+":"+age); return "OK"; } }
在postman中用Get请求输入http://localhost:8080/simpleParam?name=李四&age=20 body会返回一个OK
在idea的控制台返回了李四:20
用简单方式创建
将前面的控制了里面的代码改为如下代码
package com.ming.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class Requsetcontroller { @RequestMapping("/simpleParam") public String simpleParam(String name,Integer age){ System.out.println(name+":"+age); return "OK"; } }
重新启动项目 在postman里面重新获取
控制台仍然输出了李四:20
我们在创建一个新的项目测试post请求 在post请求的body里面的x-www-from里面携带参数一个name 一个age
发送完以后我们发现postman控制台已经打印了OK 并且Java控制台输出了张三:24
而如果将name改为username而postman里面的参数不变 就会在第一个里面输出null
如果方法参数名称与请求参数名称不匹配,可以用@RequestParam
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController public class Requsetcontroller { @RequestMapping("/simpleParam") public String simpleParam(@RequestParam(name="name") String username, Integer age){ System.out.println(username+":"+age); return "OK"; } }
重新运行上面的代码 再将postman重新send之后 Java控制台输出了 张三:24
注意:@RequestParam中的required属性默认为true 代表该请求参数必须传递 ,如果不传递将会报错 。如果该参数是可选的将 required 改为false
当我们把 required 改为false之后就不报错了