测试工具(postman)
- 作用:可以帮我们少写好多前台要提交数据的jsp页面
配置方面
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
<scope>provided</scope>
</dependency>
<!--<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>-->
<!--<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>3.0.0</version>
</dependency>-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
//把提交文件的编码格式改为UTF-8
<filter>
<filter-name>characterFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 指定SpringMVC 配置文件位置,DispatcherServlet初始化时会初始化Spring上下文(WebApplicationContext) -->
<!-- 默认配置文件寻找位置:/WEB-INF/{servlet-name}-servlet.xml,如果名字符合默认寻找规则,可以不指定配置文件路径 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
</init-param>
<!-- 配置容器启动时初始化DispatcherServlet -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
package com.lanou3g.springmvc.web;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.Map;
@Slf4j
@Controller
@RequestMapping("/test")
public class TestController {
/**
* 提前初识化一些数据,在RequestMapping方法中,可以通过给方法参数添加@ModelAttribute来使用
* @return
*/
@ModelAttribute
public Map<String, String> prepareData() {
Map<String, String> data = new HashMap<>();
data.put("sname", "张四丰");
return data;
}
/**
* 获取请求中的普通参数(GET、POST)
* @param sname
* @param age
* @param gender
* @param model
* @return
*/
@RequestMapping("/param")
public String testRequestParam(@RequestParam("sname") String sname, @RequestParam("age") Integer age, Integer gender, Model model) {
model.addAttribute("sname", sname);
model.addAttribute("age", age);
log.debug("sname: " + sname + ", age: " + age+", gender: " + gender);
return "hello";
}
/**
* 获取URI中的变量,通常用于RESTFull服务
* @param sname
* @param age
* @param model
* @return
*/
@RequestMapping("/path_var/{sname}/{age}")
public String testPathVar(@PathVariable("sname") String sname,@PathVariable Integer age, Model model) {
model.addAttribute("sname", sname);
model.addAttribute("age", age);
log.debug("sname: " + sname + ", age: " + age);
return "hello";
}
/**
* 获取请求头参数
* @param sname
* @param model
* @return
*/
@RequestMapping("/header")
public String testReqHeader(@RequestHeader("sname") String sname, Model model) {
model.addAttribute("sname", sname);
log.debug("sname: " + sname);
return "hello";
}
/**
* 获取作用域参数
* @param sname
* @param model
* @return
*/
@RequestMapping("/attr")
public String testAttr(@SessionAttribute(value = "sname", required = false) String sname, Model model) {
model.addAttribute("sname", sname);
log.debug("sname: " + sname);
return "hello";
}
/**
* 获取Cookie参数
* @param sname
* @param model
* @return
*/
@RequestMapping("/cookie")
public String testCookie(@CookieValue("sname") String sname, Model model) {
model.addAttribute("sname", sname);
log.debug("sname: " + sname);
return "hello";
}
/**
* 测试@ModelAttribute作用
* @return
*/
@RequestMapping("/model_attr")
public String testModelAttr(@ModelAttribute Map<String, String> data, Model model) {
log.debug("model key: sname ->" + data.get("sname"));
model.addAttribute("sname", data.get("sname"));
return "hello";
}
@RequestMapping("pp")
public String testReqParm(@RequestParam("sname") String sname,@RequestParam("age") Integer
age ,Model model){
model.addAttribute("sname",sname);
model.addAttribute("age",age);
log.debug("sname:"+sname+"age:"+age);
return "hello";
}
}
<%--
Created by IntelliJ IDEA.
User: John
Date: 2019/6/28
Time: 15:31
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Hello</title>
</head>
<body>
Welcome !!!
<br />
参数值: ${sname}: ${age}
</body>
</html>
- 获取请求中的普通参数(GET、POST)的测试演示
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ac1b40bd9655afca1793932910b21450.png)
- 获取URL中的变量(测试)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/39befa4d52bd71f5c73900acbe93490a.png)
- 获取请求头参数(测试)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/9f7633aff952faa84399830fcbe7a21f.png)