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

idea+tomcat+mysql 从零开始部署Javaweb项目(保姆级别)

文章目录

    • 新建一个项目
    • 添加web支持
    • 配置tomcat
    • 优化tomcat的部署
    • 运行tomcat
    • idea数据库连接
    • java连接数据库

新建一个项目

  1. new project;
  2. Java;
  3. 选择jdk的版本;
  4. next;
  5. next;
  6. 填写项目名字,选择保存的路径;
  7. Finish;

对于新建好的项目,第一个是项目的名称,.iml是项目的标识文件,标识一个独立的项目;

在这里插入图片描述

在这里插入图片描述

添加web支持

  1. 点击项目的名称,右键;
  2. Add Frameworks Support;
  3. web application;
  4. ok;

此时项目下多了一个web的目录,这是整个web项目的根目录。

在这里插入图片描述

整个项目结构如下:

  1. test表示项目的名称;
  2. src用来存储代码;
  3. web是web项目的根目录,其中包含一个WEB-INF和index.jsp,其中index.jsp是项目启动后默认的进入的页面;
  4. test.iml是整个项目的标识文件。

在这里插入图片描述

配置tomcat

前提是成功下载好tomcat

  1. add configuration;

  2. +号;

  3. 选择tomcat server 下的local。
    在这里插入图片描述

  4. configure,选择tomcat下载的路径;

  5. 选择jdk依赖,一般默认就好;

  6. fix——>ok。
    在这里插入图片描述
    最后点击ok就成功部署tomcat了。

优化tomcat的部署

【还是tomcat的配置中】更新的操作可以选择update classes and resources,这样就不需要代码有更新的时候一直都重启,重启太慢,只需要刷新就好。

在这里插入图片描述

  1. 点击file;
  2. 选择project structure;
  3. modules;
  4. dependencies;
  5. +号;
  6. library;
  7. 选择tomcat的依赖包;
  8. add selected ——>ok;

添加tomcat的依赖包,避免有的时候导包报错。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

运行tomcat

点下面的标识就可以。
在这里插入图片描述

运行成功后会显示以下页面。

这里有一个需要注意的点就是网页启动后的的路径,我这里是http://localhost:8080/test_war_exploded/和我的tomcat的配置是对应的,比如端口号8080,以及在配置tomcat的fix之后添加的也是test_war_exploded,一句话就是要对应。

在这里插入图片描述
在这里插入图片描述

如果以上配置都正确的话,修改index.jsp并且保存后,点击绿色的标识,再刷新网页就可以得到修改后的内容

在这里插入图片描述

在这里插入图片描述

idea数据库连接

首先下载好mysql。

  1. view;
  2. tool windows;
  3. database。

在这里插入图片描述
4. 侧边栏显示database标识,点击标识;
5. +号;
6. 选择自己的数据库;

在这里插入图片描述
7. 填写数据库的账号和密码;
8. 点击test connection。

在这里插入图片描述

显示successed表示成功。

在这里插入图片描述

  1. 点击+号;
  2. query console,调出控制台;
  3. 编写相应的sql语句;
  4. 点击绿色小标运行,即可在输出界面看到对应的运行结果。

在这里插入图片描述
在这里插入图片描述
按照上面的方法,快速建立好数据库,这里是新建了一个studentinfomanagement的数据库。

java连接数据库

  1. 编辑一个类似下面的代码,把自己的数据库账号密码以及数据库的名称都更换成自己的。
package utils;import java.sql.DriverManager;
import java.sql.SQLException;import java.sql.Connection;
public class DBUtils {/*** 获取数据库连接* @return Connection对象*/public static Connection getConnection(){String dbUserName = "root";String dbUserPasswd = "123456";String dbURL = "jdbc:mysql://localhost:3306/studentinfomanagement?"+ "user="+dbUserName+"&password="+dbUserPasswd+"&useUnicode=true&characterEncoding=UTF8&serverTimezone=UTC&useSSL=false";Connection conn = null;try {
//            Class.forName("com.mysql.jdbc.Driver");//低版本 5.+Class.forName("com.mysql.cj.jdbc.Driver");// 高版本8.+conn = (Connection) DriverManager.getConnection(dbURL,dbUserName,dbUserPasswd);} catch (ClassNotFoundException | SQLException e) {e.printStackTrace();}return conn;}/*** 关闭数据库连接* @param conn Connection对象*/public static void closeConnection(Connection conn) {//判断conn是否为空if(conn != null){try {conn.close();//关闭数据库连接} catch (SQLException e) {// TODO: handle exceptione.printStackTrace();}}}}
  1. 右键WEB-INF,new,directory,新建一个lib目录

在这里插入图片描述
3. 把与自己mysql适配的驱动jar包复制到路径下。

在这里插入图片描述
4. 右键lib目录,add as library。

在这里插入图片描述
在这里插入图片描述

  1. 以上成功后,可以使用以下代码进行简单的测试,这里还有一种可能就是上面代码给的是高版本的驱动器的代码,如果自己的驱动版本是5版本的话可以换一个驱动的代码,否则也可能报错java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

在这里插入图片描述

package test;import utils.DBUtils;public class test {/*** DB测试用例*/public static void testDB(){System.out.println(DBUtils.getConnection());}public static void main(String[] args) {testDB();}
}

出现以下类似结果表示连接成功。

com.mysql.cj.jdbc.ConnectionImpl@61832929Process finished with exit code 0

以上,一个正常的项目就可以启动起来了。

相关文章:

idea+tomcat+mysql 从零开始部署Javaweb项目(保姆级别)

文章目录 新建一个项目添加web支持配置tomcat优化tomcat的部署运行tomcatidea数据库连接java连接数据库 新建一个项目 new project;Java;选择jdk的版本;next;next;填写项目名字,选择保存的路径;…...

LeetCode 每日一题 2024/5/27-2024/6/2

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 5/27 2028. 找出缺失的观测数据5/28 2951. 找出峰值5/29 2981. 找出出现至少三次的最长特殊子字符串 I5/30 2982. 找出出现至少三次的最长特殊子字符串 II5/31 2965. 找出缺…...

BOOST_SREATCH

BOOST Boost是一个由C社区开发的开源库,为C语言标准库提供扩展。这个库由C标准委员会库工作组成员发起,旨在提供大量功能和工具,帮助C开发者更高效地编写代码。Boost库强调跨平台性和对标准C的遵循,因此与编写平台无关&#xff0…...

MySQL学习——获取数据库和表格的信息

如果忘记了数据库或表的名称,或者不确定给定表的结构(例如,其列的名称),该怎么办呢?MySQL通过几个语句解决了这个问题,这些语句提供了有关它支持的数据库和表的信息。 你之前已经看过SHOW DATA…...

Go语言redis框架 — go-redis

https://zhuanlan.zhihu.com/p/645669818 一、简述 1. API友好,命令名称和参数与Redis原生命令一致,使用简单方便。 2. 支持完整的Redis命令集,覆盖了字符串、哈希、列表、集合、有序集合、HyperLogLog等数据结构。 3. 支持连接池&#x…...

C++ | Leetcode C++题解之第125题验证回文串

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isPalindrome(string s) {int n s.size();int left 0, right n - 1;while (left < right) {while (left < right && !isalnum(s[left])) {left;}while (left < right && !isalnu…...

Spring创建对象的多种方式

一、对象分类 简单对象&#xff1a;使用new Obj()方式创建的对象 复杂对象&#xff1a;无法使用new Obj()方式创建的对象。例如&#xff1a; 1. AOP创建代理对象。ProxyFactoryBean; 2. Mybatis中的SqlSessionFactoryBean; 3. Hibernate中的SessionFactoryBean。二、创建对象方…...

宝塔部署前后端分离项目手册

文章目录 安装宝塔安装环境开始部署1. 前端Vue项目1.先本地启动前端项目&#xff08;记住端口号&#xff09;2.打包前端项目3.上传前端项目4.创建PHP站点5.安全里开放端口号6.测试前端 2. 后端boot项目1. 先在本地跑起来2.修改数据库的配置信息3. 项目打包4. nohup启动项目4.1 …...

Leetcode 第 397 场周赛题解

Leetcode 第 397 场周赛题解 Leetcode 第 397 场周赛题解题目1&#xff1a;3146. 两个字符串的排列差思路代码复杂度分析 题目2&#xff1a;思路代码复杂度分析 题目3&#xff1a;3148. 矩阵中的最大得分思路代码复杂度分析 题目4&#xff1a;3149. 找出分数最低的排列思路代码…...

Python+Selenium自动化测试项目实战

第 1 章 自动化测试 1.1、自动化测试介绍 自动化测试就是通过自动化测试工具帮我们打开浏览器&#xff0c;输入网址&#xff0c;输入账号密码登录&#xff0c;及登录后的操作&#xff0c;总的说来自动化测试就是通过自动化测试脚本来帮我们从繁琐重复的手工测试里面解脱出来&…...

WPS部分快捷操作汇总

记录一些个人常用的WPS快捷操作 一、去除文档中所有的超链接&#xff1a; 1、用WPS打开文档&#xff1b; 2、用Ctrla全选&#xff0c;或者点击上方的【选择】-【全选】&#xff0c;选中文档全部内容&#xff1b; 3、按CTRLSHIFTF9组合键&#xff0c;即可一次性将取文档中所有…...

Kubernetes (K8s) 普及指南

在当今的云计算和微服务时代&#xff0c;Kubernetes&#xff08;简称K8s&#xff09;已经成为容器编排的标准工具。它帮助开发者和运维人员管理和部署应用程序&#xff0c;实现高可用性、可伸缩性和自我修复。本文将详细介绍Kubernetes的基本概念、核心组件、工作原理及其优势。…...

Oracle RAC 集群配置共享目录ACFS

Oracle RAC 集群配置共享目录ACFS 应用场景&#xff1a;创建的ACFS文件系统用于部署OGG做数据同步使用。 1、创建共享磁盘组 create diskgroup OGG external redundancy disk /dev/mapper/ASM08, /dev/mapper/ASM09; 2、创建 acfs 文件系统 ACFS文件系统 在ASM磁盘组中通过A…...

Google Cloudbuild yaml file 中 entrypoint 和 args 的写法

编写cloudbuild.yaml 时有几个关键参数 entrypoint 和 args 的基本介绍 id: 显示在 cloud build logs 里的item 名字 name: docker 镜像名字 - 下面的命令会在这个镜像的1个容器instance 内执行 entrypoint: 执行的命令入口 &#xff0c; 只能有1个对象 args&#xff1a; 命名…...

鸿蒙开发接口图形图像:【@ohos.window (窗口)】

窗口 窗口提供管理窗口的一些基础能力&#xff0c;包括对当前窗口的创建、销毁、各属性设置&#xff0c;以及对各窗口间的管理调度。 该模块提供以下窗口相关的常用功能&#xff1a; [Window]&#xff1a;当前窗口实例&#xff0c;窗口管理器管理的基本单元。[WindowStage]&…...

LLM 基准测试的深入指南

随着越来越多的 LLM 可用,对于组织和用户来说,快速浏览不断增长的环境并确定哪些模型最适合他们的需求至关重要。实现这一目标的最可靠方法之一是了解基准分数。 考虑到这一点,本指南深入探讨了 LLM 基准的概念、最常见的基准是什么以及它们需要什么,以及仅依赖基准作为模…...

深入理解Redis事务、事务异常、乐观锁、管道

Redis事务与MySQL事务 不一样。原子性&#xff1a;MySQL有Undo Log机制&#xff0c;支持强原子性&#xff0c;和回滚。Redis只能保证事务内指令可以不被干扰的在同一批次执行&#xff0c;且没有机制保证全部成功则提交&#xff0c;部分失败则回滚。隔离性&#xff1a;MySQL的隔…...

17、Spring系列-SpringMVC-请求源码流程

前言 Spring官网的MVC模块介绍&#xff1a; Spring Web MVC是基于Servlet API构建的原始Web框架&#xff0c;从一开始就已包含在Spring框架中。正式名称“ Spring Web MVC”来自其源模块的名称&#xff08;spring-webmvc&#xff09;&#xff0c;但它通常被称为“ Spring MVC…...

对简单工厂模式、工厂方法模式、抽象工厂模式的简单理解

简单工厂模式 三部分组成 抽象类一些抽象类的具体实现类工厂类 把创建对象的任务交给一个工厂类来实现&#xff0c;对业务进行封装。 优点&#xff1a;实现了任务分离&#xff0c;客户端不用关心业务的具体实现&#xff0c;交由工厂来“生产”。 缺点&#xff1a;违背开闭原…...

PostgreSQL常用插件

PostgreSQL 拥有许多常用插件&#xff0c;这些插件可以大大增强其功能和性能。以下是一些常用的 PostgreSQL 插件&#xff1a; 性能监控和优化 pg_stat_statements 1.提供对所有 SQL 语句执行情况的统计信息。对调优和监控非常有用。 2.安装和使用&#xff1a; pg_stat_k…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...