如何假装成一个服务端开发(一)html
如何假装成一个服务端开发(二)java
如何假装成一个服务端开发(三) android
如何假装成一个服务端开发(五)apache
本系列文章将会记录笔者从服务端小白一点点跋涉的过程。笔者是Android端开发,因此对java仍是有一些经验的,此次服务端的切入方向也是java web。内容比较零碎,学习路线不必定值得借鉴。有些词或者技术点可能会反复出现,由于刚开始对于某样东西的理解是极其粗浅的,随着学习的深刻,咱们必定会对原有的概念进行刷新认知,为了可以如实反映学习的路线,不会返回去补充知识点,而是会从新记录。擦……仍是等学点皮毛以后再来写前言吧……编程
就如标题说的"假装成服务端开发",实际上服务端开发的内容相比客户端而言,更是广阔,各类各样的框架层出不穷,因此若是不长时间学习实践,就靠书本知识和一些些demo,就只能到这个地步了。不过,谁不是从这个地步走上去的呢?小程序
开发系统: macOS浏览器
java : 1.8tomcat
开发工具 : IntelliJ IDEA安全
下载安装maven。网上资料不少,不过就是下载,解压,配置一个path而已。
maven就至关于android中的gradle的功能,包括管理你的文件结构,编译流程,依赖管理。实际上,咱们也可使用gradle来完成这件事情。可是因为在eclipse中对于gradle的支持并很差,而且业内使用maven的也比较多,因此习惯性的,你们仍是在用maven来维护java web项目。
用我微少的知识我知道,在搭建一个网站的时候咱们须要一个 WEB服务器,用百度的话说就是一个经过HTTP协议能够向浏览器等WEB客户端提供文档的程序。经常使用的WEB服务器有Apache,Nginx,Lighttpd,Tomcat等。
至于具体的工做原理,协议出来,各类各类结构图,咱们能够在完成“假装”以后再按需填充。面向对象编程嘛,先要有对象,而后再慢慢在对象里添加须要的东西。
在WEB服务器的逻辑中,咱们只能提供静态的请求网页,由于咱们没有中间服务代码可以在请求过来的时候根据请求作某些处理。为了解决这个问题,因而就引入了Servlet,所谓的Servlet就是,Servlet就是使用java编写的服务端的小程序,主要就是根据请求动态生成web内容。
而servlet容器就是装载这些小程序的容器。
Servlet容器和Web服务器处理一个请求的基本流程:
1. Web服务器接收到HTTP请求
2. Web服务器将请求转发给servlet容器
3. 若是容器中不存在所需的servlet,容器就会检索servlet,并将其加载到容器的地址空间中
4. 容器调用servlet的init()方法对servlet进行初始化(该方法只会在servlet第一次被载入时调用)
5. 容器调用servlet的service()方法来处理HTTP请求,即,读取请求中的数据,建立一个响应。servlet会被保留在容器的地址空间中,继续处理其余的HTTP请求
6. Web服务器将动态生成的结果返回到正确的地址。
下图标出了上述的六个步骤:
PS: servlet着重于控制端,展现端会使用jsp,不过如今jsp的替代仍是不少的,若是要学展现端,能够网上搜搜,选一门学学,至于笔者的学习流程中,暂时尚未展现端的安排。
Tomcat厉害了,首先他是一个servlet容器,另外他有个兼职,WEB服务器,因此不少新手入门教程的时候直接使用Tomcat完成了全部的服务部署流程,可是咱们要清楚,这里其实有两个部分的。
Tomcat的安装网上资料不少。
*.sh
文件用于 Unix 系统; *.bat
文件用于 Windows 系统。通常 web 项目路径结构
|-- webapp # 站点根目录 |-- META-INF # META-INF 目录 | `-- MANIFEST.MF # 配置清单文件 |-- WEB-INF # WEB-INF 目录 | |-- classes # class文件目录 | | |-- *.class # 程序须要的 class 文件 | | `-- *.xml # 程序须要的 xml 文件 | |-- lib # 库文件夹 | | `-- *.jar # 程序须要的 jar 包 | `-- web.xml # Web应用程序的部署描述文件 |-- <userdir> # 自定义的目录 |-- <userfiles> # 自定义的资源文件
webapp
:工程发布文件夹。其实每一个 war 包均可以视为 webapp 的压缩包。
META-INF
:META-INF 目录用于存放工程自身相关的一些信息,元文件信息,一般由开发工具,环境自动生成。
WEB-INF
:Java web应用的安全目录。所谓安全就是客户端没法访问,只有服务端能够访问的目录。
/WEB-INF/classes
:存放程序所须要的全部 Java class 文件。
/WEB-INF/lib
:存放程序所须要的全部 jar 文件。
/WEB-INF/web.xml
:web 应用的部署配置文件。它是工程中最重要的配置文件,它描述了 servlet 和组成应用的其它组件,以及应用初始化参数、安全管理约束等。
tomcat在conf文件夹下有一个 conf/server.xml 文件,该文件用于tomcat自己的属性设置。他有不少设置项,咱们能够在官网找到,用到一个学一个吧。
(扩展名为.War,Web Application Archive)包含所有Web应用程序。在这种情形下,一个Web应用程序被定义为单独的一组文件、类和资源,用户能够对jar文件进行封装,并把它做为小型服务程序(servlet)来访问。 war包是一个能够直接运行的web模块,一般用于网站,打成包部署到容器中。以Tomcat来讲,将war包放置在其\webapps\目录下,而后启动Tomcat,这个包就会自动解压,就至关于发布了。war包是Sun提出的一种web应用程序格式,与jar相似,是不少文件的压缩包。war包中的文件按照必定目录结构来组织。根据其根目录下包含有html和jsp文件,或者包含有这两种文件的目录,另外还有WEB-INF目录。一般在WEB-INF目录下含有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的servlet类和jsp,或者servlet所依赖的其余类(如JavaBean)。一般这些所依赖的类也能够打包成jar包放在WEB-INF下的lib目录下。
https://blog.csdn.net/snarlfuture/article/details/18473761
https://www.cnblogs.com/jingmoxukong/p/8258837.html?utm_source=gold_browser_extension
https://blog.csdn.net/ganquanzhong/article/details/80719703