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

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

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

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

相关文章

C++进阶之AVL树+模拟实现

目录 目录 一、AVL树的基本概念 1.1 基本概念 二、AVL树的模拟实现 2.1 AVL树节点的定义 2.2 插入操作 2.3 旋转操作 2.4 具体实现 一、AVL树的基本概念 1.1 基本概念 二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树&…

微信里的东西怎么打印出来呢

随着微信的普及,我们的日常生活和工作都离不开这个强大的社交工具。无论是重要的工作文件、孩子的作业、还是精彩的旅行照片,我们都习惯在微信里保存和分享。但是,当需要将这些微信里的内容打印出来时,很多人可能会感到困惑和麻烦…

【C++】vector的模拟实现

💗个人主页💗 ⭐个人专栏——C学习⭐ 💫点击关注🤩一起学习C语言💯💫 目录 导读 1. vector的核心框架接口 2. 构造函数 2.1 基本构造 2.2 拷贝构造(传统写法) 2.3 析构函数 2…

验证外星语词典

在解决算法题时,哈希表是经常被使用的工具,可以用来记录字符串中字母出现的次数,字符串中字符出现的位置等,这里用到的就是利用哈希表储存字符串中字符出现的的位置。 “外星语”的字母表顺序是不一样的,所以…

SIMBA:单细胞嵌入与特征

目前大多数单细胞分析管道仅限于细胞嵌入,并且严重依赖于聚类,而缺乏显式建模不同特征类型之间相互作用的能力。此外,这些方法适合于特定的任务,因为不同的单细胞问题的表述方式不同。为了解决这些缺点,SIMBA作为一种图…

43.自定义线程池(一)

ThreadPool是线程池,里面是一定数量的线程,是消费者。 BlockingQueue阻塞队列,线程池中的线程会从阻塞队列中去拿任务执行。任务多了线程池处理不过来了,就会到Blocking Queue中排队,等待执行。链表结构,特…

使用python实现超市购物系统(一个小例子)

可以增加其他功能,这里就展示一个小的例子~

Crosslink-NX器件应用连载(11): 图像(数据)远程传输

作者:Hello,Panda 大家下午好,晚上好。这里分享一个Lattice Crosslink-NX器件实现图像或数据(卫星数据、雷达数据、ToF传感器数据等)远程传输的案例(因为所描述的内容颇杂,晒图不好晒&#xff…

【刷题】初探递归算法 —— 消除恐惧

送给大家一句话: 有两种东西, 我对它们的思考越是深沉和持久, 它们在我心灵中唤起的惊奇和敬畏就会日新月异, 不断增长, 这就是我头上的星空和心中的道德定律。 -- 康德 《实践理性批判》 初探递归算法 1 递归算…

我给线程池管理框架hippo4j找bug

1 虚拟机参数不生效 hippo4j的docker启动脚本位于 docker/docker-startup.sh 。从下图可以看到 JAVA_OPT放在了jar包名 hippo4j-server.jar之后,而只有项目参数才放在jar包名之后。 实际上这里JAVA_OPT中包含虚拟机参数,而虚拟机参数要放在jar包名之前…

前端之HTML语言(持续更新)

前端之HTML语言 学习完后端的各种层之后,今天开始学习前端,前端和后端都是一个项目的组成部分。 前端对应得到语言是HTML,HTML最重要的有三块,行为,样式,J结构。行为就是交互,理解为鼠标的点击…

【多模态】34、LLaVA-v1.5 | 微软开源,用极简框架来实现高效的多模态 LMM 模型

文章目录 一、背景二、方法2.1 提升点2.2 训练样本 三、效果3.1 整体效果对比3.2 模型对于 zero-shot 形式的指令的结果生成能力3.3 模型对于 zero-shot 多语言的能力3.4 限制 四、训练4.1 数据4.2 超参 五、代码 论文:Improved Baselines with Visual Instruction …

Xcode下载安装

1.Xcode可用版本判断: 2.Xcode下载安装: 方案1:AppStore 下载更新 若方案1失败则 方案2:指定版本Xcode包下载解压安装 苹果下载 3.Xcode命令行工具插件安装 xcode-select --install 备注: xcode_x.x.x.xip(压缩包存在时效性(使用前24h/…

20 VUE学习:插件

介绍 插件 (Plugins) 是一种能为 Vue 添加全局功能的工具代码。下面是如何安装一个插件的示例: import { createApp } from vueconst app createApp({})app.use(myPlugin, {/* 可选的选项 */ })一个插件可以是一个拥有 install() 方法的对象,也可以直接…

计算一个3x3矩阵对角线和其它两条线的元素之和

计算一个3x3矩阵对角线和其它两条线的元素之和 #include <stdio.h> int main () { int d0,b0,s,i,j; int a[3][3]{1,2,3,4,5,6,7,8,9}; for(i0,j2;i<3;i,j--) dda[i][i]a[i][j]; for(i0,j0;i<3;) {bba[i][j]a[i][j2]; ii2;} sdb; printf("d%d\nb%d\ns%d\n&qu…

支付宝支付(沙盒支付)

后端页面代码 Controller RequestMapping("/pay") public class PayController {private String orderId;Autowiredprivate OrdersService ordersService;Value("${appId}")private String appId;Value("${privateKey}")private String private…

ReDos攻击浅析

DOS为拒绝服务攻击&#xff0c;re则是由于正则表达式使用不当&#xff0c;陷入正则引擎的回溯陷阱导致服务崩溃&#xff0c;大量消耗后台性能 正则 ​ 探讨redos攻击之前&#xff0c;首先了解下正则的一些知识 执行过程 大体的执行过程分为: 编译 -> 执行编译过程中&…

牛客热题:缺失的第一个正整数

牛客热题&#xff1a;数组中出现一次的两个数字> &#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;力扣刷题日记 &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 文章目录 …

SPWM载波调制方式-三电平杂记1

方法一&#xff1a; P2 O1 N0 方法二&#xff1a;双载波直接发波 方法三&#xff1a;负轴载波和调制波往上抬升1&#xff0c;得到使用同一个载波 在正半周在P和O切换&#xff0c;在下半轴式O和N切换

出现 Transaction rolled back because it has been marked as rollback-only 解决方法

目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 用户反馈的Bug如下所示: Transaction rolled back because it has been marked as rollback-only截图如下: 浏览器终端同样显示: 2. 原理分析 错误表明,在事务的生命周期内,遇到了某个异常或条件,导致该事务被标记…