简学tomcat:自己写个Servlet、纯手工部署一个动态网站

1、首先使用IDEA创建一个Java项目(基于maven,但不用任何maven模板)
比如,我们这里就叫myjavaweb
这里写图片描述

2、我们要自己写个Servlet,需要下载一个库:Java Servlet API

使用maven搞定

    <dependencies>
        <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.0</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

3、创建自己的Servlet
这里写图片描述
新建一个名为MyServlet.java的文件,代码如下:

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 MyServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.getWriter().write("Hello World");
    }
}

我们上面代码可以看出,我们这个MyServlet类继承自HttpServlet,并且重写了doGet()方法。

4、编译
这里写图片描述
直接使用IDE工具Build之后,会在生成一个名为target的文件夹。这个文件夹之后会用到。

5、然后来到tomcat存放web项目的文件夹中(默认是webapps),创建一个任意名称的文件夹(比如我这里的myjavaweb),这个myjavaweb里需要一个固定名称的WEB-INF文件夹。
这里写图片描述

6、把之前Build好的文件,放进去。
然后在单独给这个网站做配置,web.xml可以为网站单独配置。
这里写图片描述
web.xml也是放在WEB-INF这个目录,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<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_3_1.xsd"
  version="3.1">

    <servlet>
        <servlet-name>zhangsan</servlet-name>
        <servlet-class>com.mydev.MyServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>zhangsan</servlet-name>
        <url-pattern>*.abc</url-pattern>
    </servlet-mapping>

</web-app>

从代码可以看出,我们配置了一个名为zhangsan的servlet,这个servlet映射我们自己的类com.mydev.MyServlet;并且我们设置了url-pattern为*.abc

那么我们现在就可以这样访问了:http://localhost:8080/myjavaweb/1.abc

请求1.abc就会经过我们之前写的MyServlet类中的doGet()方法来处理。
我们在这个方法里返回了Hello World这个字符串,所以你在浏览器会看到。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/github_26672553/article/details/78986725
今日推荐