1. 前端提交到后台的中文数据可能会出现乱码,需要在web.xml文件中配置防止乱码的过滤器。
**<!--字符编码过滤器-->
<filter>
<filter-name>characterEncodingFilter</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>
<!--强制指定字符编码,即如果在request中指定了字符编码,那么也会为其强制指定当前设置的字符编码-->
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>**
2. 创建前台表单
<form method="post" action="/login">
用户:<input type="text " name="username" /><br>
密码:<input type="password" name="password" /><br>
<input type="submit" value="登录">
</form>
3. 创建后台接收数据的Controller
@Controller
public class ParamController {
@RequestMapping("/login")
public String param(String username , String password, Model model){
model.addAttribute("username",username);
model.addAttribute("password",password);
return "ok";
}
//如果请求的参数和形参不一致的,使用@RequestParam注解
/* @RequestMapping("/login")
public String param2(@RequestParam(name = "username") String name , String password,Model model){
model.addAttribute("username",name);
model.addAttribute("password",password);
return "ok";
}*/
//使用对象接收参数
/*@RequestMapping("/login")
public String param(User user ,Model model) {
model.addAttribute("username", user.getUsername());
model.addAttribute("password", user.getPassword());
return "ok";
}*/
}
4. 创建跳转到前端的“ok.jsp”
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
用户:${username}<br>
密码:${password}
</body>
</html>
效果:
5. 获取请求路径中的参数
@Controller
public class PathController {
@RequestMapping("{username}/{password}/params")
public String getParams(@PathVariable("username") String username,
@PathVariable("password") String password,
Model model) {
model.addAttribute("username",username);
model.addAttribute("password",password);
return "ok";
}
}
在浏览器地址栏中输入 localhost/张三/123/params 可获取 4 中一样的效果