当前位置: 首页 > news >正文

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 国内镜像仓库

镜像仓库目标 当我们未定义任何远程仓库时&#xff0c;使用 Maven 更新依赖时&#xff0c;其会去默认远程仓库中拉取&#xff0c;默认远程仓库 是国外地址&#xff0c;所以在国内访问特别慢&#xff0c;想提升访问速度&#xff0c;需要将国外地址换成国内地址 更换仓库地址的…...

day21 ● 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● 236. 二叉树的最近公共祖先

二叉搜索树的最小绝对差 二叉搜索树&#xff08;Binary Search Tree&#xff0c;简称 BST&#xff09;是一种特殊的二叉树&#xff0c;它的每个节点都满足以下条件&#xff1a; 左子树上所有节点的值均小于该节点的值&#xff1b;右子树上所有节点的值均大于该节点的值&#…...

大学计算机(软件类)专业推荐竞赛 / 证书 官网及赛事相关信息整理

大学计算机专业(软件)推荐竞赛 / 证书 官网及赛事相关信息 一、算法类(丰富简历)&#xff1a; 1、ACM国际大学生程序设计竞赛&#xff1a; 官网&#xff1a;https://icpc.global/ 国内&#xff1a;http://icpc.pku.edu.cn/index.htm 报名方式&#xff1a;区域预赛一般每年9-1…...

Metasploit入门到高级【第九章】

预计更新第一章&#xff1a;Metasploit 简介 Metasploit 是什么Metasploit 的历史和发展Metasploit 的组成部分 第二章&#xff1a;Kali Linux 入门 Kali Linux 简介Kali Linux 安装和配置常用命令和工具介绍 第三章&#xff1a;Metasploit 基础 Metasploit 的基本概念Met…...

JDK之8后: 协程? 虚拟线程!!!

特性官方文档: https://openjdk.org/jeps/436 Java协程 近三十年来&#xff0c;Java 开发人员一直依赖线程作为并发服务器应用程序的构建块。每个方法中的每个语句都在线程内执行&#xff0c;并且由于 Java 是多线程的&#xff0c;因此多个执行线程同时发生。线程是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推荐期刊和会议分享(人工智能)

前 言国内高等院校研究生及博士毕业条件需要发表高水平期刊或者顶会&#xff08;清北上交等重点学校毕业要求为至少发一篇顶会&#xff09;&#xff0c;很多同学私信问到一级学会的会议论文怎么找、是什么&#xff0c;比如前段时间放榜的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…...

交换瓶子

交换瓶子 贡献者&#xff1a;programmer_ada 有N个瓶子&#xff0c;编号 1 ~ N&#xff0c;放在架子上。 比如有5个瓶子&#xff1a; 2 1 3 5 4 要求每次拿起2个瓶子&#xff0c;交换它们的位置。 经过若干次后&#xff0c;使得瓶子的序号为&#xff1a; 1 2 3 4 5 对于这么…...

二、Docker安装、启动、卸载、示例

Docker 支持 CentOS 6 及以后的版本&#xff0c;可以直接通过yum进行安装&#xff1a; 使用流程&#xff1a;启动主机 – 启动Docker服务 – 下载容器镜像 – 启动镜像得一个到容器 – 进入容器使用我们想要的程序 主机一般是Linux、Utuban 以下主机系统以CentOS7为例子&#…...

开心档之C++ STL 教程

C STL 教程 目录 C STL 教程 实例 在前面的章节中&#xff0c;我们已经学习了 C 模板的概念。C STL&#xff08;标准模板库&#xff09;是一套功能强大的 C 模板类&#xff0c;提供了通用的模板类和函数&#xff0c;这些模板类和函数可以实现多种流行和常用的算法和数据结构…...

Thread 类的基本用法

文章目录一、线程创建1.1 Thread的常见构造方法2.1 创建线程二、线程中断2.1 Thread的几个常见属性2.2 中断线程三、线程等待四、线程休眠五、获取线程实例一、线程创建 1.1 Thread的常见构造方法 方法说明Thread()创建线程对象Thread(Runnable target)使用Runnable对象创建线…...

2023.3.28 天梯赛训练赛补题(病毒溯源 , 龙龙送外卖 , 红色警报)

文章目录1.病毒溯源问题&#xff1a;求树的最长链长度和字典序最小的最长链思路&#xff1a;2.龙龙送外卖思路&#xff1a;3.红色警报&#xff1a;思路&#xff1a;1.病毒溯源 问题&#xff1a;求树的最长链长度和字典序最小的最长链 思路&#xff1a; 一开始用 bfs 做的 &a…...

917. 仅仅反转字母

917. 仅仅反转字母https://leetcode.cn/problems/reverse-only-letters/ 难度简单189 给你一个字符串 s &#xff0c;根据下述规则反转字符串&#xff1a; 所有非英文字母保留在原有位置。所有英文字母&#xff08;小写或大写&#xff09;位置反转。 返回反转后的 s 。 示例…...

Linux-Git

一、总论 1.1 写在前面的话 ​ 这已经是我第三遍学Git相关操作了&#xff0c;可以说这个玩意是真的狗&#xff0c;因为确实用不到&#xff0c;不知道下个学期会不会用到&#xff0c;直到现在我刚刚学完&#xff0c;处于知识水平的巅峰&#xff0c;知道Git的具体功能&#xff…...

leetcode:2273. 移除字母异位词后的结果数组(python3解法)

难度&#xff1a;简单 给你一个下标从 0 开始的字符串 words &#xff0c;其中 words[i] 由小写英文字符组成。 在一步操作中&#xff0c;需要选出任一下标 i &#xff0c;从 words 中 删除 words[i] 。其中下标 i 需要同时满足下述两个条件&#xff1a; 0 < i < words.l…...

基于Python长时间序列遥感数据处理及在全球变化、物候提取、植被变绿与固碳分析、生物量估算与趋势分析等领域中的应用

植被是陆地生态系统中最重要的组分之一&#xff0c;也是对气候变化最敏感的组分&#xff0c;其在全球变化过程中起着重要作用&#xff0c;能够指示自然环境中的大气、水、土壤等成分的变化&#xff0c;其年际和季节性变化可以作为地球气候变化的重要指标。此外&#xff0c;由于…...

4.4---Spring框架之Spring事务(复习版本)

Spring事务的本质其实就是数据库对事务的支持&#xff0c;没有数据库的事务支持&#xff0c;spring是无法提供事务功能的。 Spring只提供统一事务管理接口&#xff0c;具体实现都是由各数据库自己实现&#xff0c;数据库事务的提交和回滚是通过 redo log 和 undo log实现的。 S…...

IP-Guard是否支持禁止客户端电脑卸载指定软件?

哪些浏览器支持设置窗口水印? 支持的浏览器有:搜狗浏览器、360安全浏览器、360极速浏览器、qq浏览器、谷歌浏览器、ie浏览器、edge浏览器 注意: 1.目标URL窗口水印不支持Firefox浏览器和猎豹浏览器 2.搜狗浏览器在兼容模式下,目标URL窗口水印不生效 3.部分浏览器(360安全…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值&#xff0c;最大值左侧的数值严格单调递增&#xff0c;最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值&#xff0c;最小值左侧的数值严格单调递减&#xff0c;最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案

在大数据时代&#xff0c;海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构&#xff0c;在处理大规模数据抓取任务时展现出强大的能力。然而&#xff0c;随着业务规模的不断扩大和数据抓取需求的日益复杂&#xff0c;传统…...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!

本文介绍了一种名为AnomalyAny的创新框架&#xff0c;该方法利用Stable Diffusion的强大生成能力&#xff0c;仅需单个正常样本和文本描述&#xff0c;即可生成逼真且多样化的异常样本&#xff0c;有效解决了视觉异常检测中异常样本稀缺的难题&#xff0c;为工业质检、医疗影像…...

抽象类和接口(全)

一、抽象类 1.概念&#xff1a;如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象&#xff0c;这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法&#xff0c;包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中&#xff0c;⼀个类如果被 abs…...