在 IDEA 中创建JavaWeb 项目的方式(超详细步骤教程和遇到的问题)

目录

  • 0-1项目图片操作步骤链接
  • 0-2项目结构预览
  • 1.新建Project
  • 2.定义项目名称
  • 3.创建完成后项目结构
  • 4.创建config文件夹
    • 4.1 `作用`
  • 5.在WEB-INF下创建lib文件夹
    • 5.1然后搞几个常用的jar包放入
      • 5.1.1jar包全选中后右键选择放入类库
      • 5.1.2jar包全选中后右键选择放入类库
  • 6.创建src下文件夹(根据实际需求创建)
    • 6.1如何创建的文件夹向这种有层级感
  • 7.配置Facetes
    • 7.1确保web.xml是在WEB-INF下
    • 7.2确保web文件夹静态资源配置
  • 8.如何显示或隐藏out文件夹
  • 9.启动tomcat配置
  • 10.tomcat启动项目后未在WEB-INF下有后端代码编译
  • 11.项目编译生成的结果
    • 11.1编译后文件为什么没有 mybatis文件?
  • 12.创建web文件夹下的静态资源
  • 12.1例如 如果用的easyui 可以将easyui静态资源放在js内然后引用
  • 13.web.xml作用
  • 14.再看整体项目当前基础结构
  • 15.部署javaweb项目
  • 16.访问部署在tomcat项目
  • 17.以上是javaweb项目基础搭建后期有空继续写。。。

0-1项目图片操作步骤链接

图片静态资源链接

0-2项目结构预览

在这里插入图片描述

1.新建Project

在这里插入图片描述

2.定义项目名称

在这里插入图片描述

3.创建完成后项目结构

在这里插入图片描述

4.创建config文件夹

在 IntelliJ IDEA 中,你可以通过 File -> Project Structure -> 找到
在 IntelliJ IDEA 中,当你在项目中创建一个名为 “config” 的文件夹时,它通常会以蓝色显示。这种蓝色表示该文件夹是一个源代码文件夹,即它包含项目的源代码。

4.1 作用

蓝色的文件夹在 Java Web 项目中常用于存放配置文件、资源文件或其他与项目源代码密切相关的文件。例如,你可以将项目的配置文件、日志文件、Spring 配置文件等放置在 “config” 文件夹中。

蓝色的文件夹在 IntelliJ IDEA 中有以下几个特点:

  1. 源代码根:蓝色的文件夹通常被认为是源代码根,这意味着它们是编译过程的一部分,并且在构建和运行项目时会被包含在内。
  2. 自动导入:当你在蓝色的文件夹中创建新的 Java 类或其他源代码文件时,IDEA 会自动将其导入到项目中,并将其包含在编译过程中。
  3. 代码索引:蓝色的文件夹中的文件将被 IDEA 的代码索引系统索引,这样你就可以轻松地在项目中进行导航、查找和重构操作。

IntelliJ IDEA 并不会强制要求将配置文件放置在蓝色文件夹中,你可以根据项目的需要自由选择文件夹的组织结构。蓝色文件夹只是一种约定俗成的做法,有助于提高项目的可维护性和代码结构的清晰度。
在这里插入图片描述
在这里插入图片描述

5.在WEB-INF下创建lib文件夹

在这里插入图片描述

5.1然后搞几个常用的jar包放入

5.1.1jar包全选中后右键选择放入类库

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

5.1.2jar包全选中后右键选择放入类库

或者选择jar包直接

6.创建src下文件夹(根据实际需求创建)

当前只是举例
在这里插入图片描述

6.1如何创建的文件夹向这种有层级感

1.首先简单方法 直接找到项目所在文件创建
在这里插入图片描述
2.如何有层次感展示根据图示打钩
在这里插入图片描述

7.配置Facetes

7.1确保web.xml是在WEB-INF下

在这里插入图片描述

在这里插入图片描述

7.2确保web文件夹静态资源配置

在这里插入图片描述

8.如何显示或隐藏out文件夹

在这里插入图片描述

9.启动tomcat配置

在这里插入图片描述

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

10.tomcat启动项目后未在WEB-INF下有后端代码编译

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

11.项目编译生成的结果

在这里插入图片描述

11.1编译后文件为什么没有 mybatis文件?

因为源代码文件夹内没有文件,所以编译的时候就没有生成所在文件夹和文件

12.创建web文件夹下的静态资源

理解静态资源的意义
主要是 前端页面 html 支持前端页面 js、页面样式 css
关于前端页面 html 可以是 jsp 页面 或者 html 或者是 vue等都可以

请添加图片描述

12.1例如 如果用的easyui 可以将easyui静态资源放在js内然后引用

在这里插入图片描述

13.web.xml作用

web.xml是Java Web项目中的一个重要配置文件,主要用于配置首页、Filter、Listener、Servlet等。以下是web.xml的主要作用:

初始化配置信息:可以用来初始化配置信息,比如欢迎页面、servlet、servlet-mapping、filter、listener、启动加载级别等。
命名以及定制URL:通过web.xml文件,可以对URL进行命名以及定制。
定制初始化参数:通过web.xml文件,可以为web应用定制初始化参数。
指定错误处理页面:当Web应用出现错误时,web.xml可以指定一个错误处理页面,用于显示错误信息。
设置过滤器:在web.xml中,可以为web应用设置过滤器,对用户请求进行预处理。
总之,web.xml文件在Java Web项目中起到了非常重要的作用,可以方便地对Web应用进行配置和管理。
1.首页配置:在web.xml中,可以通过指定一个欢迎页面或者默认页面来设置应用的首页。例如,以下配置会将默认的首页设置为index.jsp:

<welcome-file-list>  
    <welcome-file>index.jsp</welcome-file>  
</welcome-file-list>

2.Filter配置:Filter主要用于过滤用户的请求。例如,你可能希望通过Filter来记录所有请求的日志。以下是一个Filter配置的例子:在这个例子中,LoggingFilter类将被应用于所有的URL路径。

<filter>  
    <filter-name>LoggingFilter</filter-name>  
    <filter-class>com.example.LoggingFilter</filter-class>  
</filter>  
<filter-mapping>  
    <filter-name>LoggingFilter</filter-name>  
    <url-pattern>/*</url-pattern>  
</filter-mapping>
  1. Listener配置:Listener主要用于监听应用的各种事件,例如session创建、销毁等。例如,以下配置将监听session的创建和销毁事件:
<listener>  
    <listener-class>com.example.SessionListener</listener-class>  
</listener>

4.Servlet配置:Servlet主要用于处理用户的请求。例如,以下配置将一个Servlet映射到特定的URL路径:在这个例子中,任何发送到"/example"路径的请求都会被ExampleServlet处理。

<servlet>  
    <servlet-name>ExampleServlet</servlet-name>  
    <servlet-class>com.example.ExampleServlet</servlet-class>  
</servlet>  
<servlet-mapping>  
    <servlet-name>ExampleServlet</servlet-name>  
    <url-pattern>/example</url-pattern>  
</servlet-mapping>

5.错误处理:web.xml还可以用于指定错误页面。例如,以下配置将所有的错误页面都重定向到一个特定的错误处理页面:在这个例子中,任何返回404错误的页面都会被重定向到error404.jsp。

<error-page>  
    <error-code>404</error-code>  
    <location>/error404.jsp</location>  
</error-page>
  1. 初始化参数:可以为web应用定制初始化参数。例如:
<context-param>   
    <param-name>contextConfigLocation</param-name>   
    <param-value>/WEB-INF/applicationContext.xml</param-value>   
</context-param>   
```上述配置为Spring应用设置了一个初始化参数,该参数指定了Spring应用的配置文件位置。  

  1. 安全设置:在web.xml中还可以配置安全设置,例如设置哪些URL需要经过安全验证等。这些配置通常涉及到更复杂的配置文件和服务器设置,因此在这里不详细展开。

14.再看整体项目当前基础结构

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

15.部署javaweb项目

直接将web文件夹下所有文件全拷贝到tomcat服务器webapp下 并给项目名称命名
在这里插入图片描述
在这里插入图片描述

16.访问部署在tomcat项目

http://localhost:8087/testProject/
在这里插入图片描述

17.以上是javaweb项目基础搭建后期有空继续写。。。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Java并发】深入浅出 synchronized关键词原理-下

上一篇文章&#xff0c;简要介绍了syn的基本用法和monter对象的结构&#xff0c;本篇主要深入理解&#xff0c;偏向锁、轻量级锁、重量级锁的本质。 对象内存布局 Hotspot虚拟机中&#xff0c;对象在内存中存储的布局可以分为三块区域:对象头(Header)、实例数据 (Instance Da…

Baumer工业相机堡盟工业相机如何联合NEOAPI SDK和OpenCV实现相机图像转换为Mat图像格式(C++)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK实现相机掉线自动重连&#xff08;C&#xff09; Baumer工业相机Baumer工业相机的图像转换为OpenCV的Mat图像的技术背景在NEOAPI SDK里实现相机图像转换为Mat图像格式联合OpenCV实现相机图像转换为Mat图像格式测试演示图 工业相机…

页面自适应postcss-pxtorem配置

一、项目背景 uniappvue3tsvitepiniavant 二、安装postcss-pxtorem npm i postcss-pxtorem三、vite.config.ts配置 import pxtorem from "postcss-pxtorem";export default defineConfig({plugins: [uni(),Components({resolvers: [VantResolver()]})],css: {pos…

【Java集合篇】HashMap 在 get 和 put 时经过哪些步骤

HashMap在get和put时经过哪些步骤? ✔️ 典型解析✔️get方法✔️put方法✔️ 拓展知识仓✔️ HashMap如何定位key✔️ HashMap定位tablelndex的骚操作作✔️HashMap的key为null时&#xff0c;没有hashCode是如何存储的?✔️ HashMap的value可以为null吗? 有什么优缺点讷? …

ZkSync第一Dex空投交互全教程,Holdstation ZK热点不容错过

2023 年 12 月 8 日&#xff0c;在以太坊基金会的 176 次会议上&#xff0c;开发人员一致同意&#xff0c;如果事情进展顺利&#xff0c;将在 2024 年初定 Goerli 分叉日期&#xff0c;目标是能在 2024 年 1 月激活 Goerli Dencun 测试网&#xff0c;预计能够在 2024 年 3 月~ …

SOFA Framework源代码及插件Win11编译开发环境配置

这篇文章主要记录详细的SOFA Framework软件的源代码编译环境配置过程&#xff0c;开发环境基于Win系统&#xff0c;编译完成后&#xff0c;可以在插件或框架的源代码上进行开发集成。本文纯手写输入&#xff0c;言简意赅&#xff0c;以大方向和思路为准&#xff0c;具体需要注意…

torch.meshgrid和np.meshgrid的区别

numpy中meshgrid&#xff1a; 把数组a当作一行&#xff0c;再根据数组b的长度扩充行。 把数组b当作一列&#xff0c;再根据数组a的长度扩充列。 torch中meshgrid&#xff1a; 把数组a当作一列&#xff0c;再根据数组b的长度扩充列。 把数组b当作一行&#xff0c;再根据数组a的…

前端 js 基础对象 (3)

js 对象定义 <!DOCTYPE html> <html> <body><h1>JavaScript 对象创建</h1><p id"demo1"></p> <p>new</p> <p id"demo"></p><script> // 创建对象&#xff1a; var persona {fi…

C++ 释放指针

在C中&#xff0c;释放指针通常使用delete或delete[]操作符&#xff1b; 如果指针指向的是单个对象&#xff0c;可以使用delete操作符进行释放&#xff1b; 在释放完内存后&#xff0c;最好将指针置为nullptr&#xff0c;以避免出现悬空指针&#xff08;dangling pointer&#…

LeGO-LOAM 几个特有函数的分析(2)

接上回LeGO-LOAM 几个特有函数的分析&#xff08;1&#xff09; 二、广度优先遍历 广度优先遍历&#xff08;Breadth-First Search, BFS&#xff09;是一种用于遍历或搜索树或图的算法。这种算法从树的根&#xff08;或图的某一指定节点&#xff09;开始&#xff0c;然后探索…

「小明赠书活动」2024第二期《实战AI大模型》

⭐️ 赠书 - 《实战AI大模型》 从基本概念到实践技巧的&#xff0c;全方位解读AI大模型&#xff0c;手把手教你训练和部署BERT、GPT-3、ChatGPT&#xff01; 人工智能领域资深专家尤洋老师倾力打造&#xff0c;获得了 李开复、周鸿祎、颜水成 三位大咖鼎力推荐&#xff0c;一经…

【前端】[vue3] vue-router使用

提示&#xff1a;我这边用的是typeScript语法&#xff0c;所以js文件的后缀都是ts。 安装vue-router&#xff1a; &#xff08;注意&#xff1a;vue2引用vue-router3 vue3才引用vue-router4&#xff09; npm install vue-router4src文件夹下面创建 router/index.ts&#xff08;…

安科瑞微机综合保护测控装置在某电厂10.5kV厂用电系统改造中的应用——安科瑞 顾烊宇

摘要&#xff1a;某电厂8号机10.5kV厂用电二次系统设备大多为常规电磁式继电器、电量变送器等。通过对厂用电二次系统从设备选型、设计、施工调试等方面进行的改造&#xff0c;尤其微机综合保护测控装置的应用&#xff0c;集控制、保护、测量、信号报警、开关量采集、通讯功能于…

Python+Appium自动化测试的使用步骤

这篇文章主要介绍了PythonAppium实现自动化测试的使用步骤&#xff0c;文中通过示例代码介绍的非常详细&#xff0c;对大家的学习或者工作具有一定的参考学习价值&#xff0c;需要的朋友们下面随着小编来一起学习学习吧 一、环境准备 1.脚本语言&#xff1a;Python3.x IDE&am…

IIS回收应用

前言 作为Windows的一个可选包,Internet Information Services (IIS)管理器经常被用于Windows Server系列服务器内的Web管理。IIS采用应用程序池方式管理Web的工作进程,同时采用了页面输出缓存的缓存加载机制。当网络出现瞬间访问异常时,部分IIS管理的web页面可能会发生长…

vue登录 滑动验证,记住密码及AES加密解密

相关依赖 npm install js-cookie //js-cookie npm install crypto-js //AES加密解密 npm install -S vue-puzzle-vcode //滑动验证 vue2 <template><div class"login"><div class"login-box"><div class"imgbox">&…

BOM介绍

文章目录 1、简介主要作用 2、BOM的组成2.1 窗口对象window2.1.1 window对象特点2.1.2 window作用域2.1.3 window对象常见方法**第一类&#xff1a;系统对话框**第二类&#xff1a;控制浏览器窗口方法第三类&#xff1a;与定时器有关的方法 1、简介 BOM&#xff08;Browser Ob…

面试算法98:路径的数目

题目 一个机器人从mn的格子的左上角出发&#xff0c;它每步要么向下要么向右&#xff0c;直到抵达格子的右下角。请计算机器人从左上角到达右下角的路径的数目。例如&#xff0c;如果格子的大小是33&#xff0c;那么机器人从左上角到达右下角有6条符合条件的不同路径。 分析…

教学/直播/会议触摸一体机定制_基于展锐T820安卓核心板方案

触控一体机是一种集先进的触摸屏、工控和计算机技术于一体的设备。它取代了传统的键盘鼠标输入功能&#xff0c;广泛应用于教学、培训、工业、会议、直播、高新科技展示等领域。触摸一体机的应用提升了教学、会议和展示的互动性和信息交流。 触摸一体机方案基于国产6nm旗舰芯片…

鸿蒙问题之本地模拟器无法识别

今天按例打开本地模拟器&#xff0c;发现DevEco Studio不能检测到我的本地模拟器了。 重启了DevEco Studio和模拟器多次都无果。果断删除模拟器 然后创建一个新的&#xff0c;就可以成功检测到了。这应该是idea的一个bug