jsp、servlet简单实现前后端交互对数据处理及展示

这篇具有很好参考价值的文章主要介绍了jsp、servlet简单实现前后端交互对数据处理及展示。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

代码框架介绍:

后端部分:

数据如何展示到jsp页面,jsp、servlet,servlet,java,前端

beans:实体类,存放各个数据库表单的实体类;

dao:接口部分:创建对实体类对象的增删改查的方法接口。

impl部分:具体实现接口的方法,方便调用。

servlet: 接受处理前端页面传来的数据,并在处理结束后响应前端页面。

test:负责后端代码测试。

utis工具模块:由于JDBC连接及数据处理存在大量重复,故提取其中重复部分代码封装作为工具类被impl中的类调用以简化代码。

前端部分:

数据如何展示到jsp页面,jsp、servlet,servlet,java,前端

lib:存放前端及jsp、servlet所需jar包;

web.xml:用来指定默认首页及建立后端servlet与前端代码之间的映射连接;

index.jsp:默认首页(内含登录(还未实现),注册,数据展示功能);

register.jsp:注册页面,填写相关信息点击注册, 跳转到数据展示页面,完成注册。

StudentList.jsp:数据展示,将表中所有数据读取并展示到页面。(内含数据修改和删除功能)

updatestu.jsp:数据修改更新,在数据展示页面点击修改自动跳转到此页面,根据学号修改相关信息,修改后提交继续跳转到数据展示页面展示更新后的数据并同步到数据库。

代码展示:(以Student为例)

后端:

实体类:

package com.openlab.beans;
//也可使用limbok插件简化代码,通过注解省略get set方法的书写
public class Student {
    private  String StudentNo  ;
    private  String LoginPwd   ;
    private  String StudentName;
    private  String Sex        ;
    private  Integer GradeId    ;
    private  String Phone      ;
    private  String Address    ;
    private  String BornDate   ;
    private  String Email      ;

    public Student() {
    }

    public Student(String studentNo,  String loginPwd, String studentName, String sex, Integer gradeId, String phone, String address, String bornDate, String email) {
        StudentNo = studentNo;
        LoginPwd = loginPwd;
        StudentName = studentName;
        Sex = sex;
        GradeId = gradeId;
        Phone = phone;
        Address = address;
        BornDate = bornDate;
        Email = email;
    }

    public String getStudentNo() {
        return StudentNo;
    }

    public void setStudentNo(String studentNo) {
        StudentNo = studentNo;
    }

    public String getLoginPwd() {
        return LoginPwd;
    }

    public void setLoginPwd(String loginPwd) {
        LoginPwd = loginPwd;
    }

    public String getStudentName() {
        return StudentName;
    }

    public void setStudentName(String studentName) {
        StudentName = studentName;
    }

    public String getSex() {
        return Sex;
    }

    public void setSex(String sex) {
        Sex = sex;
    }

    public Integer getGradeId() {
        return GradeId;
    }

    public void setGradeId(Integer gradeId) {
        GradeId = gradeId;
    }

    public String getPhone() {
        return Phone;
    }

    public void setPhone(String phone) {
        Phone = phone;
    }

    public String getAddress() {
        return Address;
    }

    public void setAddress(String address) {
        Address = address;
    }

    public String getBornDate() {
        return BornDate;
    }

    public void setBornDate(String bornDate) {
        BornDate = bornDate;
    }

    public String getEmail() {
        return Email;
    }

    public void setEmail(String email) {
        Email = email;
    }

    @Override
    public String toString() {
        return "Student{" +
                "StudentNo='" + StudentNo + '\'' +
                ", LoginPwd='" + LoginPwd + '\'' +
                ", StudentName='" + StudentName + '\'' +
                ", Sex='" + Sex + '\'' +
                ", GradeId=" + GradeId +
                ", Phone='" + Phone + '\'' +
                ", Address='" + Address + '\'' +
                ", BornDate='" + BornDate + '\'' +
                ", Email='" + Email + '\'' +
                '}';
    }
}

接口类:

package com.openlab.dao;

import com.openlab.beans.Student;

import java.util.List;

public interface StudentDao {
    public  int save(Student student);//插入学生信息
    public  int update(Student student);//更新学生信息(通过学生学号)
    public int delete(String stuid);//通过学号删除学生信息
    public List<Student> getAll();//获取所有学生信息
    public  Student findById(String stuid);//通过id查找指定学生信息
}

工具类:

package com.openlab.utils;

import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

public class JDBCUtils {
    static Properties properties = new Properties();
    static DataSource dataSource = null;

    static {
        InputStream inputStream = JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties");

        try {
            properties.load(inputStream);
            dataSource = DruidDataSourceFactory.createDataSource(properties);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public Connection getConnection() throws Exception {
        try {

            Connection connection = dataSource.getConnection();

            return connection;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    //新增成功后返回新增的主键
    public int save(String sql, Object... params) {
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet rs = null;
        int id = -1;
        try {
            connection = getConnection();
            preparedStatement = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
            setParameter(preparedStatement, params);
            preparedStatement.executeUpdate();
            rs = preparedStatement.getGeneratedKeys();
            if (rs.next()) {
                Object obj = rs.getObject(1);
                id = Integer.parseInt(obj.toString());
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            close(connection, preparedStatement, rs);
        }
        return id;
    }

    public int executeUpdate(String sql, Object... params) {
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        try {
            connection = getConnection();
            preparedStatement = connection.prepareStatement(sql);
            setParameter(preparedStatement, params);
//            System.out.println(sql);
            int rows = preparedStatement.executeUpdate();
            return rows;
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            close(connection, preparedStatement, null);
        }
        return -1;
    }

    public <T> T findOneById(Class<T> tClass, String sql, Object... params) {
        List<T> list = executeQuery(tClass, sql, params);
        if (list != null && list.size() > 0) {
            return list.get(0);
        } else {
            return null;
        }
    }

    public <T> List<T> executeQuery(Class<T> tClass, String sql, Object... params) {
        List<T> list = new ArrayList<>();
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet rs = null;
        try {
            connection = getConnection();
            preparedStatement = connection.prepareStatement(sql);
            setParameter(preparedStatement, params);
            rs = preparedStatement.executeQuery();
            while (rs.next()) {
                T t = tClass.newInstance();
                ResultSetMetaData rsmd = rs.getMetaData();
                int count = rsmd.getColumnCount();
                for (int i = 1; i <= count; i++) {
                    String label = rsmd.getColumnLabel(i);
                    Object v = rs.getObject(label);
                    //
//                    String fieldname = change(label);
                    String fieldname = label;
                    Field field = tClass.getDeclaredField(fieldname);
                    field.setAccessible(true);
                    field.set(t, v);
                }
                list.add(t);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            close(connection, preparedStatement, rs);
        }

        return list;
    }

    /**
     * 如果表中的列是全部小写的 empid --->empid
     * _        emp_id--->empId
     * EMPID--->empid
     *
     * @param label
     * @return
     */
    private static String change(String label) {
        int index = label.indexOf("_");
        String fieldname = "";
        if (index != -1) {
            fieldname = label.substring(0, index) + label.substring(index + 1, index + 2).toUpperCase() + label.substring(index + 2);

        } else {//没找到
            fieldname = label.toLowerCase();
        }
        return fieldname;
    }

    private void setParameter(PreparedStatement preparedStatement, Object... params) {
        try {
            if (params != null && params.length > 0) {
                for (int i = 0; i < params.length; i++) {
//                    System.out.println(params[i]);
                    preparedStatement.setObject(i + 1, params[i]);
                }
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }


    public void close(Connection connection, Statement statement, ResultSet rs) {
        try {
            if (rs != null) {
                rs.close();
            }
            if (statement != null) {
                statement.close();
            }
            if (connection != null) {
                connection.close();
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }
}

实现类:

package com.openlab.dao.impl;

import com.openlab.beans.Student;
import com.openlab.utils.JDBCUtils;

import java.util.List;

public class StudentDao implements com.openlab.dao.StudentDao {
    @Override
    public int save(Student student) {
        return new JDBCUtils().save("insert into student values(?,?,?,?,?,?,?,?,?)",student.getStudentNo(),student.getLoginPwd(),student.getStudentName(),student.getSex(),student.getGradeId(),student.getPhone(),student.getAddress(),student.getBornDate(),student.getEmail());
    }

    @Override
    public int update(Student student) {
//        System.out.println(student.getStudentName()+student.getLoginPwd()+student.getSex()+student.getGradeId()+student.getPhone()+student.getAddress()+student.getBornDate()+student.getEmail()+student.getStudentNo());
        return new JDBCUtils().executeUpdate("update student set StudentName = ?,LoginPwd = ? ,Sex = ?, GradeId = ?, Phone = ?, Address = ?, BornDate = ?, Email = ? where StudentNo = ?" ,student.getStudentName(),student.getLoginPwd(),student.getSex(),student.getGradeId(),student.getPhone(),student.getAddress(),student.getBornDate(),student.getEmail(),student.getStudentNo());
    }

    @Override
    public int delete(String stuid) {
        return new JDBCUtils().executeUpdate("delete from student where StudentNo = ?",stuid);
    }

    @Override
    public List<Student> getAll() {
        return new JDBCUtils().executeQuery(Student.class,"select * from student");
    }

    @Override
    public Student findById(String stuid) {
        return new JDBCUtils().findOneById(Student.class,"select * from student where StudentNo = ? ",stuid);
    }
}

servlet类:

增加:

package com.openlab.sevlet;

import com.openlab.beans.Student;
import com.openlab.dao.impl.StudentDao;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet(name = "Servlet", value = "/Servlet")
public class addStudentServlet extends HttpServlet {
    StudentDao studentDao = new StudentDao();

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        //获取参数
//        System.out.println(request.getParameter("StudentNo"));
        String studentNo = request.getParameter("StudentNo");
        String loginPwd = request.getParameter("LoginPwd");
        String studentName = request.getParameter("StudentName");
        String sex = request.getParameter("sex");
        if(sex.equals("f")){
            sex = "女";
        }else {
            sex = "男";
        }
        String gradeId = request.getParameter("GradeId");
        String phone = request.getParameter("Phone");
        String address = request.getParameter("Address");
        String bornDate = request.getParameter("BornDate");
        String email = request.getParameter("Email");
        Student student = new Student(studentNo,loginPwd,studentName,sex,Integer.valueOf(gradeId),phone,address,bornDate,email);
        //插入数据
        studentDao.save(student);
//        System.out.println(update);
        //响应页面
        response.sendRedirect("Studentlist.jsp");

    }
}

删除:

package com.openlab.sevlet;

import com.openlab.dao.impl.StudentDao;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet(name = "Servlet2", value = "/Servlet2")
public class deleteStudentServlet extends HttpServlet {

StudentDao studentDao = new StudentDao();
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        //获取参数
        String studentNo = request.getParameter("stuid");
        //删除数据
        studentDao.delete(studentNo);
        //响应页面
        response.sendRedirect("Studentlist.jsp");

    }
}

修改:

package com.openlab.sevlet;

import com.openlab.beans.Student;
import com.openlab.dao.impl.StudentDao;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet(name = "updateStudentServlet", value = "/updateStudentServlet")
public class updateStudentServlet extends HttpServlet {
    StudentDao studentDao = new StudentDao();

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        //获取参数
        String studentNo = request.getParameter("StudentNo");
        String selecttext = request.getParameter("selecttext");
        Student student = studentDao.findById(studentNo);
        String selectid = request.getParameter("selectid");
        switch (selectid){
            case "1": student.setLoginPwd(selecttext);break;
            case "2":student.setStudentName(selecttext);break;
            case "3":student.setSex(selecttext);break;
            case "4":student.setGradeId(Integer.parseInt(selecttext));break;
            case "5":student.setPhone(selecttext);break;
            case "6":student.setAddress(selecttext);break;
            case "7":student.setBornDate(selecttext);break;
            case "8":student.setEmail(selecttext);break;
            default:
                System.out.println("输入id有误!!!");
        }
        //插入数据
        studentDao.update(student);
        //响应页面
        response.sendRedirect("Studentlist.jsp");
    }
}

前端:

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
     <!--默认首页-->
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
<!--建立映射-->
    <servlet>
        <servlet-name>addStudentServlet</servlet-name>
        <servlet-class>com.openlab.sevlet.addStudentServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>addStudentServlet</servlet-name>
        <url-pattern>/addstu.do</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>deleteStudentServlet</servlet-name>
        <servlet-class>com.openlab.sevlet.deleteStudentServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>deleteStudentServlet</servlet-name>
        <url-pattern>/delestu.do</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>updateStudentServlet</servlet-name>
        <servlet-class>com.openlab.sevlet.updateStudentServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>updateStudentServlet</servlet-name>
        <url-pattern>/updatestu.do</url-pattern>
    </servlet-mapping>
</web-app>

首页:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>首页</title>
  </head>
  <body>
  <p>登录</p>
  <p><a href="register.jsp">注册</a></p>
  <p><a href="Studentlist.jsp">数据展示</a></p>

  </body>
</html>

注册页面:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>注册</title>
</head>
<body>
<form action="addstu.do" method="post">
    <p>学号:<input type="text" name="StudentNo"></p>
    <p>密码:<input type="text" name="LoginPwd"></p>
    <p>姓名:<input type="text" name="StudentName"></p>
    <p>性别:<input type="radio" name="sex" value="m">男
            <input type="radio" name="sex" value="f">女
    </p>
    <p>年级:<input type="text" name="GradeId"></p>
    <p>电话:<input type="text" name="Phone"></p>
    <p>住址:<textarea rows="5" cols="50" name="Address"></textarea></p>
    <p>生日:<input type="text" name="BornDate"></p>
    <p>邮箱:<input type="text" name="Email"></p>
    <p><input type="submit" value="注册"/> </p>
</form>
</body>
</html>

数据展示:

<%@ page import="java.util.ArrayList" %>
<%@ page import="com.openlab.beans.Student" %>
<%@ page import="java.util.List" %>
<%@ page import="com.openlab.dao.impl.StudentDao" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>展示</title>
</head>
<body>
<%
    List<Student> list = new ArrayList<>();
    StudentDao studentDao = new StudentDao();
    List<Student> all = studentDao.getAll();
    for (Student student : all) {
        list.add(student);
    }
%>
<table border="1" width="600" cellspacing="0" style="color: red">
    <tr align="center">
        <td>学号</td>
        <td>密码</td>
        <td>姓名</td>
        <td>性别</td>
        <td>年级</td>
        <td>电话</td>
        <td>住址</td>
        <td>生日</td>
        <td>邮件</td>
        <td colspan="2">操作</td>
    </tr>
    <%
        for (Student student : list){
    %>
    <tr align="center">
        <td><%= student.getStudentNo()%></td>
        <td><%= student.getLoginPwd()%></td>
        <td><%= student.getStudentName()%></td>
        <td><%= student.getSex()%></td>
        <td><%= student.getGradeId()%></td>
        <td><%= student.getPhone()%></td>
        <td><%= student.getAddress()%></td>
        <td><%= student.getBornDate()%></td>
        <td><%= student.getEmail()%></td>
        <td>
            <a href="updatestu.jsp?stuid=<%=student.getStudentNo()%>">修改</a>
        </td>
        <td>
            <a href="delestu.do?stuid=<%=student.getStudentNo()%>">删除</a>
        </td>

    </tr>
    <%
        }
    %>
</table>
</body>
</html>

数据修改:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>更新</title>
</head>
<body>
<form action="updatestu.do?StudentNo=<%=request.getParameter("stuid")%>" method="post">
  <p>修改的学生学号:<%=request.getParameter("stuid")%></p>
  <p>请输入你要修改的字段<input type="text" name="selectid"></p>
  <p>请输入修改后的字段内容<input type="text" name="selecttext"></p>
  <p>密码:1</p>
  <p>姓名:2</p>
  <p>性别:3</p>
  <p>年级:4</p>
  <p>电话:5</p>
  <p>住址:6</p>
  <p>生日:7</p>
  <p>邮箱:8</p>
  <p><input type="submit" value="确认修改"/> </p>
</form>
</body>
</html>

效果展示:

首页(稍显简陋,可后期修饰):(登录还未实现)

数据如何展示到jsp页面,jsp、servlet,servlet,java,前端

 注册:

数据如何展示到jsp页面,jsp、servlet,servlet,java,前端

填写信息点击注册跳转到数据展示页面(孙悟空已添加):

数据如何展示到jsp页面,jsp、servlet,servlet,java,前端 点击修改:(修改zhaosi名字为赵四)

数据如何展示到jsp页面,jsp、servlet,servlet,java,前端

数据如何展示到jsp页面,jsp、servlet,servlet,java,前端 可以看到赵四修改成功; 

 点击删除:(点击删除”九点“,删除成功)

数据如何展示到jsp页面,jsp、servlet,servlet,java,前端文章来源地址https://www.toymoban.com/news/detail-764744.html

到了这里,关于jsp、servlet简单实现前后端交互对数据处理及展示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java-web:使用Axios代替JSP进行前后端分离与数据交互

    使用Servlet注解代替配置web.xml文件 在servlet3.0版本支持使用注解 1.创建一个Servlet响应axios发送的请求 JSP代替: 还原JSP到HTML: Axios:将ajax进行封装,简化JS发送异步请求的代码 Axios官网:https://www.axios-http.cn/ 下载axios.js文件到本地然后再HTML头文件引入或者直接引用网址的JS头文

    2024年02月06日
    浏览(43)
  • 一个简单的前后端交互——登录注册页面(升级版)idea代码篇(2:Maven:Javaweb项目)使用MyBatis:Mapper,servlet+Tomcat

    前言:本篇前后端交互实现代码 。详细项目搭建见上篇 先贴一张登录界面和包结构:   1.Mapper 2.pojo 3.util 4.web 5.Login.html 6.CSS 我的企业版过期了,不能演示跳转页面了。但测过没问题。

    2024年02月11日
    浏览(53)
  • servlet+JSP与SpringBoot+Vue项目交互——servlet请求SpringBoot接口

    servlet+JSP与SpringBoot+Vue项目交互——servlet请求SpringBoot接口 笔者前一段时间开发一个项目,使用的技术框架是servlet+JSP,现阶段开发的项目技术框架为SpringBoot+Vue,笔者现在需要输入servlet+JSP请求SpringBoot接口,获取接口相应,如何实现 1、若读者使用的是 Maven 作为构建工具,您

    2024年02月03日
    浏览(43)
  • 四、Django编写简单的接口实现前后端交互

    目录 四、Django编写简单的接口实现前后端交互 1.在urls.py中配置好接口路径和视图 2.在views.py中写对应的逻辑 3.在templates中添加对应的页面 这里以一个简单的根据id查询地址的功能为例 1.在urls.py中配置好接口路径和视图 2.在views.py中写对应的逻辑 3.在templates中添加对应的页面

    2024年02月07日
    浏览(60)
  • 【JavaEE】Servlet 中常用API有哪些?前后端交互方式有哪些?

      博主简介:想进大厂的打工人 博主主页: @xyk: 所属专栏: JavaEE初阶   目录 一、Servlet 运行原理 二、Servlet常用API 2.1 HttpServlet(抽象类) 2.1.1. init 方法 2.1.2 service方法 2.1.3 destroy方法 三、HttpServletRequest 3.1 HttpServletRequest常用方法演示 四、前端给后端传输数据的三种方式 4.

    2024年02月13日
    浏览(52)
  • JSP web入门:servlet的简单部署、创建与运行(2023版)

    目录 一、环境配置 1、java环境(安装JDK) 2、Tomcat环境 下载Tomcat Windows下启动Tomcat服务器 若出现中文乱码问题: 3、ide选择 二、使用各种ide创建web项目 1、eclipse (一)创建Dynamic Web Project (二)配置Tomcat服务器 (三)添加jar依赖包 (四)编写代码 (五)运行 2、IDEA (一)

    2024年02月07日
    浏览(43)
  • 实现vue项目和springboot项目前后端数据交互

    太高版本的win7不支持 这里安装node-v12.16.2-x64.msi,指定安装位置后直接按下一步就可以。 npm是node内置的工具 这里配置npm的镜像cnpm(提高下载速度,以后用到npm的命令都可以用cnpm命令替换)不指定cnpm版本使用如下命令会报错: 错误信息: 检查错误,参照网上的对应版本图,

    2024年04月25日
    浏览(37)
  • 利用servlet+Javabean+JSP 实现用户登陆案例

    ​ 完成用户登录功能,登录界面必须要有 账号、密码、验证码。 ​ 后端技术要求为 Servlet.登录验证通过数据库进行验证数据库操作使用原生JDBC,前端 htmljsp、css、js 都可以,不能使用框架。代码需满足 Java 编程规范,注释需要清晰明了。 登陆首页 验证码输入错误 登陆失败

    2024年02月04日
    浏览(46)
  • 使用JSP+Servlet+MySQL实现登录注册功能

    ✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: Java从入门到精通 ✨特色专栏: MySQL学习 🥭本文内容:使用JSP+Servlet+MySQL实现登录注册功能 📚个人知识库: Leo知识库,欢迎大家访问 大家好,

    2024年02月04日
    浏览(50)
  • python前后端简单交互

    前端: 后端:

    2024年02月04日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包