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

news2024/9/21 4:39:22

具体实现功能:通过网页传输添加用户的请求,需要通过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 {

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public 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)");
            //执行sql
            ps.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>");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public 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.coloradmin.cn/o/1923384.html

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

相关文章

keil无法读取jlink的一个原因——使用jlink的Vout引脚给芯片供电

keil无法读取jlink的一个原因——使用jlink的Vout引脚给芯片供电 问题背景问题排查 问题背景 在使用 J-Link 对 GD32F470VGT6 进行程序烧录时&#xff0c;遇到下载失败且 J-Link 未能识别设备的问题。 通过检查设备管理器确认 J-Link 驱动已正确安装。 问题排查 对照jil…

免开steam 脱离steam 进行游戏的小工具

链接&#xff1a;https://pan.baidu.com/s/1k2C8b4jEqKIGLtLZp8YCgA?pwd6666 提取码&#xff1a;6666 我们只需选择游戏根目录 然后输入AppID 点击底部按钮 进行就可以了 关于AppID在&#xff1a;

OceanBase:引领下一代分布式数据库技术的前沿

OceanBase的基本概念 定义和特点 OceanBase是一款由蚂蚁金服开发的分布式关系数据库系统&#xff0c;旨在提供高性能、高可用性和强一致性的数据库服务。它结合了关系数据库和分布式系统的优势&#xff0c;适用于大规模数据处理和高并发业务场景。其核心特点包括&#xff1a; …

3分钟搞定Kali Linux安装,超详细教程(附安装包)

**今天写一写Kali渗透中的第一个知识点&#xff1a;Kali安装配置。 俗话说得好&#xff1a;kali学得好&#xff0c;牢饭吃到饱&#xff01;** 相信很多同学在刚接触网络安全的时候&#xff0c;都听过kali linux的大名&#xff0c;那到底什么是kali&#xff0c;初学者用kali能做…

请编写程序,利用malloc函数开辟动态存储单元,存放输入的三个整数,然后按从小到大的顺序输出这三个数

int main() {int* nums;nums (int*)malloc(3 * sizeof(int));if (nums NULL){perror("error:");exit(1);}printf("请输入三个整数\n");int i 0;for (i 0; i < 3; i){scanf("%d", &nums[i]);}printf("请输入的三个整数为\n"…

控制单/多用户权限

多用户权限控制 Unix/类Unix是一个多用户的操作系统&#xff0c;拥有众多的发行版系统。单一用户可以使用chmod命令修改可读可写可执行权限。多用户使用chmod就显得力不从心了。多用户操作权限则使用ACL规则(Access Control List)&#xff0c;即访问控制列表&#xff0c;ACL规则…

数据库的学习(6)

题目&#xff1a; 数据准备创建两张表:部门(dept)和员工(emp)&#xff0c;并插入数据&#xff0c;代码如下create table dept(dept_id int primary key auto_increment comment 部门编号,dept_name char(20)comment部门名称 ); insert into dept (dept_name) values(销售部),(财…

新手-前端生态

文章目录 新手的前端生态一、概念的理解1、脚手架2、组件 二、基础知识1、HTML2、css3、JavaScript 三、主流框架vue3框架 四、 工具&#xff08;特定框架&#xff09;1、uinapp 五、组件库&#xff08;&#xff09;1、uView如何在哪项目中导入uView 六、应用&#xff08;各种应…

Wavlink 路由器攻击链

本文仅用于技术研究学习&#xff0c;请遵守相关法律&#xff0c;禁止使用本文所提及的相关技术开展非法攻击行为&#xff0c;由于传播、利用本文所提供的信息而造成任何不良后果及损失&#xff0c;与本账号及作者无关。 本文来源无问社区&#xff0c;更多实战内容&#xff0c;…

手把手教你打数学建模国赛!!!第一天软件准备篇

第一天软件准备 MATLAB MATLAB&#xff08;Matrix Laboratory&#xff09;是一种强大的数值计算和科学编程软件。它提供了丰富的数学函数和工具&#xff0c;用于数据分析、算法开发、信号处理、图像处理、控制系统设计、仿真等应用领域。 MATLAB具有直观的语法&#xff0c;使…

SAP HCM 定额扣减不生效问题,从定位错误到玩转配置

导读 INTRODUCTION 定额扣减:今天遇到一个很奇怪的问题,就是年假不会扣减年假定额的问题,认真去查看相关配置,但是一直没找到为什么不触发扣减规则,这次出现的问题还是触发规则的问题,触发规则主要这么几类、星期、假期类、日类型、期间工作日程表的技术类、日工作计划类…

用友NC Cloud blobRefClassSearch FastJson反序列化RCE漏洞复现

0x01 产品简介 用友 NC Cloud 是一种商业级的企业资源规划云平台,为企业提供全面的管理解决方案,包括财务管理、采购管理、销售管理、人力资源管理等功能,实现企业的数字化转型和业务流程优化。 0x02 漏洞概述 用友 NC Cloud blobRefClassSearch 接口处存在FastJson反序列…

Apache AGE 聚合函数

简介 一般来说&#xff0c;聚合函数 aggr(expr) 会处理每个聚合键在传入记录中找到的所有匹配行&#xff08;键使用等价性进行比较&#xff09;。 在常规聚合&#xff08;即形式为 aggr(expr) 的情况下&#xff09;&#xff0c;聚合值列表是候选值列表&#xff0c;其中所有空…

学生护眼用什么样的台灯比较好?推荐学生护眼台灯十大排名

台灯成为每家每户不可缺少的家具产品&#xff0c;更是成为学生认可的学习搭子。而设计师设计出多功能的台灯&#xff0c;既能营造适宜的环境&#xff0c;也在为眼睛这个器官提供一个优质舒适的环境。对于学生而言&#xff0c; 学生护眼用什么样的台灯比较好&#xff1f;我们处于…

【经典面试题】是否形成有环链表

1.环形链表oj 2. oj解法 利用快慢指针&#xff1a; /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/typedef struct ListNode ListNode; bool hasCycle(struct ListNode *head) {ListNode* slow head, *fast…

jenkins系列-01.docker安装jenkins

进入官网&#xff1a;https://www.jenkins.io/ 使用LONG term support版本&#xff1a;2.387.1 docker pull jenkins/jenkins:2.387.1-lts 拉取镜像&#xff1a; 编写docker-compose文件&#xff1a; 启动jenkins: 查看启动日志&#xff1a; 默认生成的密码&#xff1a;…

Go-知识测试-测试参数

Go-知识测试-测试参数 1. -args2. -json3. -o4. -bench5. -benchtime6. -cpu7. -count8. -failfast9. -list10. -parallel11. -run12. -timeout13. -v14 -benchmem 1. -args 指示go test 把-args 后面的参数带到测试中去。具体的测试函数会根据此参数来控制测试流程。 -args后…

c++ - 多态

文章目录 一、多态的概念二、多态使用三、多态的原理 一、多态的概念 1、概念&#xff1a; 多态就是具有多种形态&#xff0c;可以理解为同一个行为不同对象去完成表现出不同的状态&#xff0c;如&#xff1a; 二、多态使用 1、构成多态的条件 &#xff08;1&#xff09;派…

从线性变换的视角理解矩阵范数与行列式

在线性代数这一数学分支中&#xff0c;矩阵作为描述线性变换的工具&#xff0c;扮演着至关重要的角色。矩阵的范数和行列式是两个核心概念&#xff0c;它们分别从不同的角度揭示了矩阵及其所代表的线性变换的性质。本文旨在从线性变换的视角出发&#xff0c;探讨矩阵范数与行列…

C#小结:未能找到类型或命名空间名“xxx”(是否缺少 using 指令或程序集引用?)

方案一&#xff1a;移除这些失效的引用&#xff0c;下载对应版本的dll&#xff0c;重新添加引用 方案二&#xff1a;项目右键属性-调整目标框架版本&#xff08;一般是降低版本&#xff09; 方案三&#xff1a;调整编译顺序&#xff1a; 项目A&#xff1a;引用1、引用2 &…