Tomcat的安装和基本使用教程

在本文中您将了解到Tomcat的下载安装教程以及基本使用方法,语言通俗易懂,适合快速上手。

一、Tomcat简介

1、Tomcat概述和使用场景

Tomcat是一款开源的Servlet容器,实现了对Servlet和JSP规范的支持。 Tomcat 本身内含了一个 HTTP 服务器,所以也可以被当作一个 Web 服务器来使用。

当我们完成一个HTML前端页面的编写时,需要一个Web服务器来接收HTML信息,此时除了我们可以自己编写这个网页外(方法附在文末),还有便是使用Tomcat开源服务器来完成。

2、Tomcat里各配置文件的功能

Tomcat各配置文件功能
配置文件名称概述和主要功能
binbinary二进制可执行脚本文件,其中.bat后缀适用于windows系统,.sh后缀文件适用于Linux操作系统。
confconfig配置文件,存放应用程序配置信息的模块或文件夹。
liblibrary库,通常包含一系列可重用的代码模块或函数集合。在这里存放 Tomcat 服务器的 jar 包。
logslogs日志文件,存放出现的错误便于修改。
temptemp临时文件,在运行过程中出现的临时文件(可删)。
webappswebapps存放项目资源的目录,里面有我们创建的项目。
work

work工作目录,记录了我们工作的基本信息,很重要。

二、Tomcat下载安装教程

1、Tomcat的下载

首先登录Tomcat官网:Apache Tomcat® - Welcome!icon-default.png?t=N7T8https://tomcat.apache.org/找到Download栏,选择自己想要下载的Tomcat版本.

在这里,笔者选择了较为稳定的Tomcat9版本,点击后打开可看到如下界面。

我们可以根据自己的电脑配置来选择合适的安装包(ps:电脑配置可以在设置->系统->系统信息中查看)一般为64位,点击即可开始下载。

温馨提示:下载完成后记得将它放在一个合适的路径下哦!

2、环境变量的配置

配置Tomcat环境变量前一定要配置好java的环境变量,尤其是JAVA_HOME。

其中需要注意的一点是,在环境变量时,不可以将jdk的路径直接放到path中,而是要通过一个JAVA_HOME作为中间变量来完成。

所以一个正确的环境变量配置应该是:

在path变量下的值有%JAVA_HOME%\bin

而同时有一个JAVA_HOME变量,值指向你的JDK存储的位置(注意最好不要有中文)。

三、Tomcat基本调试

1、启动和结束Tomcat

在前文中讲到在Tomcat配置文件中有bin二进制可执行脚本文件,其中便有我们使用Tomcat必须要打开的startup.bat或者startup.sh(区别在于你使用的操作系统是Linux还是Windows,在这里笔者使用的系统为Windows,故下面以.bat后缀文件展开演示)

点击Tomcat->bin->startup.bat,即可打开一个cmd界面如下。

此时我们发现由于中间出现了中文,没有很好的兼容导致了乱码。

需要我们进行一下调整,打开Tomcat->conf->logging.properties

将其中的UTF-8 改为 GBK,如上图所圈的地方

java.util.logging.ConsoleHandler.encoding = UTF-8
替换为java.util.logging.ConsoleHandler.encoding = GBK

替换结果如下图所示

此时再看运行结果就已经可以正常显示中文了。

当我们看到最后一行有服务器启动的字样,就说明Tomcat就已经可以正常启动运行了。

那我们又该如何结束Tomcat呢?

主要有两种方法。

一是简单粗暴的点击右上角界面的关闭按钮,这种在一般情况下都是可以的,但是也可能会出现错误,造成关闭异常。

二是通过Tomcat->bin->shutdown.bat关闭,这种比较安全,也比较符合流程。

2、测试是否功能正常

当我们可以正常打开Tomcat后,我们需要进行下一步的功能测试,那就是在startup.bat运行的情况下,打开一个浏览器,输入网址 http://127.0.0.1:8080 或者 http://localhost:8080,再回车查看显示页面。此时正常状态下是会到Tomcat上的,如下图所示。

四、使用Tomcat完成一个简单的网页测试

1、简单HTML网页的编写

在该例中我们模拟的是一个显示学生的基本信息的表格网页(是一个没有网页设计和前后端连接,只有信息的比较简易的网页),HTML代码如下。

<!DOCTYPE html>
<html>
	<head>
        <title>Student List</title>
    </head>
	<body>
		<table border='1' bgcolor="AntiqueWhite">
			<tr>
                <th>NO.</th>
                <th>NAME</th>
                <th>SEX</th>
                <th>AGE</th>
            </tr>
			<tr>
                <td>001</td>
                <td>ZhangSan</td>
                <td>m</td>
                <td>19</td>
            </tr>
			<tr>
                <td>002</td>
                <td>LiSi</td>
                <td>w</td>
                <td>10</td>
            </tr>
			<tr>
                <td>003</td>
                <td>WangWu</td>
                <td>m</td>
                <td>18</td>
            </tr>
		</table>
	</body>
</html>

页面显示情况如下。

2、连接Web服务器

我们可以发现,在当前路径下,我们只是完成了在本地的访问,而实际上一个网页的完成是需要实现交互的,通俗来说就是需要在网上访问的,也就是需要连接Web服务器,此时如果我们不想手写一个服务器的话,就需要用到我们的Tomcat了,那么具体该如何操作呢?

1.创建一个WebApp项目

点击Tomcat->webapps,在这个界面上我们可以看到原本就有的几个文件夹,这些也都是WebApps项目,其中有一个名为examples的项目,是我们需要重点关注和参考的创建规范。

我们在此界面上右击空白处选择新建文件夹,完成命名,注意不要带中文。本例中,我们命名为StuCour项目,将写好的HTML文件放到这个文件夹里。

2.在服务器上打开HTML文件

这个地方需要我们注意的是其实我们访问的根路径已经指向webapps了,我们在设置相对路径时只需要根据webapps下的路径来完成。

已知我们为了实验方便,只是将HTML文件存在了StuCour文件夹下,那么我们可以设置的网址就是 http://127.0.0.1:8080/StuCour/stuList.html,注意大小写不要拼错,要记得自己的文件名。

记得首先要打开startup.bat再访问网页!

此时我们便可以通过网页来访问它啦!

这就是我们这一节学到的简单的Tomcat完成网页访问的例子,希望大家理解记忆。

五、常见debug解决方案

1、8080端口被占如何处理

首先Win+R键打开cmd命令框,然后输入 netstat -nao 查看PID值

在任务栏右键打开任务管理器,找到对应的进程并把它关掉。

六、扩展:如何自己搭建简易服务器完成网页测试

这里我们主要介绍两种方法来自己搭建非常简易的服务器,可以接收请求request。

1、直接代码法

import java.net.*;
import java.io.*;
public class Server {
	public static void main(String[] args) throws Exception
	{
		ServerSocket ss = new ServerSocket(10002);
		Socket s = ss.accept();
		InputStream in = s.getInputStream();
		BufferedReader br = new BufferedReader(new InputStreamReader(in));
		String str = br.readLine();
		String [] strs = str.split(" ");
		if(!strs[1].equals("/stuList.html"))
		{
			s.close();
			return;
		}
		OutputStream out = s.getOutputStream();
		PrintWriter pw = new PrintWriter(new OutputStreamWriter(out));
		pw.println("HTTP/1.1 200 OK");
		pw.println("Content-Type: text/html");
		pw.println("");
		pw.println("<!DOCTYPE html>");
		pw.println("<html>");
		pw.println("<head><title>Student List</title></head>");
		pw.println("<body>");
		pw.println("<table border='1' bgcolor='AntiqueWhite'>");
		pw.println("<tr><th>NO.</th><th>NAME</th><th>SEX</th><th>AGE</th></tr>");
		pw.println("<tr><td>316</td><td>LuoYiZhou</td><td>m</td><td>24</td></tr>");
		pw.println("<tr><td>226</td><td>HuYiTian</td><td>m</td><td>30</td></tr>");
		pw.println("<tr><td>223</td><td>WangXinYi</td><td>w</td><td>19</td></tr>");
		pw.println("</table>");
		pw.println("</body>");
		pw.println("</html>");
		pw.flush();
		s.close();
	}
}

通过这段代码我们可以看出,我们直接将请求报文的格式内容以及HTML代码写入了打印流中,这种方法比较适用于代码工程量较小的项目,并且有修改HTML内容的需求的。

2、文档嵌入法

import java.net.*;
import java.io.*;
public class Server {
	public static void main(String[] args) throws Exception
	{
		ServerSocket ss = new ServerSocket(10002);
		Socket s = ss.accept();
		InputStream in = s.getInputStream();
		BufferedReader br = new BufferedReader(new InputStreamReader(in));
		String str = br.readLine();
		String [] strs = str.split(" ");
		OutputStream out = s.getOutputStream();
		PrintWriter pw = new PrintWriter(new OutputStreamWriter(out));
		BufferedReader fr = new BufferedReader(new FileReader("d://HTML/htmlcode/webroot" + strs[1]));
		pw.println("HTTP/1.1 200 OK");
		pw.println("Content-Type: text/html");
		pw.println("");
		
		while((str = fr.readLine())!=null)
		{
			pw.println(str);
		}
		
		pw.flush();
		s.close();
	}
}

可以看出这种利用了访问一个文档的形式,简化了我们将request直接写入代码的繁琐,它适用于工程量较大的项目,但是缺点是没有办法直接访问HTML代码。

3、如何完成测试

我们只需要在eclipse上运行该代码,并在输入网址 http://127.0.0.1:10002/stuList.html 即可访问。

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值