当前位置: 首页 > 知识库问答 >
问题:

如何在web.xml中映射多个servlet

通啸
2023-03-14

我正在尝试在web.xml中映射多个servlet。在我的index.html中,我有一个操作“desktype.do”的表单,当我运行程序时,它成功了。我是这样开始的:

    <?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" 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">
    <servlet>
        <servlet-name>DeskType</servlet-name>
        <servlet-class>controller.DeskType</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>DeskType</servlet-name>
        <url-pattern>/DeskType.do</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
</web-app>

…效果很好。它成功地编译,并且在按下我在index.html中设置的按钮后,它就会按照需要运行。在添加了额外的servlet映射之后:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" 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">
    <servlet>
        <servlet-name>DeskType</servlet-name>
        <servlet-class>controller.DeskType</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>DeskType</servlet-name>
        <url-pattern>/DeskType.do</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Servers</servlet-name>
        <url-pattern>/Servers.do</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
</web-app>

我收到错误“模块尚未部署。详细信息请参阅服务器日志。构建失败(总时间;0秒)”我不确定该怎么做,好像我把这个拿出来它又恢复正常工作。有没有正确的设置方法呢?

共有1个答案

葛磊
2023-03-14

解决方法很简单。缺少新的 <servlet-class>标记。这是解决办法。

<!-- YOU"RE MISSING BELOW LINES AND CHANGE THE PACKAGE NAME 
       WHERE Servers CLASS IS PRESENT -->

<servlet>
    <servlet-name> <YOUR_SERVLET_NAME> </servlet-name>
    <servlet-class> <SERVLET_PACKAGE_NAME> </servlet-class>
</servlet>

将前4行添加到web.xml文件中。并将 分别替换为Servlet类名和它的包。

 类似资料:
  • 问题内容: xml文件位于我的项目中。我正在使用Eclipse并运行Tomcat(它不是通过Eclipse安装的。我希望它是单独的安装)。 当表单页面提交到servlet时,它不起作用。我每次都收到404错误。我已经遇到这个问题一段时间了。有人请帮助我。 问题答案: 您缺少标记,这对于映射很重要。因此,使用以下命令: 并且您应该像下面这样在表单上赋予价值: 并记下所有值在以下代码中区分大小写: 您

  • 仅供参考:我已经删除了所有apache默认的webapp文件,并启动了我自己的项目,因此可以使用访问它,这很好。 我在驱动器中的servlet位置: 我在eclipse IDE中的包:eclipse IDE映像中的包 和我的web.xml文件: 我的HTML表单: 感谢所有的回复:)

  • xml文件位于我的项目的中。我正在使用Eclipse并运行Tomcat(它不是通过Eclipse安装的,我更希望它是一个单独的安装)。 当表单页面提交给servlet时,它就不起作用了。我每次都得到一个404错误。我遇到这个问题有一段时间了。谁来帮帮我。

  • 问题内容: 我有一个内容为web.xml的文件: 我尝试过要求 这两个请求都由Servlet2处理。为什么? 更新 谢谢你们的帮助。我意识到行为取决于servlet映射声明的顺序。我尝试了这个web.xml 结果: 问题答案: 从Servlet 3.0 规范开始,这是Web容器在收到请求后必须定位servlet的方式(重点是我的): 用于映射到servlet的路径是来自请求对象的请求URL减去上下

  • 我试过请求 这两个请求都由Servlet2处理。为什么? 更新 结果: