【计算机网络】Tomcat和Servlet基础知识汇总

简介: 【计算机网络】Tomcat和Servlet基础知识汇总

1.Tomcat:

  1. Tomcat是一个HTTP的服务器,本质上就是一个TCP服务器,只不过加上了一些按照HTTP协议格式进行解析/构造这样的代码。
  2. 学习Tomcat的目的就是能够熟练掌握Tomcat api,基于Tomcat开发网站后端程序,基于这些http服务器进行二次开发。
  3. 将前端和后端代码放到webapps目录里面就可以通过自己的浏览器来访问了。在webapps目录下创建一个文件就被视为一个webapp,文件创建好之后需要重启Tomcat,才可以在浏览器上正常访问到。
  4. Tomcat是运行在JVM上的,跨平台!默认的编码是UTF-8,而windows的cmd默认编码是gbk。
  5. 若没有写具体的路径则默认是在webapps的ROOT目录下进行查找若文件没有给出路径并且文件名也不在ROOT中存在,就会报404务必要保证是在webapps目录中进行访问!

2.Servlet

  1. Servlet就是Tomcat给程序员提供的进行二次开发的api。
  2. 静态页面和动态页面的概念。静态页面意思就是页面是固定的(以文件的形式,放在硬盘指定的的目录当中),无论是什么时候什么人来访问都是一样的页面。而动态页面不是一个真实的硬盘文件,而是代码在内存上构造出来的”虚拟文件资源“,不同的人不同的时间访问的页面就会不同。举个例子:我开水果摊,静态页面就是已经切好的水果,每一盒都是一样的;动态页面就是个性搭配,需要现做一个。
  3. 静态页面直接拷贝到webapps里面就行;动态页面就需要基于Servlet api进行写代码实现。
  4. 使用Servlet来编写一个hello world,

一共7个步骤:

1.创建项目

2.引入Servlet依赖

3.创建目录结构

4.编写代码

5.打包程序

6.部署程序

7.验证程序

  1. 第1步:创建一个maven项目。maven是一个作用不限于编译、打包、部署的构建工具(build)。我们使用maven主要就是借助maven进行编译、打包和管理依赖。
  2. 第2步:引入Servlet依赖。Servlet不是Java标准库自带的需要下载并引入到项目中。maven的一个核心功能就是能够自动的管理依赖,就会把咱们使用的库里依赖的东西自动从中央仓库上下载下来。
  3. 第3步:创建目录结构。虽然maven已经创建出了一些目录但是还不够,还需要搞一个符合Tomcat要求的目录结果。这个目录结构的位置名称层次都要严格的一致,还需要在web.xml中复制一段代码。schema文件就描述了xml中都允许写哪些节点,节点之间的层级关系,哪些属性是违法的。
  4. 第4步:编写代码。把要编写的代码放到java这个目录下。Tomcat可以关联上很多路径,这样就关联上了不同的类,也就执行了不同的方法了。

@WebServlet("/hello")  会针对某些GET请求生效

这里写的是“/hello”

意思是 GET请求并且url里面的路径是 /hello 的请求才会生效

这样Tomcat才会调用到这里的doGet方法

  1. 第5步:打包程序。之前我们写的代码都是带main方法的相当于一个小汽车自带发动机(自己就能跑),当前我们写的Servlet代码没有main方法,就相当于一个火车车厢必须要把车厢挂到车后后面才可以跑起来(车头就是Tomcat,Tomcat带main,自带个发动机)。把写好的代码挂到火车头后面的过程就是打包+部署。一个类就是一个.class文件,是在方法区里加载的。当打包完成之后(打成了jar包),但Tomcat不使用,因为Tomcat要求的压缩包格式是war包。因此需要在pom.xml文件中配置。
  2. 第6步:部署程序。就是把war包拷贝到Tomcat的webapps中
  3. 第7步:验证程序。通过浏览器构造一个HTTP请求来访问Tomcat中的服务器,Tomcat服务器就会解析请求。例如:构造一个请求:127.0.0.1:8080/servlet/hello 。大致是先匹配Context Path第一级路径(/servlet),再匹配Servlet Path第二级路径(/hello),最后匹配HTTP方法。

浏览器发送的请求时怎么和自己写的代码建立联系的:

Tomcat服务器解析请求:

1.获取到URL中的第一级路径/servlet(Context Path / Application Path),就是确定一个webapp。

2.找到webapp之后就会加载里面的类,重点就是去识别出@WebServlet注解修饰的类。

 取出URL中的第二级路径/hello(Servlet Path)

 就在@WebServlet注解中找到名字为/hello的这个类

 找到类之后创建实例,这个实例只会创建一次,如果之前创建过就直接使用上次的实例

3.再解析出HTTP请求的方法(如果是GET),取出GET之后就根据HTTP方法来调用对应的Servlet中的(do...方法),

 同时Tomcat还会构造出HttpServletRequest对象和HttpServletResponse对象

  1. Tomcat中的main方法主要做的事情就是针对webapps里的webapp进行加载将Context Path、Servlet Path和请求的方法加载到内存上。
  2. 使用Servlet编写个hello world这7个步骤中,第5和6步可以合并在一起。在idea中可以使用第三方的Smart Tomcat插件(plugin)来完成”一键式“的打包和部署。
  3. 如果Tomcat已经启动了,此时smart tomcat调用的tomcat就会绑定端口号失败。“一山不容二虎”!

一个程序能不能绑定多个端口号?

  -> 一个人能不能有多个手机号? 可以

一个端口号能不能被多个程序绑定?

  -> 一个手机号能不能被多个人使用? 不可以

  1. tomcat的运行方式有多种?

1.直接在startup.bat上运行,需要手动拷贝war包到webapps目录中

2.直接通过java代码,调用Tomcat的jar包运行,不需要拷贝war包。

 在webapps的目录中不会有war包,也没有欢迎页面(没有加载webapps目录下的东西)

  1. Context Path分成俩种情况来看待:(这是Tomcat俩种不同的运行模式,这俩种模式对Context Path的认知是不一样的!)
  2. 使用Smart Tomcat 时经常会遇到的问题。404:路径写错了或者是你的webapp没有被tomcat正确的加载(web.xml写错了,web.xml是tomcat加载war包的重要依据!)。405:请求的方法服务器这里没有实现(GET请求,服务器这里是doPOST方法就会出现405)或者是没有把super给删了。500:服务器这里的代码出BUG了。空白页面:说明服务器没有响应。无法访问此网站:说明tomcat服务器没有启动或者是IP地址端口号写错了。

如果对您有帮助的话,

不要忘记点赞+关注哦,蟹蟹

如果对您有帮助的话,

不要忘记点赞+关注哦,蟹蟹

如果对您有帮助的话,

不要忘记点赞+关注哦,蟹蟹

相关文章
|
2月前
|
网络协议 算法 网络架构
计算机网络期末复习——基础知识汇总(二)
计算机网络期末复习——基础知识汇总(二)
45 0
|
6月前
|
前端开发 应用服务中间件 C++
使用Servlet实现表白墙网站(前后端互联)小项目,Mac的M1(没有setting)在哪里找到Setting页面,下载smart tomcat及smart tomcat的配置。(二)
使用Servlet实现表白墙网站(前后端互联)小项目,Mac的M1(没有setting)在哪里找到Setting页面,下载smart tomcat及smart tomcat的配置。
使用Servlet实现表白墙网站(前后端互联)小项目,Mac的M1(没有setting)在哪里找到Setting页面,下载smart tomcat及smart tomcat的配置。(二)
|
7月前
|
安全 Java 应用服务中间件
【JavaWeb】Tomcat底层机制和Servlet运行原理
网络通信:Tomcat使用Java的Socket API来监听特定的端口(通常是8080),接收来自客户端的HTTP请求。 线程池:Tomcat使用线程池来处理并发的请求。当有新的请求到达时,Tomcat会从线程池中获取一个空闲线程来处理该请求,这样可以提高处理效率。 生命周期管理:Tomcat负责管理Servlet和其他Web组件的生命周期,包括初始化、请求处理和销毁等阶段。(init(), run())
|
4天前
|
XML 前端开发 Java
Tomcat和Servlet
Tomcat和Servlet
6 0
|
1月前
|
网络协议 数据安全/隐私保护 网络架构
计算机网络基础知识汇总
现在的生活离不开网络,例如手机,电脑,平板,都是网络的代名词,通过一些APP,浏览器,获取大量的信息如文字、声音、视频,这都是从网络的某个地址存在的或者是网络的另一端某个用户通过设备共享的,网络是由若干节点和连接这些节点的链路构成,表示诸多对象及其相互联系,像我们平常办理宽带与手机办卡上网,都是通过向某一服务商缴费注册连上他们的设备,下载相应的聊天软件和浏览器就可以上网与他人交流、获取资源、浏览一些网络信息。
23 3
|
6月前
|
JSON 前端开发 JavaScript
使用Servlet实现表白墙网站(前后端互联)小项目,Mac的M1(没有setting)在哪里找到Setting页面,下载smart tomcat及smart tomcat的配置。(一)
使用Servlet实现表白墙网站(前后端互联)小项目,Mac的M1(没有setting)在哪里找到Setting页面,下载smart tomcat及smart tomcat的配置。
|
3月前
|
前端开发 Java 应用服务中间件
HTTP&Tomcat&Servlet
HTTP&Tomcat&Servlet
59 0
|
6月前
|
Java 应用服务中间件 Linux
HTTPS && Tomcat && Servlet && 博客系统 && 软件测试的概念 && Linux
HTTPS && Tomcat && Servlet && 博客系统 && 软件测试的概念 && Linux
29 0
|
7月前
|
Java 数据库连接 应用服务中间件
java-初识Servlet,Tomcat,JDBC
我们在此文章知道了servlet 是基于Java语言编写的服务器端程序,可以处理Web容器(如Tomcat)发送过来的HTTP请求,也写了实例代码,另外servlet的过滤器,可以用来处理请求前与请求后的一些逻辑。;接着简单了介绍了tomcat,知道Tomcat 作为一个 Web 服务器,可以通过 Servlet 容器来管理和运行 Servlet;最后介绍jdbc,以及jdbc连接数据库的实例代码。
54 0
|
7月前
|
Oracle Java 关系型数据库
Jsp/Servlet中tomcat基础配置
Jsp/Servlet中tomcat基础配置
59 0

相关实验场景

更多