计算器和登录界面(实现前后端互通)

两个简单的案例,基于spring框架制作

计算器

后端代码

首先写注解@RestController,表示之后返回的是数据,然后使用@RequestMapping标志映射的地址,判断的逻辑就很简单了,进行简单的加法,然后就放回即可

前端代码

前端代码也很简单,只给HTML,需要加样式的可以自己加,这里使用了表单的方法,action告诉浏览器,如果后续有button按钮,就按照这个地址去提交即可

注意这里的参数名称必须和后端的完全一样,如果不一样,无法提交成功,或者后端使用注解@Requesparam才可以

运行示例图

总结

  1. 注意这个html网页需要放在resource的static中,这样才可以通过网页去访问,如果是直接访问是无法做到这个效果的
  1. 需要注意前后端的变量名字必须一样,否则就会传参失败

登录界面

后端代码

后端代码

登录代码的逻辑也很简单,就是判断不能为空就行,这里可以使用StringUtils这个工具类,判断内容为不为空就可以了

关键点

HttpServletRequest request

我们知道,在http请求的报文中,存在cookie,他的作用就是类似于身份证,让服务器知道后续的人是谁,这里我们使用request去获取到服务器的session,因为我们第一次去,很明显服务器没有存储关于我们的信息,所以这个时候会创建一个空的对象的sessionid给我们,然后后续我们对这个sessionId的写入都会直接传到服务器

后续这里的代码就简单了,因为前面我们存储了对应session,所以这里我们可以通过getsession获取到对应的useName。

前端代码

这里涉及到一个核心的东西ajax异步编程

AJAX = Asynchronous JavaScript And XML(异步 JavaScript 和 XML)

异步编程,不进行网页的跳转,在当前页面等待后端处理完数据,然后再进行操作

Ajax的语法:$.ajax({ }),内部的键值对使用,进行分割,键和值之间使用:分割包含的内容有访问的类型,url,数据,

Type,请求的类型

url:提交的连接是哪里

data:和后端的参数名字必须一样

success:后端返回参数之后进行的操作

跳转页面

这个页面也是涉及到ajax异步编程,一样的需要表名这个里面有啥,type传输方式,url传输的路径,success接收到后端参数之后需要进行的事情

总结

这两个小项目整体难度不算大,需要掌握的是如何进行前后端的联动,如何进行异步编程,如何进行传参,如何保持session

源码

登录前后端代码

javascript 复制代码
 
body>
<h1>用户登录</h1>
<div>
  <span>用户名:</span>
  <input name="userName" type="text" id="userName"><br>
  <span>密码:</span>
  <input name="password" type="password" id="password"><br>
  <input type="button" value="登录" onclick="login()">
</div>

<script src="JS/jquery-3.7.1.js"></script>
<script>
    function login() {
        $.ajax(
          {
            type:"post",
            url:"/user/login",
            data:{
                userName: $("#userName").val(),
                passWord: $("#password").val()
            },
            success:function(result){
              if(result){
                location.href = "index.html"
              } else {
                alert("密码错误")
              }
            }
          }
        )
    }
  </script>
</body>







<body>
<div class="user-info-container">
    <span class="user-label">登录人:</span>
    <span id="loginUser"></span>
</div>

<script src="JS/jquery-3.7.1.js"></script>
<script>
    $.ajax({
        url:"/user/getLoginUser",
        type:"get",
        success:function(userName){
            $("#loginUser").text(userName)
        }
    })
</script>
javascript 复制代码
 
package com.example.demo;

import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpSession;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: zhany
 * Date: 2025-12-25
 * Time: 17:26
 */
@RestController
@RequestMapping("/user")
public class UserController {
    @RequestMapping("/login")
    public boolean login(String userName, String passWord ,HttpServletRequest request){
        if (!StringUtils.hasLength(userName)|| !StringUtils.hasLength(passWord)) {
            return false;
        }

        if ("admin".equals(userName)&& "admin".equals(passWord)) {
            HttpSession session = request.getSession();
            session.setAttribute("userName",userName);

            return true;
        }
        return false;
    }

    @RequestMapping("/getLoginUser")
    public String loginUser(HttpSession session){
        String userName = (String) session.getAttribute("userName");
        return userName;
    }
}

计算器前后端代码

java 复制代码
 
<body>
    <form action="calc/sum" method="post">
        <h1>计算器</h1>
        <div>
            <label for="num1">数字1:</label>
            <input name="num1" type="text" id="num1">
        </div>
        <div>
            <label for="num2">数字2:</label>
            <input name="num2" type="text" id="num2">
        </div>
        <input type="submit" value=" 点击相加 ">
    </form>
</body>
c++ 复制代码
 
@RestController
@RequestMapping("/calc")
public class CalController {
    @RequestMapping("/sum")
    public String cal(Integer num1,Integer num2){
        if (num1 == null|| num2 == null) {
            return "输入的数据有误";
        }
        Integer sum = num1 + num2;
        return "机器计算结果:"+sum;
    }
}
相关推荐
lkbhua莱克瓦242 小时前
反射4-反射获取成员变量
java·开发语言·servlet·反射
xiaoshujiaa2 小时前
Java大厂面试实录:谢飞机硬刚互联网医疗微服务架构,Spring Cloud+Redis+Kafka全踩坑
spring boot·redis·微服务·kafka·flyway·java面试·互联网医疗
一 乐2 小时前
养老院信息|基于springboot + vue养老院信息管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端
hopsky3 小时前
mvn install 需要 手动清除 pom.lastUpdated
java·maven·mavbne
cike_y3 小时前
Mybatis之作用域(Scope)和生命周期-解决属性名和字段名不一致的问题&ResultMap结果集映射
java·开发语言·数据库·tomcat·mybatis
天远Date Lab3 小时前
构建金融级信贷审批系统:Java Spring Boot 集成天远借贷行为验证 API 全指南
java·大数据·spring boot·金融
爱吃山竹的大肚肚3 小时前
Spring Boot 与 Apache POI 实现复杂嵌套结构 Excel 导出
java·spring boot·后端·spring·spring cloud·excel
SadSunset3 小时前
(35)使用Spring的AOP
java·数据库·spring
廋到被风吹走3 小时前
【Spring】Spring ORM 深度解析
java·后端·spring