同时用到,网页,java程序,数据库的web小应用

具体实现功能:通过网页传输添加用户的请求,需要通过JDBC来向 MySql 添加一个用户数据

第一步,部署所有需要用到的工具

IDEA(2021.1),Tomcat(9),谷歌浏览器,MySql,jdk(17)

第二步,创建java项目,提前部署数据库

在 idea 中新建一个空的java项目:

我创建的数据库名为 learnbase,执行 use learnbase 命令可以使用该数据库

部署好需要连接的数据库表单,用户表 表名为 t_user,并添加好适当的数据(也可以不添加):

第三步,为项目添加一个java模块

添加一个普通的 java( jdk17)的模块即可

第四步,右键单击模块,将其变为 javaEE 的模块

右键点击后,选择Add Fra... Sup...,会弹出如下窗口

我们勾选 Web App... 后点击 OK

完成之后新增的 web 文件夹便是这个项目的根目录

第五步,将 tomcat 的 lib 文件夹中的 servlet.api.jar 和 jsp.api.jar 导入到 idea 中

file -> Project Stu... -> 找到刚刚创建的模块 -> dependen... -> + -> JAR or ... -> 找到自己安装的 tomcat 目录下的 lib -> 将servlet.api.jar,jsp.api.jar引入 -> apply

操作完毕后 jar 包会被导入到模块中:

第六步,在 src 下创建一个 servlet 文件夹,创建 servlet 实现类

第七步,完成代码的编写

ait + enter 实现 servlet 接口中的所有抽象方法

在 service 方法中编写业务代码,由于需要连接数据库使用JDBC,我们需要先引入 JDBC 相关的 jar 包,我们在 WEB-INF 目录下新建一个 lib 文件夹,将 jar 包复制到里面即可,不会 JDBC 的可以先看我之前写的文章:JDBC 教程

引入依赖后就可以开始编写代码了

package servlet;import javax.servlet.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;public class UserServlet implements Servlet {@Overridepublic void init(ServletConfig servletConfig) throws ServletException {}@Overridepublic ServletConfig getServletConfig() {return null;}@Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {Connection con = null;PreparedStatement ps = null;//建立连接try {con = DriverManager.getConnection("jdbc:mysql://localhost:3306/learnbase","root","1234");System.out.println("连接数据库成功了");//获取数据库操作对象ps = con.prepareStatement("insert into t_user values(hajimi,wow,66666)");//执行sqlps.executeUpdate();} catch (SQLException e) {e.printStackTrace();} finally {//释放资源if(ps != null){try {ps.close();} catch (SQLException throwables) {throwables.printStackTrace();}}if(con != null){try {con.close();} catch (SQLException throwables) {throwables.printStackTrace();}}}//加入用户完毕,响应给浏览器servletResponse.setContentType("text/html");PrintWriter out = servletResponse.getWriter();out.print("<p>恭喜你成功添加了一条用户</p>");}@Overridepublic String getServletInfo() {return null;}@Overridepublic void destroy() {}
}

第八步,在 xml 文件中完成申请路径和实现类的对接

双击打开WEB-INF文件夹中的 mxm 文件,编写对应的反射

<?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"><servlet><servlet-name>userServlet</servlet-name><!--设置访问路径所对应的实现类--><servlet-class>servlet.UserServlet</servlet-class></servlet><servlet-mapping><servlet-name>userServlet</servlet-name><!--设置浏览器的访问路径--><url-pattern>/a</url-pattern></servlet-mapping></web-app>

第九步:让 idea 关联 tomcat 服务器

点击右上角的 Add Config.... -> + -> Tomcat Server - Local  -> configure -> 选择本地的 Tomcat 路径 -> 

先别着急 OK,接下来是部署

点击 Deployment -> + -> Art... -> 在最下端给项目设置浏览器的访问名称

 配置完后就可以点击右上角的 debug 或 运行按钮启动 Tomcat 了(建议使用debug)

第十步:浏览器输入网址传递请求,完成数据的插入则表示运行成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/45496.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ADC 性能规格-静态性能- (2) - 偏移误差( offset error)和满标度增益误差(full scale gain error)

偏移误差(Offset error) 失调(Offset) 定义:失调是指ADC输出数字代码中零位与实际模拟输入零位之间的差异。简单来说,就是当输入信号为零时,ADC输出的数字代码并不一定是零,这个偏差就是失调。影响:失调会影响ADC的整体精度,因为它在整个输入范围内引入了一个固定的偏…

智慧水利引领行业转型:探讨智慧水利解决方案在水务管理、灾害预警及水资源保护中的前沿应用与挑战

本文关键词&#xff1a;智慧水利、智慧水利工程、智慧水利发展前景、智慧水利技术、智慧水利信息化系统、智慧水利解决方案、数字水利和智慧水利、数字水利工程、数字水利建设、数字水利概念、人水和协、智慧水库、智慧水库管理平台、智慧水库建设方案、智慧水库解决方案、智慧…

ExcelToDB2:批量导入Excel到IBM DB2数据库的自动化工具

ExcelToDB2&#xff1a;批量导入Excel到IBM DB2数据库的自动化工具 简介 ExcelToDB2是一个可以批量导入Excel到IBM DB2数据库的自动化工具。支持将xls/xlsx/xlsm/xlsb/csv/txt/xml格式的Excel文件导入到IBM DB2等多种原生及国产数据库。自动化是其最大的特点&#xff0c;因为它…

MVPT: Multitask Vision-Language Prompt Tuning

摘要 提示调整(Prompt Tuning)是一种针对特定任务的学习提示向量的调节&#xff0c;已成为一种数据高效和参数高效的方法&#xff0c;用于使大型预训练的视觉语言模型适应多个下游任务。然而&#xff0c;现有的方法通常是从头开始独立地学习每个任务的提示向量&#xff0c;从而…

docker-compose安装PolarDB-PG数据库

文章目录 一. Mac1.1 docker-compose.yaml1.2 部署1.3 卸载4. 连接 二. Win102.1 docker-compose.yaml2.2 部署2.3 卸载 参考官方文档 基于单机文件系统部署 一. Mac 1.1 docker-compose.yaml mkdir -p /Users/wanfei/docker-compose/polardb-pg && cd /Users/wanfei…

开放式耳机哪款性价比高?这五款超值精品不容错过

喜欢进行户外运动的小伙伴们&#xff0c;应该都很需要一款既可以匹配运动场景&#xff0c;又兼顾音质体验的无线蓝牙耳机吧。而开放式耳机拥有佩戴舒适牢固&#xff0c;不堵塞耳部&#xff0c;不影响外部声音传入耳部的优点&#xff0c;完全可以成为运动健身人士户外运动的好伴…

【JavaScript 算法】深度优先搜索:探索所有可能的路径

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 一、算法原理二、算法实现三、应用场景四、优化与扩展五、总结 深度优先搜索&#xff08;Depth-First Search, DFS&#xff09;是一种用于遍历或搜索图或树数据结构的算法。该算法尽可能深入图的分支&#xff0c;探索所有可…

Qt图片缩放显示

在Qt中&#xff0c;如果你想显示图片的像素或者对图片进行缩放显示&#xff0c;可以使用 QImage 类来处理图片数据&#xff0c;并使用 QLabel 或自定义的 QWidget 来显示图片&#xff0c;但是很难通过鼠标进行缩放显示 QGraphicsView可以实现此功能 在Qt中&#xff0c;QGraphi…

《Windows API每日一练》9.2.1 菜单

■和菜单有关的概念 窗口的菜单栏紧挨着标题栏下面显示。这个菜单栏有时叫作程序的“主菜单”或“顶级菜单“&#xff08;top-level menu&#xff09;。顶级菜单中的菜单项通常会激活下拉菜单&#xff08;drop-downmenu&#xff09;&#xff0c;也 叫“弹出菜单”&#xff08;…

流程图怎么做?有三种制作方法

流程图怎么做&#xff1f;在日常生活和工作中&#xff0c;流程图作为一种直观展示步骤、流程或决策路径的工具&#xff0c;扮演着不可或缺的角色。它不仅能够帮助我们理清思路、规划任务&#xff0c;还能促进团队协作与沟通。那么&#xff0c;如何高效地绘制流程图呢&#xff1…

2024年最新PyCharm保姆级安装教程

PyCharm是一款专为Python开发者设计的集成开发环境&#xff08;IDE&#xff09;&#xff0c;旨在帮助用户在使用Python语言开发时提高效率。 PyCharm作为一款强大的Python IDE&#xff0c;其主要作用在于提供了一整套可以帮助Python开发者提高开发效率的工具。这些工具包括但不…

2024 /7/14 H3U与MD600Modbus通讯应用指导

目录 步骤一&#xff1a;硬件接线 步骤二&#xff1a;变频器参数设置 步骤三&#xff1a;软件PLC程序配置 注意事项&#xff1a; 步骤一&#xff1a;硬件接线 PLC侧485端子 MD600变频器侧485端子 …

如何用码上飞解决企微上真实需求来接单赚米

在企微的工作台中有一个「需求模块」&#xff0c;所有的企微用户都可以在上面提出自己的需求。 例如张三说“在企微上我怎么样才可以把一个客户发的语音&#xff0c;转给另一个客户听&#xff1f;” 李四说“我需要一个能每天在工作群里定时发布信息并能自动修改日期的功能。…

HarmonyOS(44) Polyline模拟股票分时走势图

Polyline 前言Polyline初始化坐标集合开启定时器全部源码参考资料 前言 本篇博文使用折线组件Polyline来绘制股票实施走势图&#xff0c;通过本篇博客&#xff0c;你可以了解到State、定时器、Polyline的作用。同时可以加深对自定义组件的生命周期的理解。 Polyline 模拟股票…

Android11 SplashScreen 的显示和退出流程

应用的启动到显示到屏幕是需要一定的时间的&#xff0c;为了提升用户的体验&#xff0c;google加入了启动窗口&#xff0c;也就是SplashScreen SplashScreen显示流程 在应用的启动过程中&#xff0c;会调用到ActivityStarter的startActivityInner方法&#xff0c;具体可参考&a…

2024 China Joy 前瞻 | 腾讯网易发新作,网易数智携游戏前沿科技、创新产品以及独家礼盒,精彩不断!

今年上半年&#xff0c;CES、MWC和AWE三大国际科技展轮番轰炸&#xff0c;吸引全球科技爱好者的高度关注&#xff0c;无论是新潮的科技产品&#xff0c;还是对人工智能的探索&#xff0c;每一项展出的技术和产品都引起了市场的热议。而到了下半年&#xff0c;一年一度的China J…

AGE 在CTE表达式中使用Cypher

在使用CTE&#xff08;公共表达式&#xff09;时&#xff0c;没有对使用Cypher的限制。 查询&#xff1a; WITH graph_query as (SELECT *FROM cypher(graph_name, $$MATCH (n)RETURN n.name, n.age$$) as (name agtype, age agtype) ) SELECT * FROM graph_query;结果&#…

【Linux】进程7——查看进程

1.为什么进程管理这么重要呢&#xff1f; 这是因为&#xff1a; 首先&#xff0c;我们在操作系统时的各项任务其实都是经过某个PID来完成的&#xff08;包括你的bash环境&#xff09;&#xff0c;因此&#xff0c;能不能执行某项任务&#xff0c;就与该进程的权限有关了。再来…

centos切换python默认版本的最简单步骤(随手记)

centos8默认安装的python版本是python3.6&#xff0c;当需要更高版本的python3.9或3.11时&#xff0c;我们经常搜索到源码安装然后编写软连接。 [rootmanager Python-3.9.0]# python3 --version Python 3.6.8 [rootmanager Python-3.9.0]# pip3 --version pip 9.0.3 from /usr…

RAG理论:ES混合搜索BM25+kNN(cosine)以及归一化

接前一篇:RAG实践:ES混合搜索BM25+kNN(cosine) https://blog.csdn.net/Xin_101/article/details/140230948 本文主要讲解混合搜索相关理论以及计算推导过程, 包括BM25、kNN以及ES中使用混合搜索分数计算过程。 详细讲解: (1)ES中如何通过BM25计算关键词搜索分数; (2)…