JavaEE : Spring MVC 03

在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的方法,以及介绍了响应的代码书写,以及结合之前所学知识,编写了两个简单的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值