【JavaWeb】Tomcat的配置与初识Servlet

目录

前言

一、认识Tomcat

1.1、Tomcat是什么

1.2、Tomcat的下载安装

1.3、Tomcat目录介绍

 1.4、启动Tomcat

 1.5、使用Tomcat部署静态页面

二、使用Servlet来输出Hello World!

2.1、Servlet是什么

2.2、Servlet输出Hello World!的七大步骤

2.3、具体过程

2.3.1、创建maven项目

 2.3.2、引入依赖

 2.3.3、创建目录

2.3.4、编写代码

2.3.5、打包程序

 2.3.6、部署

 2.3.7、验证程序

 2.4、简化步骤

前言

        本篇博客主要简单介绍一下Tomcat及其使用和Servlet的基本使用,再使用Servlet来打印Hello World。

一、认识Tomcat

1.1、Tomcat是什么

        Tomcat 是一个 HTTP 服务器. 前面我们已经学习了 HTTP 协议, 知道了 HTTP 协议就是 HTTP 客户端和 HTTP 服务器之间的交互数据的格式. 同时也通过 ajax 和 Java Socket 分别构造了 HTTP 客户端. HTTP 服务器我们也同样可以通过 Java Socket 来实现. 而 Tomcat 就是基于 Java 实现的一个开源免费, 也是被广泛使用的 HTTP 服务器.

1.2、Tomcat的下载安装

下载地址:https://tomcat.apache.org/download-80.cgi

这里我们下载的是Tomcat 8,进去之后只要下载压缩包即可,解压缩后即可使用。 

【JavaWeb】Tomcat的配置与初识Servlet_第1张图片

1.3、Tomcat目录介绍

【JavaWeb】Tomcat的配置与初识Servlet_第2张图片

 1.4、启动Tomcat

        启动Tomcat,对于Window用户只需要双击运行bin目录里的startup.bat即可,对于Linux和mac用户,只要运行startup.sh就可以。

 启动正常的话会出现以下黑框:

        乱码的原因是 :Tomcat 默认按照 UTF-8 的编码方式处理中文. 而 Windows 的 cmd 默认是 GBK 编码,这里乱码不影响使用,因此暂不做处理。

【JavaWeb】Tomcat的配置与初识Servlet_第3张图片

启动成功之后在浏览器中输入127.0.0:8080就会出现以下欢迎页面:

【JavaWeb】Tomcat的配置与初识Servlet_第4张图片

 常见的启动失败的情况:

        一般启动失败都是因为端口被占用,如果端口被占用了,我们启动之后,黑框就会很快一闪而过,不会停留。首先我们需要知道,Tomcat启动时会默认绑定8005和8080两个端口,所以一般这种情况我们只需要找到绑定了8080端口和8005端口的程序,将其关闭即可。

我们可以通过以下方法来关闭端口:

首先使用netstat -ano | findstr 8080的命令来找到对应的进程,接着在任务管理器中根据进程id来找到对应的进程,关闭对应的进程即可(下图中的最后一行就是进程id)

【JavaWeb】Tomcat的配置与初识Servlet_第5张图片

【JavaWeb】Tomcat的配置与初识Servlet_第6张图片

启动失败还可能是环境变量配置失败导致的,这时候需要我们去配置以下环境变量。如下图所示:

配置方法:可以参考这篇文章☞Tomcat 的安装与环境配置教程(超详细)-腾讯云开发者社区-腾讯云 (tencent.com)

 1.5、使用Tomcat部署静态页面

        静态页面:也就是内容始终固定的页面. 即使 用户不同/时间不同/输入的参数不同 , 页面内容也不会发生变 化. (除非网站的开发人员修改源代码, 否则页面内容始终不变). 对应的, 动态页面指的就是 用户不同/时间不同/输入的参数不同, 页面内容会发生变化。我们写的HTML就是静态页面。

我们只需要将我们的webapp拷贝到里面的就可以了,如下:

【JavaWeb】Tomcat的配置与初识Servlet_第7张图片

 上图中我拷贝了一个简单的web网站,内部目录如下:

【JavaWeb】Tomcat的配置与初识Servlet_第8张图片

        这时候我们直接在自己电脑浏览器中输入:127.0.0:8080/Blog_System/login.html就可以访问了,但是现在这样子仅限于在自己电脑上访问,要实现通过网络来访问,就需要部署到云服务器上,至于如何让部署到云服务器上,这个这里先不介绍,等到后续再介绍。这里先简单了解一下部署的到Tomcat上即可。

二、使用Servlet来输出Hello World!

2.1、Servlet是什么

        Srevlet是一种实现动态页面的技术. 是一组 Tomcat 提供给程序猿的 API, 帮助程序猿简单高效的开发一 个 web app。

2.2、Servlet输出Hello World!的七大步骤

要使用Servlet来输出Servlet来输出Servlet大致分为七个步骤:

1.创建一个maven项目

2.引入Servlet的依赖

3.创建目录(webapp)

4.编写代码

5.打包成war包

6.部署到Tomcat上

7.验证程序(发送请求验证)

2.3、具体过程

2.3.1、创建maven项目

        什么是maven项目?maven项目有什么用?maven是一个构建工具,功能是帮助我们去构建,测试,打包一个项目,相比于我们以前写的java程序都是直接点击开始运行就可以,因为以往写的都是只有一个java文件,简单且单一,但是,在一个真正的项目中,就会复杂很多,还会涉及到很多个模块,很多模块之间就可能会存在依赖关系,还有就是会依赖很多第三方库,由于以上问题,因此就诞生了很多构建工具,maven就是现在比较流行的,Ant则是一个老的构建工具,Gradle则是一个更新的构建工具,目前主要是andriod生态在使用。

        如何创建maven项目:

【JavaWeb】Tomcat的配置与初识Servlet_第9张图片

创建完成之后的目录结构如下所示:

【JavaWeb】Tomcat的配置与初识Servlet_第10张图片  

 2.3.2、引入依赖

        因为我们这里要使用Servlet来编写代码,因此需要引入Servlet的相关依赖。我们可以去MVN中央仓库引入依赖。MVN地址:Maven Repository: Central (mvnrepository.com)

具体我们需要引入哪些依赖呢?

第一个就是Servlet的依赖:进入之后直接搜索Servlet,点击第一个Java Servlet API就可以

 【JavaWeb】Tomcat的配置与初识Servlet_第11张图片

 进去之后下划选择Servlet 3.1版本,这个版本是和Tomcat 8.5版本相对应的:

【JavaWeb】Tomcat的配置与初识Servlet_第12张图片

 最后就是点击3.1.0进入,复制以下内容:

【JavaWeb】Tomcat的配置与初识Servlet_第13张图片

        复制以上内容之后,放到pom.xml中,需要注意的是在pom.xml中的dependencies标签中,如下所示:

【JavaWeb】Tomcat的配置与初识Servlet_第14张图片

        第一次引入依赖可能会比较慢,字体可能会是红色的,等到变成白色的就可以了,等的比较久的话可以刷新试一下(如下所示),实在不行的话就将maven改为国内源,具体如何修改可以参照这篇文章☞配置Maven项目国内源_小白学编程~的博客-CSDN博客

【JavaWeb】Tomcat的配置与初识Servlet_第15张图片

 2.3.3、创建目录

这里创建maven目录是固定套路的,只需要记住即可(大小写也是需要注意的):

【JavaWeb】Tomcat的配置与初识Servlet_第16张图片

        其中,web.xml中需要将以下文本复制进去(在IDEA中报红的话也属于正常情况,没问题的话可以忽略这种情况):



    Archetype Created Web Application

2.3.4、编写代码

        首先我们在main目录里的java目录中创建一个java文件,接着就可以编写代码了。

        在编写代码时HttpServlet如果标红了,原因一般是依赖引入失败了,可以尝试刷新一下,如果还不行的话可以重启IDEA一般就可以了。

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
//这个注解一定要写,且开头是"/",否则后续会出现404错误
@WebServlet("/hello")
public class Hello extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //会在控制台输出,客户端是看不到的
        System.out.println("Hello World!");
        //这个是给resp的body写入字符串,这个内容会被HTTP响应并返回给服务器显示到网页上
        resp.getWriter().write("Hello World!");
    }
}

2.3.5、打包程序

        我们需要将这个程序打包成war包,Java程序一般情况下是打包成jar包,而我们是要将程序部署到Tomcat上所以需要打成war包,war包相当于是Tomcat的定制版压缩包。

步骤如下所示:

【JavaWeb】Tomcat的配置与初识Servlet_第17张图片

 打包成功就会出现以下页面:

【JavaWeb】Tomcat的配置与初识Servlet_第18张图片

在目录中会多一个target 目录:

【JavaWeb】Tomcat的配置与初识Servlet_第19张图片

 但是此时打包的是jar包,为了打包成war包,我们可以在pom.xml中假如以下代码:

【JavaWeb】Tomcat的配置与初识Servlet_第20张图片

打包成war时的常见错误及解决办法:

错误:

解决办法(在pom.xml中加入以下代码就可以):

 
        
            
                org.apache.maven.plugins
                maven-war-plugin
                3.2.0

                
                
                    false
                
            
        
    

 打包完成后就如下图所示

【JavaWeb】Tomcat的配置与初识Servlet_第21张图片

 2.3.6、部署

首先我们先在文件夹中打开war包,如下所示:

【JavaWeb】Tomcat的配置与初识Servlet_第22张图片

 接着再将war复制到Tomcat的webapps中就算是部署完成了。

【JavaWeb】Tomcat的配置与初识Servlet_第23张图片

 2.3.7、验证程序

        在验证程序之前我们需要先启动Tomcat,接着去触发一个get请求,因为我们在上面的代码中重写了doGet方法,要输出的HelloWorld也是在doGet方法中,所以要执行doGet方法,要执行doGet方法就需要触发Get请求。这里只需要我们在浏览器中输入正确的url就可以了。

关于URL的几点注意事项:

        这里我们的程序是运行在我们自己的主机上的,所以URL就是127.0.0.1:8080,接着后面的路径就取决于我们打包后war包的名字,这里war包的名字也就是一级路径,也成为Context Path或Application Path标识了一个webapp。接着二级路径就是我们在代码中写的注解(这里的注解一定要带有"/"否则会出现404错误)。

 【JavaWeb】Tomcat的配置与初识Servlet_第24张图片

 上述都准备好之后就可以去浏览器中输入URL来验证程序了,结果如下:

【JavaWeb】Tomcat的配置与初识Servlet_第25张图片

        这时候在Tomcat服务器这边也是可以看到输出的(这个对应java程序中的System.out.println("Hello World!"))

 2.4、简化步骤

        上述七个步骤其实还是挺繁琐的,因此我们就可以借助IDEA中的一些插件中来简化一些步骤。具体我们可以借助smart Tomcat来简化打包部署的过程。

接下来就是具体的配置过程了:

【JavaWeb】Tomcat的配置与初识Servlet_第26张图片

 接着点击Plugins,搜索smart Tomcat点击下载就可以。【JavaWeb】Tomcat的配置与初识Servlet_第27张图片

 下载之后就可以开始配置了:

【JavaWeb】Tomcat的配置与初识Servlet_第28张图片

【JavaWeb】Tomcat的配置与初识Servlet_第29张图片 【JavaWeb】Tomcat的配置与初识Servlet_第30张图片

配置成功后就是以下页面:

【JavaWeb】Tomcat的配置与初识Servlet_第31张图片 配置过程中可能出现的错误:一般出现以下错误就是端口被占用了,只需要关闭端口即可

        这时候我们只要我们在IDEA中点击三运行之后,在浏览器中输入地址也可以正常访问,这时候IDEA的控制台就相当于Tomcat的服务端了。

【JavaWeb】Tomcat的配置与初识Servlet_第32张图片

【JavaWeb】Tomcat的配置与初识Servlet_第33张图片        这里的Context Path和拷贝到webapps中Context Path的区别:在IDEA中的Context Path是我们在配置smart Tomcat时自己配置的,而拷贝到webapps中的Context Path则是对应的war包名。 

        拷贝部署和使用smart Tomcat的区别:当我们的项目要真正上线时,还是需要通过拷贝的方式来部署的,smart Tomcat只适用于在开发阶段的调试阶段使用的。

你可能感兴趣的:(servlet,java)