• 在CentOS 7中手工打造和运行xml文件配置的Servlet,然后使用curl、浏览器、telnet等三种工具各自测试


    cat /etc/redhat-release看到操作系统的版本是CentOS Linux release 7.6.1810 (Core)uname -r可以看到内核版本是3.10.0-957.21.3.el7.x86_64
    在这里插入图片描述

    下载Openjdk并配置环境变量

    https://jdk.java.net/java-se-ri/11-MR2是官网下载Openjdk 11的地方。
    在这里插入图片描述

    sudo wget https://download.java.net/openjdk/jdk11.0.0.1/ri/openjdk-11.0.0.1_linux-x64_bin.tar.gz下载openjdk 11。
    在这里插入图片描述

    sudo mkdir -p /usr/openjdk11创建目录,sudo tar zx openjdk-11.0.0.1_linux-x64_bin.tar.gz -C /usr/openjdk11/把文件解压到/usr/openjdk11/目录里。
    在这里插入图片描述

    sudo vim /etc/profile把下边两行内容:

    export JAVA_HOME=/usr/openjdk11/jdk-11.0.0.1/
    PATH=$PATH:$JAVA_HOME/bin
    
    • 1
    • 2

    写进去。
    tail -n 2 /etc/profile看到/etc/profile最后两行的内容。
    在这里插入图片描述

    source /etc/profile使配置文件生效。
    在这里插入图片描述

    java -version显示如下就是配置好了:

    openjdk version "11.0.0.1" 2023-05-09
    OpenJDK Runtime Environment 18.9 (build 11.0.0.1+3-5)
    OpenJDK 64-Bit Server VM 18.9 (build 11.0.0.1+3-5, mixed mode)
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    下载Tomcat并解压

    https://archive.apache.org/dist/tomcat/是下载Tomcat的官网地址。
    在这里插入图片描述

    sudo wget -c https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.80/bin/apache-tomcat-9.0.80.tar.gz下载tomcat 9.0.80。
    在这里插入图片描述

    sudo tar zxf apache-tomcat-9.0.80.tar.gz进行解压。
    在这里插入图片描述

    创建Servlet,编译并运行

    sudo vim TestServlet.java把下边的内容写进去:

    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    
    public class TestServlet extends HttpServlet {
    
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            System.out.println("TestServlet 在处理get()请求...");
            PrintWriter out = response.getWriter();
            response.setContentType("text/html;charset=utf-8");
            out.println("Servlet doGet
    "
    ); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("TestServlet 在处理post()请求..."); PrintWriter out = response.getWriter(); response.setContentType("text/html;charset=utf-8"); out.println("Servlet doPost
    "
    ); } }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    在这里插入图片描述

    sudo javac -cp apache-tomcat-9.0.80/lib/servlet-api.jar TestServlet.java进行编译。
    在这里插入图片描述

    sudo mkdir -p apache-tomcat-9.0.80/webapps/MyWebApp/WEB-INF/
    sudo mkdir -p apache-tomcat-9.0.80/webapps/MyWebApp/WEB-INF/classes
    在tomcat中webapps目录下创建特定的目录。
    在这里插入图片描述

    sudo vim apache-tomcat-9.0.80/webapps/MyWebApp/WEB-INF/web.xml把下边的内容写进去:

    
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
      http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
      version="4.0"
      metadata-complete="true">
    
        <description> Servlet Example. description>
        <display-name> MyServlet Example display-name>
        <request-character-encoding>UTF-8request-character-encoding>
    
        <servlet>
          <servlet-name>myServletservlet-name>
          <servlet-class>TestServletservlet-class>
        servlet>
    
        <servlet-mapping>
          <servlet-name>myServletservlet-name>
          <url-pattern>/myservleturl-pattern>
        servlet-mapping>
    
    web-app>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    在这里插入图片描述

    sudo cp TestServlet.class apache-tomcat-9.0.80/webapps/MyWebApp/WEB-INF/classes/把上边sudo javac -cp apache-tomcat-9.0.80/lib/servlet-api.jar TestServlet.java生成的TestServlet.class复制到apache-tomcat-9.0.80/webapps/MyWebApp/WEB-INF/classes/里边。
    在这里插入图片描述

    sudo chmod u+x apache-tomcat-9.0.80/bin/startup.sh为当前用户给启动脚本加上可执行权限。
    在这里插入图片描述

    sudo apache-tomcat-9.0.80/bin/startup.sh启动。
    在这里插入图片描述

    sudo chmod u+x apache-tomcat-9.0.80/bin/shutdown.shshutdown.sh脚本给当前用户赋予可执行权限,sudo apache-tomcat-9.0.80/bin/shutdown.sh关闭tomcat。
    在这里插入图片描述

    测试

    curl测试

    curl http://localhost:8080/MyWebApp/myservlet访问一下。
    在这里插入图片描述

    浏览器测试

    在浏览器里边输入http://localhost:8080/MyWebApp/myservlet

    在这里插入图片描述

    telnet测试

    还可以使用telnet手工拼接报文。
    1.在命令行里边输入telnet
    2.在telnet>提示符下输入open 127.0.0.1 8080
    3.然后按下Ctrl+],请注意Ctrl在屏幕上显示为^
    4.在telnet>提示符下按下Enter
    5.然后输入GET /MyWebApp/myservlet HTTP/1.1,按下回车,再输入Host: localhost。即如下所示:

    GET /MyWebApp/myservlet HTTP/1.1
    Host: localhost
    
    • 1
    • 2

    6.按下Ctrl+c退出。

    在这里插入图片描述

    此文章为10月Day 25学习笔记,内容来源于极客时间《深入拆解 Tomcat & Jetty》

  • 相关阅读:
    OpenCL编程指南-11.1OpenCL嵌入式简档
    Dubbo的前世今生
    LeetCode_二叉树_中等_623.在二叉树中增加一行
    【良品】运维实施工程师面试题
    【C++】 局部对象,引用返回
    git 拉取tag分支
    JS排序算法
    继承(三) —— 继承中的作用域(父类成员 与 子类成员同名)
    spring之bean的生命周期
    TiDB 环境与系统配置检查
  • 原文地址:https://blog.csdn.net/qq_42108074/article/details/133713420