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安全…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
