Web第三次作业

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";
    }
}

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值