Tomact是一个HTTP服务器,是基于JAVA的,HTTP服务器就是在TCP服务器的基础上,加上了一些额外的功能,能够解析里面的请求中的HTTP报文,把请求转化成结构化的数据,也就是对象,也可以很方便的构造HTTP响应,HTTP服务器提供了一组API,方便程序员来进行调用,来进行操作HTTP协议,从而简化程序员的开发流程
我们的Tomact就是一组HTTP服务器,按照HTTP协议的格式来进行解析请求,调用用户指定的相关代码,并按照HTTP响应的格式来进行构造返回数据;
一:下载Tomact软件(我们使用版本和Servlet要配套)
1)直接在网上搜索:https://tomact.apache.org,有一个DownLoad
2)进入官网之后我们要使用Tomact 8的版本,Servlet使用的版本要和Tomact使用的版本配套,小版本无所谓;
3)点击之后,直接下载Core中的第一个选项,zip(pgp,sha512)即可;
4)解压缩就可以用了
咱们的apache就是一个组织,是专门开发维护Tomact的那一个组织,它是开源社区中非常有影响力的一个组织,这里面的org也是一个顶级域名,以org为后缀表示的是一个非营利组织的域名,因为咱们平时看到的都是.com,.cn;
1)咱们的Tomact的版本是会和JDK的版本以及Servlet的版本都是具体的绑定在一起的;
2)Tomact是跑在JDK上面的程序,所以JDK一定要提前配置好,下载Tomact压缩包之后要进行解压缩,文件的具体位置可以放在一个自己喜欢的地方;
3)我们点击bin中的startup就可以启动Tomact程序了,注意,在以后访问127.0.0.1的时候,一定要确保打开startup,否则会访问失败;
二:Tomact中目录中结构的含义:
1)bin:二进制的可执行程序,主要存放了Tomact的启动/停止/脚本;
startup.bat双击这个bat启动Tomact;
start.sh是liunx/Mac上面是用的,startup.bat;咱们的.bat后缀的文件,是windows上面的批处理文件,以.sh为后缀的文件,是linux的shell脚本文件,都是一双击就可以运行的程序;
2)conf:里面一般放的是配置文件,一般是基于XML格式来进行表示(例如在server.xml文件配置端口号,比如说修改Tomact的端口号,直接编辑记事本);
3)logs:是日志存放位置,它对于程序的调试至关重要,就是表示了Tomact在运行过程中的一些具体过程的详细细节信息,其实就是类似于用println打印出来的结果,可以根据日期来看或者把这些文件挨个去查看一下;
4)webapps放了一些具体的web-apps(网站),每一个webapp都是一个目录,里面可以包含一些前端代码(HTML,CSS,JS),还可以包含一些后端代码(.class),还包含一些资源(图片,字体,图标,音频),直接把打包好的内容放到web-apps这个目录里面就可以了;webapps目录里面存放的就是我们进行部署的Servlet程序,每一个Servlet程序都是一个以war为后缀名的文件,war包也是一种压缩包的形式,Tomact会把这个war包进行解压缩得到一个目录,每一个war包其实就是对应了一个webapp,其实就是相当于是一个网站,一个Tomact上面是允许部署多个webapp网站的;
5)lib:主要是Tomact所依赖的组件;
正是因为说我们的一个Tomact上面可以同时部署很多个Servlet程序,所以说我们就可以把Tomact称之为是Servlet的容器,或者简称之为容器
容器这个词在JAVA的圈子里面已经被用滥了
1)JAVA中的集合类;
2)Tomact是Servlet的容器,一个Tomact上面就可以进行部署很多的webapp;
3)Spring也可以进行管理很多的Bean对象,因此Spring也是可以被称之为Bean的容器;
4)Docker也是涉及到容器的概念,Docker又可以被称之为是一个轻量级的虚拟机,就是软件模拟出来的一个计算机,一个Docker程序里面,可以有多个轻量级虚拟机,每一个轻量级虚拟机又可以包含很多程序,这个轻量级虚拟机就被称之为是容器;
Tomact的使用
我们使用tomact的最大作用,就是为了部署一个webapp网站,
1)静态页面:纯前端生成的代码,不需要服务器生成数据;
2)动态页面:前后端搭配的代码,需要服务器生成数据;
部署静态页面:
1)我们首先来写一个html文件,名字就叫做hello.html,然后把它放到tomact中的webapp中的root目录里面,这个过程中必须重启tomact;
此时我们应该进行访问的url地址应该是:127.0.0.1:8080/webapps目录下面的html文件的完整名字
2)这时在浏览器上面输入的地址是http://127.0.0.1:8080/hello.html没有打开扩展名的时候文件名叫作hello;
3)双击html文件,也可以看到页面内容,但是这个过程相当于是用浏览器打开一个本地的文件,部署到tomact中,是通过输入一个URL,通过网络来访问的,别人电脑上部署,咱们也可以访问;
虽然我们现在暂时部署了页面到我们的tomact上面了,但是这里还是有一个问题,如果说当前页面简单还好,直接放到ROOT目录就可以了,但是如果假设说当前页面比较复杂,里面有若干个HTML,CSS,JS,如果说我们全部进行堆积到ROOT目录里面,就会十分的不优雅,所以我们需要在webapps目录里面创建一个单独的目录,把你的项目整个都部署到这个目录里面
4)我们也可在webapps目录中,创建出一个目录叫做Java,再把world.html文件放到java里面,此时在访问浏览器,这是访问的路径就是http://127.0.0.1:8080/java/world.html这里要注意,要是涉及到文件图片的操作,必须把图片的文件粘贴到Java文件里面,这个新创建出来的java目录也叫做Content-path;
咱们如果说你的页面上面出现了404,那么结果就是说你进行访问的资源不存在,第一个可能是你访问的路径就不对,要么是路径虽然是对的,但是资源没有被服务器加载起来,需要重新启动服务器;
当我们的Tomact搭配了一个公网IP的时候,我们就可以把我们自己做好的页面,做好的这些程序部署到Tomact上面,从而我们就可以通过网络在世界上的任意一个角度来连接到我们的服务器;
1)以上我们的内容都是基于Tomact来部署静态页面,静态页面的意思就是页面内容就是固定不变的,后面我们还需要进行学习基于Tomact来生成动态页面,就是本质上是根据用户输入的不同,会得到不同的结果;
2)像搜狗主页这种页面,其实本质上就是静态页面,像搜狗的搜索结果页,这种界面就是动态页面,用户输入不同的词,得到的结果最终就是不一样的;
咱们要进行web开发,本质上还是在动态页面这边,我们要重点学习的,还是动态页面的构造,学习Tomact给我们程序员提供的这一组用来操作HTTP的API;
Jar包和War包的区别:
1)jar包就是普通的java程序打包的结果,里面会包含所有的.class文件
2)咱们的war包是JavaWeb的程序,里面除了会包含.class文件之外,还会包含HTML,CSS,JAVAscript,图片,以及其他的jar包,打成war包格式才可以被Tomact识别;
咱们写代码也是有很多依赖的,比如说要依赖于标准库,也要依赖于一些第三方库,比如说第三方库引入的一些jar包,如果你是手动管理这个依赖,因为你不光要研究清楚,每一个库要依赖于其他哪一些第三方库,以及依赖的版本之间是如何进行关联的;
1)下面的Name和Location我们要在这里面填写项目的名字和存储的路径;
2)下面的GroupID表示你所在公司的组织,你的ArtifactID表示当前这个项目的名字,你的Version表示当前项目的版本,这三个东西的用途就是假如你写了一个程序,你要发布到maven中央仓库上面,这三个参数就表示你这个程序在中央仓库里面的身份标识;
maven中央仓库:
因为我们的JAVA的这个圈子里面有很多大佬实现了很多的第三方库,这么多第三方库,组织形式就是说把他们统一放到一个中央仓库里面,方便于用户去进行查找
1)咱们使用最多的一个操作就是打包操作,打包不仅仅是完成打包,而是会执行上面的所有操作,这里面的打包结果一般是一个war包或者是一个jar包
2)maven管理依赖:我们可以使用maven来帮我们进行下载并进行安装第三方库