一、环境部署
1.安装idea ultimate任意版本
Download IntelliJ IDEA – The Leading Java and Kotlin IDE
2.java稳定的版本如:
JDK 8.x
JDK 11.x
JDK 17.x
Java各个版本下载官网
3.apache-tomcat任意版本,需要考虑兼容性,大家可以百度一下
注意:在9.0.1(Beta),8.5.23,8.0.47和7.0.82之前的所有Tomcat版本都包含所有操作系统上的潜在危险的远程执行代码(RCE)漏洞,CVE-2017-12617:远程代码执行漏洞
这里我进行过复现,漏洞依旧还是存在的,exp也能从官网下载到
如果开发大家尽量避开这几个版本就好了
二、部署简单的javaweb环境
大家一定要用idea ultimate而不是idea community,idea community能部署,但是比较复杂,且不利于管理
安装完后,打开idea
新建一个项目
新建一个java enterprise的项目(有些高版本的是新建java EE的项目)
注意:这个时候把我们下载好的tomcat的包随便放在一个目录下面
我这里是个压缩包,我们解压
记住这个目录
这样配置
站点根路径可以自己配置
应用服务器我这里就是apache-tomcat,这里留下一个问题,后面我会详细解释。
选中我们刚刚放tomcat的地方
点击ok就可以了
记得配置这个,不然创建的模板会没有index.jsp
ok没有报错就配置成功了,我们直接点击next
我们这个版本的tomcat兼容的是jave EE8
选中后点击finish就可以了
这样我们就创建了一个简单的java-web站点了。
我们这里需要war包
我们先创建一个Artifacts,Artifacts并不是一种包名,而是一些打包方式的集合,所以我们需要选择一个war包的打包方式,至于war包是什么,我这里也留下个问题,后面作解释。
得益于idea的强大功能,我们可以直接配置让他自动生成war包,我们直接点击这里的add Configurations
这里选择tomcat,因为我们要部署到本地,所以选择local
然后idea会自动帮我们生成war包,这样我们就可以访问我们创建的这个简单的java web项目了
第一次idea会自动安装完依赖,并且帮我们部署这个站点
注意看这里就是Artifacts的打包格式
我们可以在file-->Project Structure-->Artifacts里面看我们创建好的war包和格式
这里以后部署其他站点也要配置这个地方
在这里可以看配置信息,包括url、站点目录和站点端口等
安装完依赖,并且部署完后,我们可以访问这个简单的java web站点
总结
一些问题的分析
1.第一个问题
这里应用服务器是apache-tomcat,那么这个是什么意思呢?
apache是一个中间件,也就是web站点的一个模块化的服务软件,我们可以通过调用他开放的接口去运行我们的web站点,可以通过进程的方式来运行不同的站点,中间件主要可以处理并发的问题。
tomcat就是对apache进行进一步开发,使其可以兼容java编写的站点,将java站点的进程部署在apache上,这样我们就可以更便捷的运行我们的java web站点,如果只用apache部署,那么我们得到的是一个静态的站点。
所以apache和tomcat他们之间的关系就相当于tomcat是依附apache上的一个软件,专门用来方便部署java站点,我们可以通过对tomcat的调用来间接的部署站点在apache中间件内。
2.第二个问题
war包是什么?
这里涉及到一个概念性的地方
jar包和war包在java中的含义
JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件,为 J2EE 应用程序创建的jar文件是 EAR 文件(企业 jar文件),jar文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是,jar文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。在 jar中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何处理特定的 jar。
war包是一个Web应用程序!
一个web程序进行打包便于部署的压缩包,里面包含我们web程序需要的一些东西,其中包括web.xml的配置文件,前端的页面文件,以及依赖的jar。便于我们部署工程,直接放到tomcat的webapps目录下,直接启动tomcat即可。同时,可以使用WinRAR查看war包,直接将后缀.war改成.rar。
前面我们说了我们通过调用tomcat来简介调用apache部署站点
我们的站点配置文件就是这个
web.xml
通常在WEB-INF目录下含有一个web.xml文件
WEB-INF目录下还有个classes目录
而classes目录下则包含编译好的servlet类和jsp,或者servlet所依赖的其他类
上面说的这些war包内部打包后就会拥有这些基本的文件和目录,这样我们就可以通过编写这些配置文件来精确的部署我们的站点,这样我们就不需要对apache中间件进行编程了。
其实这两个问题都是在讲apache和tomcat的概念,这些东西解决的问题就是我们部署站点不需要再对apache进行进一步开发,直接编写tomcat的配置文件就可以对apache进行间接的开发,从而按照我们的需求部署web站点
希望大家看到这里的人点个👍把!