🌈 个人主页:十二月的猫-CSDN博客
🔥 系列专栏: 🏀Java与Web开发_十二月的猫的博客-CSDN博客💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光
目录
1. 前言
本篇文章不会很长,就是想和大家唠唠嗑,谈谈在javaWeb开发中遇到的一些问题以及开发项目规范性的问题。
让我来新建一个项目web:
这个项目是一个普通的java项目
后面我们的操作和问题讨论都将基于这个项目
2. 项目与模块
项目与模块是父与子的关系。一个项目可以有多个模块,一个模块只能有一个项目。
项目对模块起到约束作用,模块与模块起到彼此依赖作用
2.1 项目
在IDE(如IntelliJ IDEA)中,Project是一个顶层的概念,它代表了一个完整的项目。Project提供了项目级别的设置和管理,包括项目的依赖关系、编译选项、构建配置等。在Project中,我们可以定义项目的整体结构、代码规范、资源文件等,以确保项目的稳定性和可维护性。
2.2 模块
Module是Project的子单位,它代表项目中的一个功能模块或子项目。每个Module都有自己的编译输出目录、依赖关系和其他模块级别的配置。Module可以相互依赖,实现模块之间的代码共享和交互。通过Module的划分,我们可以将项目拆分成多个独立的功能模块,便于代码的组织和维护。
2.3 两者关系
在实际开发中,我们应该如何合理运用Project与Module呢?首先,我们应该根据项目的实际需求,合理划分Module。每个Module应该具有明确的功能和职责,避免功能重叠和代码冗余。其次,我们应该充分利用Module之间的依赖关系,实现代码共享和交互。这不仅可以提高代码的重用性,还可以降低代码的耦合度,提高项目的可维护性。
此外,我们还可以通过Project级别的设置,对整个项目进行全局管理。例如,我们可以设置统一的代码规范、编译选项和构建配置等,以确保整个项目的一致性和稳定性。同时,我们还可以通过Project级别的依赖管理,对项目中的各个Module进行统一的依赖管理,避免依赖冲突和版本不一致等问题。
2.4 总结
在 IntelliJ IDEA 中
Project
是最顶级的结构单元,然后就是Module。
一个Project
可以有多个Module
。目前,主流的大型项目结构基本都是多Module
的结构,这类项目的module一般是按功能划分的,比如:user-core-module
、user-facade-module
和user-hessian-module
等等。模块之间彼此可以相互依赖。通过这些Module
的命名可以看出,它们都是处于同一个项目中的模块,彼此之间是有着不可分割的业务关系。因此,我们可以大致总结出:一个
Project
是由一个或多个Module
组成
- 对于单Module项目。Project就是Module,两者概念重合
- 对于多Module项目。Project对其下的Module起到整体配置、约束的作用,本身并没有任何功能性代码;Module在Project约束下实现具体的功能,同一项目下的模块之间彼此关联
简单点理解:可以认为Project就是单纯的目录,没有任何实质性的功能(但是可以在其上对整体进行配置/约束)。Mudule是Project的一部分,具体实现Project所需要的功能,同时受到Project的约束。
2.5 具体操作展示
1、新建项目如下:
2、在项目 中删除没用的src、iml(让项目仅仅作为一级目录存在,不实现任何功能)
3、创建项目层次——依赖层、主启动层与模块层
创建依赖层和模块层后,删除其中的src
仅仅主启动层中保留src和Main函数
4、在模块层中建立模块
3. 从java项目到web项目
经过前面的操作,已经成功创建了我们web项目的框架
但是,谁说这是一个web项目呢?idea可不认。同时,连web都没有谈何web项目
3.1 添加框架支持
选择Web应用程序:
得到:
恭喜你,你已经成功得到一个web项目
4、创建一个部署包(工件)
创建一个部署包(工件)的意义在于:只有部署包能够部署在Tomcat中,也只有部署在Tomcat中的部署包才能在浏览器中被访问。
4.1 打开模块设置——工件
展开型:这个war包能够展开看里面的细节
归档:这个war包是压缩包,不能直接打开看里面的细节
- 在javaWab项目中war包就是部署在Tomcat中的部署包
- 将web及其依赖打包成部署包war放到Tomcat中,从而实现浏览器前端页面的访问
5. 创建lib包
lib包是用来放置项目所需依赖的。由于我们将web和依赖打包成部署包war放入Tomcat中,所以如果先创建部署包,再导入lib包依赖,则会出现一些问题,如下:
5.1 lib包放在Project下
创建lib包在Project下:
将lib添加为项目的库:
此时项目已经有了这个库(依赖),但是我们的war包所打包的内容是:web文件夹+依赖库,所以将出现如下问题:
![]()
因此要将这个lib库添加到war包中:
5.2 lib包放在Web下
如果一开始lib包就建立在web文件夹下,则不会出现上面这个错误
因为war包所打的就是web文件夹+依赖库,而web文件夹中就包括了刚刚添加的lib包,因此不报任何错误
5.3 总结
lib包放在Project下,能够让所有模块都共享这个lib库;lib包放在web中,则仅仅这个模块web能够使用这个lib库
6. 配置Tomcat
有了前面的war包(部署包)作为基础,我们就可以配置Tomcat啦!!并且这个配置之后对于这个项目而言都是可以一直使用的(不用重复配置)
目前我们的项目配置如下:(什么配置都没有)
6.1 编辑配置——添加新配置
这里一定选择Tomcat服务器中的本地!!!!!
得到:
6.2 为配置添加工件(部署包)
这个部署包就是之前我们所创建的工件(war包),现在部署在Tomcat中
这里我将红框内修改为/web表示:打开浏览器会在web文件夹中去找对应的html文件
6.3 修改服务器URL
第一个红框:启动Tomcat后,自动打开的页面URL(这个的/web和上一步设置的对应)。这的hello.html为我们网站的初始页面
第二个红框:为项目更新设置一些操作
7. 一些小问题
405问题:当前请求的方法不支持。例如,我们表单method=post,但是在Servlet中找不到doPost方法
空指针问题:
这两个问题,我本人到目前为止都没有遇到过
总结
如果觉得对你有帮助,辛苦友友点个赞,收个藏呀~~~
猫猫未来一定会产出更多优质文章的!!