概述
文章目录
- Tomcat介绍
- Tomcat下载
- Tomcat文件目录
- 如何用Tomcat部署代码
- Tomcat作用
- 部署静态页面
- Servlet
- Servlet是什么
- Servlet执行的功能
- Servlet工作原理
- Servlet使用方法
- 代码举例
- 关联请求
- 打包程序
- 部署程序
Tomcat介绍
前面我们已经了解了HTTP
协议,知道了HTTP
协议就是服务器和客户端之间交互数据的一种约定格式。同时介绍了几种从客户端构造请求的方式,如ajax
,Java中的socket
关键字,直接输入URL,form表单等等.
这里的socket
不仅可以实现请求,也可以实现http服务器对请求的响应,而 Tomcat就是基于Java实现的一个开源免费,也是被广泛使用的HTTP服务器
。
Tomcat由Apache、Sun和其他一些公司合作开发而成。
Tomcat服务器是一个免费开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不多的情况下,被普遍使用,是开发和调试JSP程序(Java Servlet 应用程序的用户界面)的首选。
Tomcat下载
官网下载链接:
https://tomcat.apache.org/
Tomcat下载之前需要安装Java的JDK
,如果没有安装JDK
,请先安装JDK
.配置好相关的环境变量。
选择好要下载的版本,点击对应的zip压缩包即可。
Tomcat文件目录
- bin:
binary
的缩写,一般表示一些二进制的可执行文件(启动文件startup.bat、关闭文件shutdown.bat) - conf:
config
的缩写,用xml格式表示的配置文件(修改端口号:server.xml,建议将server.xml备份) - lib:依赖的jar包
- log:日志文件(记录出错等信息),调试程序时经常用到
- temp:临时文件
- webapps:可执行的项目。默认作为存放开发项目的目录
- work:存放由jsp翻译成的.java源文件,以及编译的.class字节码文件(jsp ->java ->class)
其他文件
其中最重要的就是webapps文件,是web applications的简称,用来存放web应用的文件夹。
像一个能够进行响应的网站,就可以称为一个“web应用”。
如何用Tomcat部署代码
Tomcat启动
在bin
目录下,有startup的两个启动脚本,双击这两个脚本中的任何一个都可以启动Tomcat,只不过startup.bat
是在Windows环境中,startup.sh
是Linux Shell ,是在Linux/Mac环境中使用。
双击后出现如下界面,当出现startup中的提示时,就表示启动成功。
启动成功后,在浏览器中输入127.0.0.1:8080,就可以访问Tomcat页面
127.0.0.1 环回IP,表示当前主机。而8080是Tomcat默认绑定的端口号,可以通过配置文件来修改。
Tomcat 也支持HTTPs,默认没有开启,
如果开启了HTTPs,默认的端口是8443
Tomcat作用
使用Tomcat
主要的目的就是为了能够部署一个webapp(网站)
一个网站中的内容类型,基本上可以分为两类,一个是静态页面,一个是动态页面。
静态页面
:只有前端代码运行,不需要服务器生成数据,内容始终固定,即使用户、时间、输入的参数等发生变化,页面内容也没有变化(除非修改源代码)
动态页面
:有前后端代码,需要服务器生成数据,用户、时间、输入参数、事件等不同时页面内容都有不同的变化。
像bilibili网站,点击就能播放视频,是动态的,而前面博客中写过的HTML文件形成的网页,都是静态的,不能实现交互。
部署静态页面
部署静态页面到Tomcat上。只需要把页面文件放到webapps目录中即可。
部署到Tomcat后,就可以通过网络来访问页面内容,别人部署在Tomcat中的HTML之类的静态文件也可以访问,如果是直接部署到云服务器上,那所有的人都可以访问。
举例:部署一个HTML文件
将下面的代码部署到Tomcat中,并通过网络进行访问。
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0,
maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>hello</title>
</head>
<body>
<div>hello</div>
</body>
</html>
将文件复制到webapps中目录中或者ROOT目录中。
然后在浏览器中输入127.0.0.1:8080/hello.html即可成功访问。
其他的部署一些前端文件,JS,或者css,或者带有一些图片等或者一个比较复杂的页面,都与上面的例子类似,当代码量过大,文件类型过多时,可以单独放到一个文件夹中,与ROOT目录并列即可,然后在浏览器中URL输入对应的路径即可。
Servlet
Servlet是什么
Servlet (Server Applet
,服务应用程序),全称是Java Servlet
,是用Java编写的服务器程序,主要的功能是交互式的浏览和修改数据,动态的生成Web页面内容,是一种实现动态页面的技术.
狭义的Servlet是指Java语言实现的一个借口,广义的Servlet是指任何实现了这个接口的类。 大多数情况下,Servlet指的是后者。
Servlet可以理解为Tomcat服务器提供给开发真的一组api,供程序员使用。
Servlet执行的功能
- 读取客户端(浏览器)发送的显式数据,包括网页上的HTML表单,或者也可以是来自applet或者自定义的HTTP请求表单
- 读取客户端(浏览器)发送的隐式的HTTP请求数据。这包括cookies、媒体类型、浏览器能解释的压缩格式文件等
- 处理数据并生成结果。在此过程中,可能会访问数据库,执行RMI或者CORBA调用、调用一些Web服务、或者直接计算出响应结果
- 发送显式数据到客户端,显式数据 的格式不限,可以是文本文件(HTML/XML)、二进制文件、Excel等等。
Servlet工作原理
- 客服端先发送请求到服务器
- 服务器启动并开始调用Servlet,Sercvlet根据客户端的请求生成响应内容并将其传给服务器
- 服务器将响应返回给客户端
Servlet使用方法
类似于之前写的TCP服务器的步骤:
1.首先初始化
2.然后进入循环
读取请求
根据请求计算响应
把响应返回
在使用Servlet开发时,要做的事情也是这样
1.首先初始化,允许开发者注册一个类到Tomcat中,让这个类和HTTP中的一个特定 的请求相关联
2.然后进入循环(循环的处理很多很多的请求)
读取HTTP请求,Servelet解析这个请求字符串,然后生成一个HttpServletRequest对象
根据请求对象生成一个HttpServletResponse对象(表示响应),根据请求生成响应,这个过程,就是初始化阶段注册的类里面的代码完成的。
把HttpServletResponse对象转换成HTTP响应,返回给服务器
(开发者只需要关注上面的黑体字的环节,剩下的环节Tomcat/Servlet已经帮我们实现好了)
代码举例
创建一个Servlet的项目(在idea 中直接使用Maven即可)
1.创建一个Maven 项目
2.引入依赖,引入Servlet api 的jar包。
<dependencies>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
上面的scope标签表示当前的jar包只是在开发阶段使用,而不需要打包到最终的发布包中
Tomcat中里面已经内置了Servlet,我们不需要把自己代码中的Servlet再重复部署到Tomcat中。
public class HelloServlet extends HttpServlet {
//创建的代码 需要继承自HttpSevlet 类~然后才能让这个类被Tomcat调用
//重写doGet方法
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doGet(req, resp);
}
}
doGet
方法 是HttpServlet
这个父类的方法。
此方法的参数有两个,分别是HttpServletRequest
和HttpServletResponse
,即HTTP请求和HTTP响应。doGet
方法里要做的事情,就是根据请求来生成响应。
我们上面在使用时,重写了doGet方法,这样就不需要手动调用doGet,而是由Tomcat自动来调用。也不需要手动创建HelloServlet 实例,也是由Tomcat自动的创建实例。
doGet方法中自带的super.doGet(req, resp)是直接构造了一个错误响应(状态码为405的响应),重写时注释掉。
下面构造一个简单的响应
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class HelloServlet extends HttpServlet {
//创建的代码 需要继承自HttpSevlet 类~然后才能让这个类被Tomcat调用
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//super.doGet(req, resp);
resp.getWriter().write("hello world");
}
}
resp是HttpServletResponse响应对象, 调用给对象的getWriter
方法,在响应报文的body中写入一个“hello world”字符串。
关联请求
在构建好了HelloServlet类的代码后,我们需要将这个类和特定的HTTP请求关联起来。
即收到特定的请求时,执行这个类的代码
关联方式:
在类的上方写入以下代码:
@WebServlet("/hello")
这里的@WebServlet是Servlet中提供的注解,其功能就是 把类和HTTP特定的请求进行关联。根据HTTP请求URL的路径来进行关联。
后面的/hello的作用是,如果Tomcat收到了路径为 /hello 的请求,就会调用HelloServlet类中的代码。
如果这个请求是GET请求,就会执行HelloServlet类中的doGet方法。
如果这个请求是POST请求,就会调用到HelloServlet类中的doPost方法。
打包程序
使用 maven 进行打包. 打开 maven 窗口 (一般在 IDEA 右侧就可以看到 Maven 窗口, 如果看不到的话,
可以通过 菜单 -> View -> Tool Window -> Maven 打开)
然后展开 Lifecycle , 双击 package 即可进行打包.
在运行窗口中出现以下字样,说明打包成功。
打包成功后可以在左边看到对应的jar包。
虽然打包成功,但Tomcat并不能识别jar格式的包,只能识别另一种格式的包war包。
war包和jar包的区别
jar包是普通的java程序打包的结果,里面会包含一些.class文件。
war包是java web的程序,里面除了会包含.class 文件,里面不仅包含.class文件,还会包含HTML,CSS,JavaScript文件、图片等。
部署程序
将上面压缩好的war包复制到webapps目录下,然后当我们启动Tomcat时,Tomcat会自动解压缩这个war包。
然后在浏览器中输入对应的URL,就可以看到对应的效果。
输入url时可以按照以下格式:
http://服务器的ip:8080/ContextPath/[WebServlet注解中描述的路径]
文章参考:
https://blog.csdn.net/qq_38490457/article/details/108440922?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164751130316782094879244%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=164751130316782094879244&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-2-108440922.142v2pc_search_result_cache,143v4register&utm_term=tomcat&spm=1018.2226.3001.4187
最后
以上就是现代柜子为你收集整理的JavaWeb~Servlet~Tomcat介绍/安装/部署静态页面/Servlet介绍/执行的功能/工作原理/使用方法/关联请求/打包部署Tomcat介绍Tomcat下载Tomcat文件目录的全部内容,希望文章能够帮你解决JavaWeb~Servlet~Tomcat介绍/安装/部署静态页面/Servlet介绍/执行的功能/工作原理/使用方法/关联请求/打包部署Tomcat介绍Tomcat下载Tomcat文件目录所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复