1、springboot入门程序撰写并启动
①创建项目
②新建类controller
③运行DemoApplication.java
④在浏览器输入地址http://localhost:8080/hello
⑤运行失败,将DemoApplication.java放在controller.java的同一包中
⑥运行成功
2、使用postman练习参数的获取(请求响应—请求)
2.1简单参数
原始方法
@RestController public class RequestController { @RequestMapping("/simpleParam") public String simpleParam(HttpServletRequest request){ String name = request.getParameter("name"); String ageStr = request.getParameter("age"); int age = Integer.parseInt(ageStr); System.out.println(name+":"+age); return "OK"; } }
springboot方式
@RestController public class RequestController { @RequestMapping("/simpleParam") public String simpleParam(String name,Integer age){ System.out.println(name+":"+age); return "OK"; } }
get请求
post请求:用body获取数据
注意:①请求的参数名与方法的形参名称保持一致,就可以自动接收数据
②若不一样,则接收不成功,但不会报错,为null
③不一样,可以用@RequestParam完成映射
2.2实体参数
①简单实体参数
失败原因:没有将user包导入application中
②复杂实体参数
GET
POST
③数组参数
④集合参数
原则:数组:请求的参数名与形参中数组变量名相同,可以直接使用数组封装
集合:请求的参数名与形参中集变量名相同,通过@RequestParam绑定参数关系
⑤日期参数
@DateTimeFormat
要求:注意日期格式和大小写,个位数要加零
⑥Json参数
@RequestBody
⑥路径参数
@PathVariable
1.单个路径
2.多个路径
3.请求响应—响应
@ResponseBody
作用:将返回值响应到客户端浏览器
4.案例
5.体会前端页面向后端发送数据的过程,并且自己尝试将之前的注册页面的信息发送到服务端自己尝试将之前的注册页面的信息发送到服务端
(1)product.html的操作代码,输入产品名称和价格,点击“增加商品”按钮,页面返回“ok”。服务台返回用户输入的值。
(2)自己尝试将之前的注册页面的信息发送到服务端
FormController.java
package com.example.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.util.Arrays; @RestController public class FormController { @RequestMapping("/addFrom6") public String simpleParam1(HttpServletRequest request){ String name =request.getParameter("name"); String gender =request.getParameter("gender"); String question =request.getParameter("question"); String answer =request.getParameter("answer"); String hobby =request.getParameter("hobby"); System.out.println("您注册的姓名是:"+name); System.out.println("您的性别是:" + Arrays.toString(new String[]{gender})); System.out.println("您注册的问题是:" + question); System.out.println("您注册的答案是:" + answer); System.out.println("您的爱好是:" +Arrays.toString(new String[]{hobby})); return "OK"; } @RequestMapping("/addForm") public String simpleParam(String name,String gender,String question,String answer,String hobby){ System.out.println("您输入的信息是:"+name+gender+question+answer+hobby); return "OK"; } @RequestMapping("/addForm1") public String simpleParam(String name) { System.out.println("您注册的姓名是:" + name); return "OK"; } @RequestMapping("/addForm2") public String simpleParam(String[] gender){ System.out.println("您的性别是:" + Arrays.toString(gender)); return "OK"; } @RequestMapping("/addForm3") public String simpleParam0(String question) { System.out.println("您注册的问题是:" + question); return "OK"; } @RequestMapping("/addForm4") public String simpleParam1(String answer) { System.out.println("您注册的答案是:" + answer); return "OK"; } @RequestMapping("/addForm5") public String simpleParam2(String[] hobby){ System.out.println("您的爱好是:" +Arrays.toString(hobby)); return "OK"; } }
Form.java
package com.example.pojo; public class Form { @Override public String toString() { return "Form{" + "name='" + name + '\'' + ", gender='" + gender + '\'' + ", question='" + question + '\'' + ", answer='" + answer + '\'' + ", hobby='" + hobby + '\'' + '}'; } private String name; private String gender; private String question; private String answer; private String hobby; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public String getQuestion() { return question; } public void setQuestion(String question) { this.question = question; } public String getAnswer() { return answer; } public void setAnswer(String answer) { this.answer = answer; } public String getHobby() { return hobby; } public void setHobby(String hobby) { this.hobby = hobby; } }
form.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="addForm"> <ul style="list-style: none; line-height: 30px"> <li> 输入用户姓名: <input type="text" name="name" /> <br /> </li> <li> 选择性别: <input name="sex" type="radio" value="boy" /> 男 <input name="sex" type="radio" value="girl" /> 女 </li> <li> 选择密码提示问题: <select name="question"> <option value="母亲生日"> 母亲生日 </option> <option value="宠物名称"> 宠物名称 </option> <option value="电脑配置"> 电脑配置 </option> </select> </li> <li> 请输入问题答案: <input type="text" name="key" /> </li> <li> 请选择个人爱好: <div style="width: 400px"> <input name="like" type="checkbox" value="dangce" /> 唱歌跳舞 <input name="like" type="checkbox" value="web" /> 上网冲浪 <input name="like" type="checkbox" value="hill" /> 户外登山 <br /> <input name="like" type="checkbox" value="sports" /> 体育运动 <input name="like" type="checkbox" value="reading" /> 读书看报 <input name="like" type="checkbox" value="movie" /> 欣赏电影 </div> </li> <li> <input type="submit" value="提交" /> </li> </ul> </form> </body> </html>
错误:输出的部分结果为null
4.17运行成功
错误原因:变量名没有一一对应
修改后:FormController.java
package com.example.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.util.Arrays; @RestController public class FormController { @RequestMapping("/addFrom6") public String simpleParam1(HttpServletRequest request){ String name =request.getParameter("name"); String gender =request.getParameter("gender"); String question =request.getParameter("question"); String answer =request.getParameter("answer"); String hobby =request.getParameter("hobby"); System.out.println("您注册的姓名是:"+name); System.out.println("您的性别是:" + Arrays.toString(new String[]{gender})); System.out.println("您注册的问题是:" + question); System.out.println("您注册的答案是:" + answer); System.out.println("您的爱好是:" +Arrays.toString(new String[]{hobby})); return "OK"; } @RequestMapping("/addForm") public String simpleParam(String name,String sex,String question,String key,String like){ System.out.println("您输入的信息是:"+name+sex+question+key+like); return "OK"; } @RequestMapping("/addForm1") public String simpleParam(String name) { System.out.println("您注册的姓名是:" + name); return "OK"; } @RequestMapping("/addForm2") public String simpleParam(String[] sex){ System.out.println("您的性别是:" + Arrays.toString(sex)); return "OK"; } @RequestMapping("/addForm3") public String simpleParam0(String question) { System.out.println("您注册的问题是:" + question); return "OK"; } @RequestMapping("/addForm4") public String simpleParam1(String key) { System.out.println("您注册的答案是:" + key); return "OK"; } @RequestMapping("/addForm5") public String simpleParam2(String[] like){ System.out.println("您的爱好是:" +Arrays.toString(like)); return "OK"; } }