在Spring MVC 02中我们介绍了Session和Cookie的获取方法,本文将接着继续介绍其他元素的获取,并开始介绍响应。
获取Header
在这里介绍两种获取Header的方法
传统获取Header
从HttpServletRequest中获取
简洁获取Header
使用注解@RequestHeader
响应
介绍完了请求,我们将接着介绍请求的方法
返回静态页面
返回静态页面我们不再使用@RestController注解,而是使用@Controller注解,可以理解为前者是返回数据,后者则是返回页面。
返回数据
那现在有个问题,如果我们要返回数据该怎么做呢。这里我们就可以使用@ResponseBody注解来修饰要返回数据的方法
返回HTML代码片段
可以返回HTML代码片段
返回json
设置状态码
我们还可以进行状态码的设置利用@HttpServletResponse注解
设置Content-Type
简单练习
学完了一些基本的操作,我们可以尝试编写一些的功能
加法计算器
我们主要是要实现数字1和数字2的相加
我们在编写代码时要思考我们需要什么东西,我们需要的肯定是数字1和数字2的值,那我们就要从前端页面中获取,在这里我们主要是从表单中获取数据,要注意action中的地址必须和后端相同。
后端代码
前端代码
运行结果
简单登录
登录这个功能在我们生活中随处可见,无论是购物还是打游戏都有应用,我们现在也可以尝试做一个简单的登录。我们要实现的功能是在登录页面登录成功后,跳转到首页并在登陆人后显示用户名,失败则弹出警告窗口。
后端代码
@RequestMapping("/user")
@RestController
public class LoginConstrallar {
@RequestMapping("/login")
public Boolean login(String userName, String password, HttpSession session){
if(!StringUtils.hasLength("userName") || !StringUtils.hasLength("password")){
return false;
}
if(!"zhangsan".equals(userName) || !"123456".equals(password)){
return false;
}
session.setAttribute("userName",userName);
return true;
}
@RequestMapping("/getLoginUser")
public String getLoginUser(HttpSession session){
String userName = (String) session.getAttribute("userName");
return userName;
}
}
前端代码
登陆页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录页面</title>
</head>
<body>
<h1>用户登录</h1>
用户名:<input name="userName" type="text" id="userName"><br>
密码:<input name="password" type="password" id="password"><br>
<input type="button" value="登录" onclick="login()">
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
<script>
function login(){
$.ajax({
url:"/user/login",
type:"post",
data:{
"userName": $("#userName").val(),
"password": $("#password").val()
},
success:function(result){
if(result){
location.href="/index.html"
}else{
alert("登陆失败")
}
}
})
}
</script>
</body>
</html>
首页
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录页面</title>
</head>
<body>
<h1>用户登录</h1>
用户名:<input name="userName" type="text" id="userName"><br>
密码:<input name="password" type="password" id="password"><br>
<input type="button" value="登录" onclick="login()">
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
<script>
function login(){
$.ajax({
url:"/user/login",
type:"post",
data:{
"userName": $("#userName").val(),
"password": $("#password").val()
},
success:function(result){
if(result){
location.href="/index.html"
}else{
alert("登陆失败")
}
}
})
}
</script>
</body>
</html>
运行结果
用户名主要是从Ssesion中获取的,而Ssesion是在登陆成功是设置的。
小结
本文中主要补充了获取header的方法,以及介绍了响应的代码书写,以及结合之前所学知识,编写了两个简单的功能。