1、springboot入门程序撰写并启动
代码
package wust.edu.Hello;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
//请求处理类
@RestController
public class HelloController {
@RequestMapping("/myhello")
public String Hello(){
System.out.println("Hello world!");
return "Hello World!";
}
}
启动:
浏览器地址栏输入localhost:8080/myhello
2、使用postman练习参数的获取
简单参数请求
1)通过HttpServletRequest手动获取请求参数
package wust.edu.Hello;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
@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";
}
}
postman中请求参数
2)springboot请求参数
//基于springboot请求参数
@RestController
public class RequestController {
@RequestMapping("/simpleParam")
public String simpleParam(String name, Integer age) {
System.out.println(name + ":" + age);
return "OK";
}
}
get请求
post请求
实体参数请求
1)简单实体参数
user类的封装
package wust.edu.pojo;
public class user {
private String name;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "user{" +
"name='" + name + '\'' +
", age=" + age
'}';
}
}
请求函数
//简单实体请求参数
@RestController
public class RequestController {
@RequestMapping("/simplePojo")
public String simplePojo(user userInfo){
System.out.println(userInfo);
return "OK";
}
}
2)复杂实体参数——嵌套pojo参数
user类和Address类的封装
//Address
package wust.edu.pojo;
public class Address {
private String province;
private String city;
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
@Override
public String toString() {
return "Address{" +
"province='" + province + '\'' +
", city='" + city + '\'' +
'}';
}
}
//user
package wust.edu.pojo;
public class user {
private String name;
private Integer age;
private Address address;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
@Override
public String toString() {
return "user{" +
"name='" + name + '\'' +
", age=" + age +
", address=" + address +
'}';
}
}
请求函数
//实体请求参数
@RestController
public class RequestController {
@RequestMapping("/simplePojo")
public String simplePojo(user userInfo){
System.out.println(userInfo);
return "OK";
}
}
数组集合请求参数
1)数组参数
请求函数
@RestController
public class RequestController {
@RequestMapping("/ArrayParam")
public String ArrayParam(String [] hobby){
System.out.println(Arrays.toString(hobby));
return "OK";
}
}
2)集合参数
@RestController
public class RequestController {
@RequestMapping("/ListParam")
public String ListParam(@RequestParam List<String> hobby){
System.out.println(hobby);
return "OK";
}
}
日期时间请求参数
@RestController
public class RequestController {
@RequestMapping("/DateParam")
public String DateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){
System.out.println(updateTime);
return "OK";
}
}
JSON请求参数
@RestController
public class RequestController {
@RequestMapping("/jsonParam")
public String jsonParam(@RequestBody user u) {
System.out.println(u);
return "OK";
}
}
路径请求参数
@RestController
public class RequestController {
@RequestMapping("/pathParam/{id}/{name}")
public String pathParam(@PathVariable Integer id,@PathVariable String name) {
System.out.println(id);
System.out.println(name);
return "OK";
}
响应——字符串
@RestController
public class Responseacontroller {
//响应字符串
@RequestMapping("/Hello")
public String Hello(){
System.out.println("Hello world~");
return "Hello world~";
}
}
响应——JSON
响应——集合
@RestController
public class Responseacontroller {
@RequestMapping("/listAddr")
public List<Address> listAddr(){
List<Address> list=new ArrayList<>();
Address addr=new Address();
addr.setProvince("广东");
addr.setCity("深圳");
Address addr2=new Address();
addr2.setProvince("山东");
addr2.setCity("淄博");
list.add(addr);
list.add(addr2);
return list;
}
}
响应——result
代码:
@RestController
public class Responseacontroller {
//响应字符串
@RequestMapping("/Hello")
public Result Hello(){
System.out.println("Hello world~");
//return new Result(code:1,msg:"success",data:"Hello world~");
return Result.success("Hello world~");
}
//响应JSON
@RequestMapping("/getAddr")
public Result getAddr(){
Address addr=new Address();
addr.setProvince("广东");
addr.setCity("深圳");
return Result.success(addr);
}
//响应集合,@requestbody会将其转换成json再return
@RequestMapping("/listAddr")
public Result listAddr(){
List<Address> list=new ArrayList<>();
Address addr=new Address();
addr.setProvince("广东");
addr.setCity("深圳");
Address addr2=new Address();
addr2.setProvince("山东");
addr2.setCity("淄博");
list.add(addr);
list.add(addr2);
return Result.success(list);
}
}
响应例子
响应——案例
代码
package wust.edu.Hello;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import wust.edu.pojo.Emp;
import wust.edu.pojo.Result;
import wust.edu.utils.XmlParserUtils;
import java.util.List;
@RestController
public class EmpController {
@RequestMapping("/listEmp")
public Result list(){
//加载并解析emp.xml文件
String file=this.getClass().getClassLoader().getResource("emp.xml").getFile();//动态获取emp.xml路径
System.out.println(file);
List<Emp> empList=XmlParserUtils.parse(file,Emp.class);//将file封装到Emp中
//对数据进行转换处理
//gender
empList.stream().forEach(emp -> {
String gender= emp.getGender();
if("1".equals(gender)){
emp.setGender("男");
}
else if("2".equals(gender)){
emp.setGender("女");
}
//job
String job=emp.getJob();
if("1".equals(job)){
emp.setJob("讲师");
}
else if("2".equals(job)){
emp.setJob("班主任");
}
else if("3".equals(job)){
emp.setJob("就业指导");
}
}
);
//响应数据
return Result.success(empList);
}
}
响应结果:
页面呈现:
3、体会前端页面向后端发送数据的过程。并且自己尝试将之前的注册页面的信息发送到服务端。
问题一:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body style="font-size: 30px">
<form action="addProduct">
产品名称 :<input type="text" name="name" value=""><br />
产品价格: <input type="text" name="price" value=""><br />
<input type="submit" value="增加商品">
<br><br><br><br>test2,addProduct1 ,productResult.html
</form>
</body>
</html>
package edu.wust.pojo;
public class Product {
private String name;
private float price;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
}
package edu.wust.controller;
import edu.wust.pojo.Result;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import edu.wust.pojo.Product;
import javax.servlet.http.HttpServletRequest;
@RestController
public class ProductController {
@RequestMapping("/addProduct1")
public String simpleParam1(HttpServletRequest request) {
String name = request.getParameter("name");
String ageStr = request.getParameter("price");
int price = Integer.parseInt(ageStr);
System.out.println("addProduct1:"+name + " : " + price);
return "OK";
}
@RequestMapping("/addProduct")
public String simpleParam(String name , Integer price){
System.out.println("您输入的信息是:"+name+" : "+price);
return "OK";
}
@RequestMapping("/addProduct2")
public String simpleParam2(Product product){
System.out.println(product);
return "OK";
}
}
页面效果
问题二
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="addDemo" method="post">
<ul style="list-style:none;line-height:30px">
<li>输入用户名:
<input type="test" name="name"/>
<br/>
</li>
<li>
选择性别:
<input type="radio" name="sex" value="boy"/>男
<input type="radio" name="sex" value="girl"/>女
<br/>
</li>
<li>
选择密码提示问题:
<select name="question">
<option value="母亲生日">母亲生日</option>
<option value="宠物名称">宠物名称</option>
</select>
<br/>
</li>
<li>
请输入问题答案:
<input type="text" name="answer"/>
<br/>
</li>
<li>
请选择个人爱好:
<div style="width:400px">
<input type="checkbox" name="like" value="sing and dance"/>唱歌跳舞
<input type="checkbox" name="like" value="game"/> 玩游戏
<input type="checkbox" name="like" value="movie"/>看电影
</div>
</li>
<li>
<input type="submit" value="提交"/>
</li>
</ul>
</form>
</body>
</html>
package wust.edu.pojo;
public class demo {
private String name;
private String sex;
private String question;
private String answer;
private String[] like;
public String getName() {
return name;
}
public String getQuestion() {
return question;
}
public void setQuestion(String question) {
this.question = question;
}
public String[] getLike() {
return like;
}
public void setLike(String[] like) {
this.like = like;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAnswer() {
return answer;
}
public void setAnswer(String answer) {
this.answer = answer;
}
}
package wust.edu.Hello;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import wust.edu.pojo.demo;
import javax.servlet.http.HttpServletRequest;
@RestController
public class demoController {
@RequestMapping("/addDemo")
public String addDemo(demo d){
System.out.println(d);
return "OK";
}
}