web + servlet + jdbc mysql 实现简单的表单管理界面
目录
- 数据库创建
- 数据库连接
- servlet创建,这里注意一下我的数据库我自己改了一下名字lhx
- 网页html
- 运行
- 文件目录展示
首先我们准备好开发使用的工具以及配置
idea2020
tomcat8.5 创建javaweb参考idea编译Tomcat详细步骤
IDEA通过JDBC连接数据库请参考jdbc连接数据库
需要登陆注册界面请参考web + servlet + jdbc mysql 实现简单的登陆注册界面
数据库创建
首先创建数据库temp

创建新的表单temperature


或者使用建表语句
CREATE TABLE `temp`.`temperature` (`id` INT NOT NULL AUTO_INCREMENT,`name` VARCHAR(30) NOT NULL,`telephone` CHAR(11) NOT NULL,`isContacted` TINYINT(1) NOT NULL,`data` DATE NOT NULL,`temp` DECIMAL(3) NOT NULL,PRIMARY KEY (`id`));
插入数据

insert into temp.temperature value(null,'李原浩','123456','0','2020-2-28','36.5');
insert into temp.temperature value(null,'邢楚','123456','0','2020-2-28','36.2');
insert into temp.temperature value(null,'江哥','123456','0','2020-2-28','36.8');
SELECT * FROM temp.temperature;
数据库连接
连接mysql步骤请看IDEA通过JDBC连接数据库请参考jdbc连接数据库
创建一个测试类
import java.sql.*;
public class test {public static void main(String[] args) throws Exception {Class.forName("com.mysql.cj.jdbc.Driver");//注册驱动//连接数据库要处理对象我这里是lhx,这个是个数据库大家可以在mysql创建Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/temp", "root", "123456");PreparedStatement prep = conn.prepareStatement("SELECT * FROM temperature;");prep.execute();ResultSet rs = prep.getResultSet();while (rs.next()) {System.out.println(rs.getString("id")+rs.getString("name")+rs.getString("telephone")+rs.getString("isContacted")+rs.getString("data")+rs.getString("temp"));}conn.close();}
}

servlet创建,这里注意一下我的数据库我自己改了一下名字lhx
连接数据库,传入网页数据代码如下
package Servlet;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;@WebServlet("/Servlet")
public class Servlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("GBK");response.setCharacterEncoding("GBK");response.setHeader("content-tupe","test/html;GBK");PrintWriter p = response.getWriter();Connection con = null;Statement st = null;ResultSet rs = null;try {Class.forName("com.mysql.jdbc.Driver");//注册驱动Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/lhx", "root", "123456");PreparedStatement prep = conn.prepareStatement("SELECT * FROM temperature;");prep.execute();rs = prep.getResultSet();p.print("<table border='1px' cellpadding='10' cellspacing='0'>");p.print("<tr>");p.print("<th>序号</th>");p.print("<th>姓名</th>");p.print("<th>电话</th>");p.print("<th>14天内是否有湖北接触史</th>");p.print("<th>日期</th>");p.print("<th>体温</th>");p.print("</tr>");while (rs.next()) {//测试System.out.println(rs.getString("id") +rs.getString("name") +rs.getString("telephone") +rs.getString("isContacted") +rs.getString("data") +rs.getString("temp"));p.print("<tr>");p.print("<td>"+rs.getInt("id")+"</td>");p.print("<td>"+rs.getString("name")+"</td>");p.print("<td>"+rs.getString("telephone")+"</td>");if(rs.getInt("isContacted")==0){ p.print("<td style='text-align:center'>否</td>");}else{ p.print("<td style='text-align:center'>是</td>");}p.print("<td>"+rs.getString("data")+"</td>");p.print("<td>"+rs.getString("temp")+"</td>");p.print("</tr>");}p.print("</table><br/>");}catch(Exception e){e.printStackTrace();}finally {if (rs!=null){try{rs.close();}catch (SQLException e) {}}if (st!=null){try{rs.close();}catch (SQLException e) {}}if (con!=null){try{rs.close();}catch (SQLException e) {}}}p.print("<input type='button' value=' 添加新数据'" +"οnclick='location.href=\"index.html\"' />");}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request,response);}
}
配置xml
<servlet-mapping><servlet-name>Servlet</servlet-name><url-pattern>/servlet/Servlet</url-pattern></servlet-mapping><servlet-mapping><servlet-name>listServlet</servlet-name><url-pattern>/servlet/ListServlet</url-pattern></servlet-mapping>
Add_Servlet
package temp;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;@WebServlet("/AddServlet")
public class AddServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("UTF-8");String name = request.getParameter("name");String telephone = request.getParameter("telephone");String isContacted = request.getParameter("isContacted");String temperature = request.getParameter("temperature");int isCon = 0;if (isContacted != null) {Integer.parseInt(isContacted);}double temp = 0;if (temperature != null) {temp = Double.parseDouble(temperature);}Connection con = null;PreparedStatement pst = null;ResultSet rs = null;
//
//try {Class.forName("com.mysql.jdbc.Driver");Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/lhx", "root", "123456");String sql = "insert into temperaturevalues(null,?,?,?,?,?)";pst = connection.prepareStatement(sql);pst.setString(1, name);pst.setString(2, telephone);pst.setInt(3, isCon);pst.setDate(4, new java.sql.Date(new java.util.Date().getTime()));pst.setDouble(5, temp);pst.executeUpdate();} catch (Exception e) {e.printStackTrace();} finally {if (rs != null) {try {rs.close();} catch (Exception e) {}}if (pst != null) {try {pst.close();} catch (Exception e) {}}if (con != null) {try {con.close();} catch (Exception e) {}}}response.sendRedirect("TempServlet");}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request,response);}
}配置
<servlet><servlet-name>servlet</servlet-name><servlet-class>Servlet.Servlet</servlet-class>
</servlet>
<servlet><servlet-name>Add_Servlet</servlet-name><servlet-class>Servlet.Add_Servlet</servlet-class>
</servlet><servlet-mapping><servlet-name>servlet</servlet-name><url-pattern>/Servlet/Servlet</url-pattern>
</servlet-mapping>
<servlet-mapping><servlet-name>Add_Servlet</servlet-name><url-pattern>/Servlet/Add_Servlet</url-pattern>
</servlet-mapping>
网页html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>体温填报</title>
</head>
<body>
<h3>体温平安报</h3>
<form method="post" action="Add_Servlet">姓名:<input type="text" name="name" /><br/><br/>电话:<input type="text" name="telephone" /><br/><br/>最近14天是否有湖北接触史:<br/>没有:<input type="radio" name="isContacted" value="0" checked/>有:<input type="radio" name="isContacted" value="1"/><br/><br/>体温:<input type="text" name="temperature" /><br/><br/><input type="submit" value=" 上报 " />
</form>
</body>
</html>

运行



文件目录展示

相关文章:
web + servlet + jdbc mysql 实现简单的表单管理界面
目录数据库创建数据库连接servlet创建,这里注意一下我的数据库我自己改了一下名字lhx网页html运行文件目录展示首先我们准备好开发使用的工具以及配置 idea2020 tomcat8.5 创建javaweb参考idea编译Tomcat详细步骤 IDEA通过JDBC连接数据库请参考jdbc连接数据库 需要登陆注册界面…...
Maven 国内镜像仓库
镜像仓库目标 当我们未定义任何远程仓库时,使用 Maven 更新依赖时,其会去默认远程仓库中拉取,默认远程仓库 是国外地址,所以在国内访问特别慢,想提升访问速度,需要将国外地址换成国内地址 更换仓库地址的…...
day21 ● 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● 236. 二叉树的最近公共祖先
二叉搜索树的最小绝对差 二叉搜索树(Binary Search Tree,简称 BST)是一种特殊的二叉树,它的每个节点都满足以下条件: 左子树上所有节点的值均小于该节点的值;右子树上所有节点的值均大于该节点的值&#…...
大学计算机(软件类)专业推荐竞赛 / 证书 官网及赛事相关信息整理
大学计算机专业(软件)推荐竞赛 / 证书 官网及赛事相关信息 一、算法类(丰富简历): 1、ACM国际大学生程序设计竞赛: 官网:https://icpc.global/ 国内:http://icpc.pku.edu.cn/index.htm 报名方式:区域预赛一般每年9-1…...
Metasploit入门到高级【第九章】
预计更新第一章:Metasploit 简介 Metasploit 是什么Metasploit 的历史和发展Metasploit 的组成部分 第二章:Kali Linux 入门 Kali Linux 简介Kali Linux 安装和配置常用命令和工具介绍 第三章:Metasploit 基础 Metasploit 的基本概念Met…...
JDK之8后: 协程? 虚拟线程!!!
特性官方文档: https://openjdk.org/jeps/436 Java协程 近三十年来,Java 开发人员一直依赖线程作为并发服务器应用程序的构建块。每个方法中的每个语句都在线程内执行,并且由于 Java 是多线程的,因此多个执行线程同时发生。线程是Java的并发…...
体验 jeecg
体验 jeecg官网地址事前准备安装升级 node 和 npm 版本验证安装安装 pnpm clidocker 启动 MySQLdocker 启动 redisgit clone 项目启动JAVA项目 jeecg-boot启动Vue3项目 jeecgboot-vue3官网地址 http://www.jeecg.com/ 事前准备 (1) 为了回避Could not find artifact com.mic…...
投稿指南【NO.13】计算机学会CCF推荐期刊和会议分享(人工智能)
前 言国内高等院校研究生及博士毕业条件需要发表高水平期刊或者顶会(清北上交等重点学校毕业要求为至少发一篇顶会),很多同学私信问到一级学会的会议论文怎么找、是什么,比如前段时间放榜的CVPR论文就是人工智能领域的顶会国际会议…...
一份sql笔试
1、 select substr(time,1,10),count(order_id),count(distinct passenger_id) from order where substr(time,1,7)2023-08 group by substr(time,1,10) order by substr(time,1,10);2、 select city_id from (select * from order where substr(time,1,7) 2022-08) t1 left j…...
交换瓶子
交换瓶子 贡献者:programmer_ada 有N个瓶子,编号 1 ~ N,放在架子上。 比如有5个瓶子: 2 1 3 5 4 要求每次拿起2个瓶子,交换它们的位置。 经过若干次后,使得瓶子的序号为: 1 2 3 4 5 对于这么…...
二、Docker安装、启动、卸载、示例
Docker 支持 CentOS 6 及以后的版本,可以直接通过yum进行安装: 使用流程:启动主机 – 启动Docker服务 – 下载容器镜像 – 启动镜像得一个到容器 – 进入容器使用我们想要的程序 主机一般是Linux、Utuban 以下主机系统以CentOS7为例子&#…...
开心档之C++ STL 教程
C STL 教程 目录 C STL 教程 实例 在前面的章节中,我们已经学习了 C 模板的概念。C STL(标准模板库)是一套功能强大的 C 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构…...
Thread 类的基本用法
文章目录一、线程创建1.1 Thread的常见构造方法2.1 创建线程二、线程中断2.1 Thread的几个常见属性2.2 中断线程三、线程等待四、线程休眠五、获取线程实例一、线程创建 1.1 Thread的常见构造方法 方法说明Thread()创建线程对象Thread(Runnable target)使用Runnable对象创建线…...
2023.3.28 天梯赛训练赛补题(病毒溯源 , 龙龙送外卖 , 红色警报)
文章目录1.病毒溯源问题:求树的最长链长度和字典序最小的最长链思路:2.龙龙送外卖思路:3.红色警报:思路:1.病毒溯源 问题:求树的最长链长度和字典序最小的最长链 思路: 一开始用 bfs 做的 &a…...
917. 仅仅反转字母
917. 仅仅反转字母https://leetcode.cn/problems/reverse-only-letters/ 难度简单189 给你一个字符串 s ,根据下述规则反转字符串: 所有非英文字母保留在原有位置。所有英文字母(小写或大写)位置反转。 返回反转后的 s 。 示例…...
Linux-Git
一、总论 1.1 写在前面的话 这已经是我第三遍学Git相关操作了,可以说这个玩意是真的狗,因为确实用不到,不知道下个学期会不会用到,直到现在我刚刚学完,处于知识水平的巅峰,知道Git的具体功能ÿ…...
leetcode:2273. 移除字母异位词后的结果数组(python3解法)
难度:简单 给你一个下标从 0 开始的字符串 words ,其中 words[i] 由小写英文字符组成。 在一步操作中,需要选出任一下标 i ,从 words 中 删除 words[i] 。其中下标 i 需要同时满足下述两个条件: 0 < i < words.l…...
基于Python长时间序列遥感数据处理及在全球变化、物候提取、植被变绿与固碳分析、生物量估算与趋势分析等领域中的应用
植被是陆地生态系统中最重要的组分之一,也是对气候变化最敏感的组分,其在全球变化过程中起着重要作用,能够指示自然环境中的大气、水、土壤等成分的变化,其年际和季节性变化可以作为地球气候变化的重要指标。此外,由于…...
4.4---Spring框架之Spring事务(复习版本)
Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。 Spring只提供统一事务管理接口,具体实现都是由各数据库自己实现,数据库事务的提交和回滚是通过 redo log 和 undo log实现的。 S…...
IP-Guard是否支持禁止客户端电脑卸载指定软件?
哪些浏览器支持设置窗口水印? 支持的浏览器有:搜狗浏览器、360安全浏览器、360极速浏览器、qq浏览器、谷歌浏览器、ie浏览器、edge浏览器 注意: 1.目标URL窗口水印不支持Firefox浏览器和猎豹浏览器 2.搜狗浏览器在兼容模式下,目标URL窗口水印不生效 3.部分浏览器(360安全…...
springboot+vue基于web的针对老年人的景区订票系统的设计与实现
目录系统功能模块划分关键技术实现特殊考量因素项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作系统功能模块划分 用户端功能(老年人友好设计) 注册登录:支持手机号验证、子女代注册、大字体…...
卷积神经网络原理与Baichuan-M2-32B医疗图像识别实战
卷积神经网络原理与Baichuan-M2-32B医疗图像识别实战 1. 引言 医疗图像识别一直是人工智能领域的重要应用方向。传统的图像识别方法往往需要大量的人工特征工程,而卷积神经网络的出现彻底改变了这一局面。今天,我们将深入探讨卷积神经网络的核心原理&a…...
CVPR 2026 手物交互数据生成新SOTA
Project Page: https://gasaiyu.github.io/PAM.github.io/01▪ 在只给定初始姿态、目标姿态和不含外观的物体几何信息的输入下,如何直接生成逼真的手物交互(HOI)视频?▪ 现有方法存在一系列问题:姿态合成方法只能预测 …...
树莓派+SocketCAN实战:手把手教你用CanFestival控制伺服电机(附完整配置文件)
树莓派SocketCAN实战:手把手教你用CanFestival控制伺服电机(附完整配置文件) 在工业自动化和机器人控制领域,CANopen协议因其高可靠性和实时性成为伺服电机控制的首选方案。本文将带你用树莓派这一低成本硬件平台,结合…...
王者荣耀进阶指南:如何用这个HTML5模拟器测试不同出装对英雄属性的影响
王者荣耀进阶指南:如何用HTML5模拟器优化英雄出装策略 在MOBA游戏的战术体系中,装备选择往往决定着团战的胜负走向。传统依靠经验积累的配装方式存在试错成本高、数据感知模糊等痛点,而现代HTML5技术构建的模拟器为玩家提供了可视化、即时反馈…...
提升90%效率:OpenCore EFI自动化配置工具OpCore-Simplify实战指南
提升90%效率:OpenCore EFI自动化配置工具OpCore-Simplify实战指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 副标题:面向…...
从RS-485到MQTT:手把手教你为BMS Modbus设备搭建物联网网关(Node-RED实战)
从RS-485到MQTT:手把手教你为BMS Modbus设备搭建物联网网关(Node-RED实战) 当工业现场的BMS设备还在使用Modbus-RTU协议时,如何让这些"信息孤岛"融入现代物联网架构?这个问题困扰着许多能源管理系统工程师。…...
Bud错误处理终极指南:构建健壮Web应用的10个最佳实践
Bud错误处理终极指南:构建健壮Web应用的10个最佳实践 【免费下载链接】bud The Full-Stack Web Framework for Go 项目地址: https://gitcode.com/gh_mirrors/bu/bud Bud作为Go语言的全栈Web框架,其错误处理机制直接影响应用的稳定性和用户体验。…...
媒体服务器功能解锁:打造专业级家庭媒体中心的完整方案
媒体服务器功能解锁:打造专业级家庭媒体中心的完整方案 【免费下载链接】emby-unlocked Emby with the premium Emby Premiere features unlocked. 项目地址: https://gitcode.com/gh_mirrors/em/emby-unlocked 在数字化娱乐时代,一个功能完善的媒…...
YOLO X Layout案例集:10类典型文档(发票/简历/论文/合同/说明书)Layout识别效果汇总
YOLO X Layout案例集:10类典型文档Layout识别效果汇总 获取更多AI镜像 想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署…...
