运行 servlet 作为主页

Run servlet as homepage

我有一个带有 servlet 的动态 Web 项目(结构如下)。

当右击 HomeServlet.java --> 运行 as --> 运行 on Server --> Tomcat...
它运行良好 URL: http://localhost:8080/JSTLTest/HomeServlet

当右击 JSTLTest --> 运行 as --> 运行 on Server --> Tomcat...
我得到一个错误,这个URL被使用:http://localhost:8080/JSTLTest/

问题是,我想将它部署在像 AWS elastic beanstalk 这样的服务器上,我猜它不起作用,因为他不会使用 servlet 启动,比如:
http://default-environment-9a5exxxd3z.elasticbeanstalk.com/HomeServlet

我的web.xml错了吗?

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    version="3.1">
    <display-name>JSTLTest</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>
    <servlet>
        <servlet-name>Home</servlet-name>
        <servlet-class>com.journaldev.servlet.HomeServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Home</servlet-name>
        <url-pattern>/HomeServlet</url-pattern>
    </servlet-mapping>
</web-app>

结构:

替换

<url-pattern>/HomeServlet</url-pattern>

<url-pattern></url-pattern>

url 模式是添加到协议+服务器+端口+上下文(类似于http://localhost:8080/myapp)的url,可用于访问特定的servlet。

注意模式必须。模式 / 是默认模式。所以它匹配所有可能的模式(以及你不喜欢的模式)。