使用IDEA搭建JavaWeb项目骨架

2023-11-12

前言

记得17年初的时候,尝试学习开发 JavaWeb 项目,刚开始搭建时候,真的是一头雾水,使用哪个 IDE 比较好呢,目录结构如何才是合理的呢,Tomcat 服务器如何找到项目的根目录呢,blabla~~到处查资料,半信半疑的尝试,到最后成功把项目跑起来以后,成就感真的是满满的>_<~~现在把之前的笔记整理一下吧。

一、新建项目

我选择的是 IntelliJ IDEA 作为开发工具,觉得真的挺好用的。

1)初次打开 IDEA 时,会弹出下面的窗口,我们可以选择 Create New Project 来创建一个新的项目:

或者打开后直接进入了之前创建的项目的编辑页面,我们也可以点击 IDEA 左上角的 File->New->Project  来创建项目:

2)然后我们可以看到下面的弹框,我们选择搭建一个符合 Maven 约定的目录,接着在里面勾选 Create from archetype,然后往下拉找到 org.apache.maven.archetypes:maven-archetype-webapp ,选中它,注意要先勾选红色框圈住的那个选项,否则选择不了,我们点击 Next 继续。

3)然后就填写 Maven 的坐标和版本号了,按照自己习惯进行填写。

4)接下来就是配置你的 Maven 的相关配置信息,默认应该是配置好的。

5)然后配置你的项目的名称和路径的相关信息,默认是填写了的。最后就是点 Finish ,到此不出意外的话就应该创建成功了。

6)我们可以看到新建项目成功后,会看到如下界面。也会看到IDEA右下角会弹出个小窗口,我们可以选中 Enable Auto-Import ,这样以后更改 pom 文件后就会自动下载相关的依赖包了。

二、目录骨架配置

1)项目新建好以后,可以看到项目的目录结构如下图,还不符合 Maven 约定的目录结构。

2)需要在 main 文件夹下建立 java 文件夹和 resources 文件夹;在 src 文件夹下建立 test 文件夹,并在 test 下建立 java 文件夹和 resources 文件夹。当然如果此时我们想在 src/main/java 文件夹下创建 class 文件以及 packages ,是无法创建的。解决方法可以参考下文(http://blog.csdn.net/qq_27093465/article/details/52912444)。

3)把 main 目录下的 java 目录标识为 Sources Root

4)把 main 目录下的resources 标识为 Resources Root

5)把 test 目录下的 java 目录标识为 Test Sources Root

6)把 test 目录下的 resources 目录标识为 Test Resources Root

7)配置完以后的项目目录骨架如下图:

三、修改web.xml

maven 构建的 web 项目,使用的 webapp 版本比较低,默认为 2.3,不支持servlet的注解使用。我们需要修改版本为 3.1 。把 webapp 目录下的 web.xml 文件修改为以下的代码:

<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_3_1.xsd"
  version="3.1"
  metadata-complete="true">

</web-app>

四、配置Tomcat服务器

1)为了让项目正常跑起来,我们还需要配置 Tomcat 服务器。点击下图红框处:

2)我们可以看到如下的弹框界面,然后点击左上角的 + ,选中  Tomcat Server->Local  。

3)填写 Tomcat 服务器的相关配置,如名称、Tomcat 服务器版本、配置启动端口等,可参考下图配置:

4)我们可以看到上图的弹框底部有个 Warning ,需要进行解决。选中 Deployment ,再点击右侧的  + ,在弹框中选中项目部署时的打包方式为  war  包的打包方式,如下图:

然后分别点击  Apply  和  OK 即可。

五、启动项目

1)至此,一个简单的基于 Maven 的 JavaWeb 项目就搭建完毕了,我们可以点击下图的绿色三角形来运行项目:

2)启动完成后,会自动跳到浏览器,打开一个新的标签页,显示如下:

参考链接:

     https://blog.csdn.net/Lucky22Amin/article/details/82929627 

     http://blog.csdn.net/qq_27093465/article/details/52912444

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用IDEA搭建JavaWeb项目骨架 的相关文章

  • 提升开发效率的必备技能:Spring集成Mybatis和PageHelper详解

    目录 引言 一 Spring集成MyBatis 1 1 pom依赖 1 2 配置文件 1 3 Spring整合MyBatis 1 3 1 配置自动扫描JavaBean 1 3 2 配置数据源 1 3 3 配置session工厂 1 3 4
  • js 数组

    1 数组的创建 var arrayObj new Array 创建一个数组 var arrayObj new Array size 创建一个数组并指定长度 注意不是上限 是长度 var arrayObj new Array element0
  • pytorch CPU与GPU模型参数相互加载

    文章目录 1 模型保存以及加载方法 2 单 GPU 和 单 CPU 参数 模型相互加载 3 多 GPU 模型 参数 4 单 GPU or CPU 模型加载多 GPU 参数 5 单 GPU or CPU 加载 多GPU模型 参数 6 多 GP
  • linux下jdk的安装

    目录 获取文件下载地址 官网获取文件下载地址 下载文件到指定目录下并修改改文件名 卸载已经存在的JDK 查看系统是否安装JDK 卸载JDK 安装JDK 赋予权限 安装JDK 配置JDK的环境变量 在配置文件的最底部加上以下配置 重新刷新配置
  • Java实现多线程下载 URL以及URLConnection

    主线程 public class MultiThreadDown public static void main String args throws Exception 初始化Downutil对象 final DownUtil downu
  • linux中解压tar.gz或zip类型的文件到具体文件夹

    zip对应的解压缩命令为unzip 命令格式 unzip 选项 压缩包名 选项 d 指定解压缩位置 示例 unzip d tmp test zip 将tar gz文件解压到指定的目录中 tar zxvf tmp tar gz C tmp 在
  • WEB常见的扫描器具体使用方法

    常用的WEB扫描器 1 awvs Acunetix Web Vulnerability Scanner 简称AWVS 是一款知名的网络漏洞扫描工具 它通过网络爬虫测试你的网站安全 检测流行安全漏洞 现已更新到10 下载地址 链接 https
  • Cisco_路由器基础命令

    Cisco 路由器基础命令 1 接口描述 路由器F0 1 或S0 1 接口命名为ABC Router config interface fastEthernet 0 1 进入到接口fastEthernet 0 1 Router config
  • mysql基础查询

    mysql基础查询 进程的相关信息 查看information schema数据库中的PROCESSLIST表来获取正在执行的查询进程的信息 该表包含了当前连接到MySQL服务器的所有进程的相关信息 包括进程ID id 和进程名称 name
  • JavaScript 简介 及引用方式

    js的引用方式 3种 1 行内引用 通过在开标签中的事件属性引用js的函数 2 内部引用 通过在script标签中编写js代码使用 1 script标签可以写在页面任何位置 2 script标签通常使用在body中的最后 或者body的后面
  • csv怎么保存开头数字0_【EXCEL必知必会】大基本功[4]—分列以及CSV文件处理

    阅读全文大概需要4 5分钟 本文是专栏 Excel必知必会 的第四篇教程 如果想了解专栏内容规划 请参阅开篇 温馨提示 如果您已经特别熟悉Excel 大可不必再看这篇文章 或只挑选部分 文中对Excel的说明和操作基于Mac Excel20
  • Git的原理及使用

    一 简述 在Git出现之前 大部分公司还是用SVN进行项目管理的 这里来对比一下 集中式 SVN 集中式的版本控制系统都有一个单一的几种管理的服务器 保存所有文件的修订版本 而协同工作的人们都通过客户端连接到这台服务器 取出最新的文件或者提
  • linux基础课程2-----熟练使用Linux系统命令

    目录 一 系统信息类命令是对系统的各种信息进行显示和设置的命令 1 dmesg命令 2 free命令 3 cal命令 4 clock命令 二 熟练使用进程管理类命令 1 ps命令 2 pidof命令 3 kill命令 4 killall命令
  • 用xpath获取html源码

    from lxml import html import requests url http navi cnki net knavi JournalDetail GetArticleList year 2018 issue 04 pykm
  • C++设计模式_02_面向对象设计原则

    文章目录 1 面向对象设计 为什么 2 重新认识面向对象 3 面向对象设计原则 3 1 依赖倒置原则 DIP 3 2 开放封闭原则 OCP 3 3 单一职责原则 SRP 3 4 Liskov 替换原则 LSP 3 5 接口隔离原则 ISP
  • 「python」关于sympy的使用笔记

    关于sympy的使用笔记 这是一篇使用python的符号计算工具包的笔记 随本人使用情况更新 1 变量 sympy中的变量可分为两种 常数变量 一般变量 from sympy import t symbols t real True con
  • 面面俱到!涵盖Java所有核心技术,阿里新产2023版Java面试核心突击手册太全了!

    程序员面试背八股 可以说是现在互联网开发岗招聘不可逆的形式了 其中最卷的当属Java 网上动不动就是成千上百道的面试题总结 你要是都能啃下来 平时技术不是太差的话 面试基本上问题就不会太大 这时候尴尬的现象就出现了 虽然八股文背的好并不能代
  • OpenBSD 安装

    OpenBSD 被誉世上最安全的系统 OpenBSD有最前沿的安全技术 适合于做防火墙和分布式环境下的私有网络服务 OpenBSD组每6个月发布一个新的发行版 即每年的 月 日和11月1日发布 你可以在此找到关于开发周期的更多信息 Open
  • Redis缓存更新策略、详解并发条件下数据库与缓存的一致性问题以及消息队列解决方案

    0 前言 我们知道 缓存由于在内存中 数据处理速度比直接操作数据库要快很多 因此常常将数据先读到缓存中 再进行查询 更新等操作 但与之而来的问题就是 内存中的数据不仅没有持久化 而且需要保证redis和数据库中数据的一致性 针对这个问题 r

随机推荐

  • Matlab 如何绘制复杂曲线的包络线

    Matlab 如何绘制复杂曲线的包络线 http jingyan baidu com article aa6a2c14d36c710d4c19c4a8 html 如果一条曲线 比如声音波形 波动很大 曲折复杂 可以通过绘制包络线的方式使其更
  • C语言——通讯录的实现

    目录 创建项目环境 创建结构体 test c文件 创建通讯录 增加联系人 打印通讯录 删除指定联系人 查找联系人 更改联系人 排列通讯录 完善通讯录 代码 结语 创建项目环境 对于这个通讯录的实现 我们可以像写三子棋一样 怎样去思考 那首先
  • PageHelper的简单使用

    PageHelper是mybatis框架的一个插件 用于支持在mybatis执行分页操作 使用非常方便 在这儿写一下基本的使用 github文档地址 https github com pagehelper Mybatis PageHelpe
  • 解决 Android Studio 提示Untrusted Server's certificate 证书不可用( Server's certificate is not trusted )

    如图 一打开工程提示证书不可用 记录下问题 以便重复遇到 解决 点击android studio左上角的File gt Settings gt Tools gt Server Certificates gt Accept non trust
  • 处理高并发、高访问之Apache优化

    前言 项目100人同时访问 导致访问速度变慢 作为一个没有遇到过这种情况下的辕 在各种查阅资料后 先用删除日志更改日志输出的方法处理后 处理方法 修改Apache日志输出相关配置方法 暂时好缓 后来又出现变慢 在查阅各种博客后 发现一个处理
  • LeetCode-2341. 数组能形成多少数对【哈希表,计数】

    LeetCode 2341 数组能形成多少数对 哈希表 计数 题目描述 解题思路一 哈希表 将数组中的数加入哈希表中 若有两个相同的数就记录下来 并消去两个 最后只需遍历哈希表中置为1的个数即可 解题思路二 优化是 将a最后进行计算 即a
  • HTML网页设计——轮滑运动体育类人物介绍主题12页面毕业设计网页

    精彩专栏推荐 作者简介 一个热爱把逻辑思维转变为代码的技术博主 作者主页 主页 获取更多优质源码 web前端期末大作业 毕设项目精品实战案例 1000套 程序员有趣的告白方式 HTML七夕情人节表白网页制作 110套 超炫酷的Echarts
  • java——爬虫和数据清洗

    数据清洗 什么是数据清洗 1 数据清洗 Data cleaning 对数据进行重新审查和校验的过程 目的在于删除重复信息 纠正存在的错误 并提供数据一致性 数据清洗从名字上也看的出就是把 脏 的 洗掉 指发现并纠正数据文件中可识别的错误的最
  • vue中axios的post请求url自动带上本地ip解决方法

    描述 解决方法 1 URL地址错误 https 或者http 写错了 占比90 2 URL地址正确 但是 VUE APP BASE API http 10 196 33 41 8082 crm admin 前后有空格 去掉空格就好了 ENV
  • Qt实现拖拽功能(支持拖放文件、拖放操作)

    目录 拖放 Qt程序接受其他程序的拖拽 部件 控件之间相互拖放 总结 拖放 拖放是在一个应用程序内或者多个应用程序之间传递信息的一种直观的现代操作方式 除了为剪贴板提供支持外 通常它还提供数据移动和复制的功能 拖放操作包括两个截然不同的动作
  • C++标准cout输出精度解析

    参考 https www cnblogs com shikamaru p 7830963 html 一 cout输出默认精度为6位有效数 可以通过cout lt
  • Elasticsearch-聚合分析的原理及精准度问题

    目录 分布式系统的近似统计算法 Min聚合分析的执行流程 Terms Aggregation Term 聚合的分析流程 Terms不正确的案例 解决Terms不准的问题 提升shard size的参数 打开show term doc cou
  • 队列(Queue) ——(一)静态线式实现

    队列 特点 先进先出 这里主要讲下静态线式的实现 由于普通队列会导致空间浪费 所以主要讲循环队列 其中 由于特点是先进先出 所以需要两个可以动的指针分别来表示进 rear 和出 front 当front rear时 表示空 表示满的方法则比
  • electron安装

    electron安装 Electron安装 Electron是一种强大的桌面应用开发框架 使用HTML CSS和JavaScript构建跨平台的应用程序 它基于Node js和Chromium 可以在Windows macOS和Linux等
  • Apktool使用报错:brut.directory.DirectoryException: file must be a directory

    我把apktool bat apktool jar和我自己的apk都放到了C windows下 然后运行cmd 报错 Exception in thread main brut androlib AndrolibException brut
  • 国际阿里云腾讯云免费:目标存储OSS版别操控功用注册详细阐明

    腾讯云目标存储OSS版别操控功用注册详细阐明 简介 阿里云OSS目标存储创立Bucket时能够选择是否注册版别操控功用 什么是OSS版别操控功用 OSS目标存储有必要注册版别操控吗 注册版别操控需要另外付费吗 阿里云账号一 阿里云OSS目标
  • python中如何遍历文件夹及其子文件夹中的所有文件(附实现代码)

    时间 2018 10 27 题目 python中如何遍历文件夹及其子文件夹中的所有文件 目录 概述 一 使用os listdir 函数 递归的方式实现 二 使用os walk 函数实现 概述 本文提供了python中如何遍历文件夹及其子文件
  • 求最小公倍数

    include using namespace std int gcd int a int b int r while r a b a b b r return b int main int a b while cin gt gt a gt
  • Java 方法特质学习笔记(基础)

    介绍 Java方法是语句的集合 是语句的捆绑 统一 它们在一起只为执行一个功能 完成一个目的 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建 在其他地方被引用 目录 a 方法的命名规范 b 方法的定义 c 方法
  • 使用IDEA搭建JavaWeb项目骨架

    前言 记得17年初的时候 尝试学习开发 JavaWeb 项目 刚开始搭建时候 真的是一头雾水 使用哪个 IDE 比较好呢 目录结构如何才是合理的呢 Tomcat 服务器如何找到项目的根目录呢 blabla 到处查资料 半信半疑的尝试 到最后