Servelt学习记录(一)

Tomcat接受用户访问的过程

在学习Servelt之前,我们首先要下载和安装Tomcat,这相当于一个容器,来完成对于客户的请求进行的一些相应的回应
用户访问一个接口URL在Tomcat当中的表现
在这里插入图片描述
Tomcat完成一个请求的完整步骤
1,客户发出要求访问特定Servlet的请求
2,Tomcat接收到客户的请求,对其进行解析
3,Tomcat创建一个ServletRequest对象,在这个对象中包含了客户请求信息以及关于客户相关的信息,比如请求头,请求正文,以及客户的ip地址等等。
4,Tomcat还要创建一个ServletResponse对象,表示响应的对象。
5,Tomcat调用客户请求的Servlet的service()服务器方法,并且把ServletRequest和ServletResponse作为参数传递给service方法。
6,Servlet从ServletRequest对象中获取客户信息或者其他一些有用信息
7,Servlet获取数据并且利用ServletResponse生成响应结果。
8,Tomcat解析ServletResponse之后把响应结果返回给客户。
在这里插入图片描述

Tomcat安装之后的目录结构

在这里插入图片描述
1,bin:存放可执行文件
2,conf:存放配置文件
3,lib:对应依赖的jar包
4,logs:存放tomcat日志文件的
5,temp:存放零食文件的目录
6,webapps:存放我们自己编写的web项目的目录
7,work:存放运行时候的一些数据
Tomcat的组成结构
Tomcat由一系列可配置的组件构成,其中核心组件是Servlet容器组件,他是所有其他Tomcat组件的顶层容器。Tomcat的各个组件可以在Tomcat安装目录下的conf目录下的server.xml中配置。都是以XML的方式做配置的。Tomcat的元素可以分为如下四大类:
1,顶层类元素
包括<Server><Service>元素,它们位于整个配置文件的顶层。

2,连接器元素
<Connector>元素,代表介于客户与服务器之间的通信接口,负责将客户请求发送给服务器,并将返回结果发送给客户端。

3,容器类元素
代表处理客户请求,并生成响应结果的组件,有四种容器元素,分别是<Engine>,<Host>,<Context>和<Cluster>元素。

4,嵌套类元素:
代表可以嵌入到容器中的组件,比如<value>元素和<Realm>元素。

下面我们一一对各个元素进行解释:
1,<Server>元素:
<Server>元素代表整个Servlet容器组件,他是Tomcat的顶层元素。用大白话来说,你可以理解成为这个元素代表着我们的Tomcat服务器。<Server>元素中可以包含一个或者多个<Service>元素。

2,<Service>元素:
service元素包含一个<Engine>元素,以及一个或者多个<Connector>元素,这些<Connector>都共享一个<Engine>

3,<Connector>元素:
代表和客户程序实际交互的组件,他负责接收客户请求,以及向客户返回响应结果。

4,<Engine>元素:
每个<Service>元素只能包含一个<Engine>元素。<Engine>元素处理在同一个<Service>中所有<Connector>元素接收到的客户请求。

5,<Host>元素:
一个<Engine>元素可以包含多个<Host>元素。每个<Host>元素定义了一个虚拟主机,它可以包含一个或者多个Web应用。

6,<Context>元素:

<Context>元素是使用最频繁的元素。每个<Context>元素代表了运行在虚拟机上的单个web应用,一个<Host>元素中可以包含多个<Context>元素。

Tomcat部署Web项目

1,直接部署
1,比如我们在本地创建一个目录,名字叫做hellotomcat,然后我们再在这个目录下编写一个index.html文件
2,把这个目录赋值到tomcat下面的webapps目录下面面就好了
3,启动Tomcat,然后访问对应页面:

2,war包部署
有可能我们的项目中有大量的文件,如果我们直接赋值目录到webapps下,可能速度很慢。我们就可以使用war包部署。
1,删除我们刚刚赋值的webapps目录下面的hellotomcat。
2,对我们编写的hellotomcat目录压缩,压缩成zip格式,然后修改问你件的后缀名为war。
3,复制这个war包到tomcat安装目录下的webapps下面。
4,如果tomcat服务器启动着,那么会自动解压这个war包,并生成对应的hellotomcat文件。

3,外部目录部署
用上面的两种方式,我们还需要拷贝项目到tomcat,并且我们的项目的路径和访问的路径必须一模一样。其实是挺麻烦的。如果我们希望访问路径和项目路径不一样怎么办?
1,首先关闭tomcat。
2,进入conf目录下,编辑server.xml。
3,把滚动条拉动server.xml的最下面,然后再Host标签中配置我们的项目:

4,重启tomcat,然后访问:

这种方式部署非常的灵活,可以通过配置server.xml文件就达到目的,可以自定义访问的路径,可以不用拷贝。但是server.xml是tomcat的核心配置文件,我们一般情况下对于这种核心的配置文件,我们最好是不要修改它。稍不注意可能就会导致tomcat无法启动。非常的不安全。并且server.xml修改之后,还需要重启tomcat才会生效,非常麻烦。

4,Catalina配置部署
1,在config\Catalina\localhost目录下创建一个任意名字的xml,比如hehe.xml。
2,在hehe.xml中添加如下配置:

3,重启tomcat服务器,访问http://localhost:8080/hehe。然后重新访问。我们这里访问具体的web应用的路径和我们配置文件的名字是一样的。

4,在这种方式下,如果我们修改了hehe.xml,不用重启tomcat服务器,非常方便。

idea集成tomcat

1,配置tomcat
1,点击idea的run菜单,点击Edit Configurations菜单项
在这里插入图片描述
在这里插入图片描述

2,点击左上角的加号:

然后点击more items:

在这里插入图片描述

选择Tomcat Server,然后选择Local,然后,然后我们配置好tomcat的安装目录

在这里插入图片描述

3, 创建一个javaweb项目:
新建一个模块,选择javaweb类型项目
在这里插入图片描述

4,我们编辑我们项目中的index.jsp:

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2021/3/22
  Time: 14:37
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>Vge Hello jee</title>
  </head>
  <body>
    <h1>Vge Hello jee</h1>
  </body>
</html>

5,然后直接启动tomcat就好了,这个时候可能启动不成功,是因为我们tomcat的server.xml中配置的shutdown端口号是-1:

<Server port="-1" shutdown="SHUTDOWN">

这个时候我们随便填写一个1到65535之间的端口号就醒了

6,如果发现控制台输出乱码,修改conf/logging.properties:

java.util.logging.ConsoleHandler.encoding = GBK
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值