我正在尝试在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秒)”我不确定该怎么做,好像我把这个拿出来它又恢复正常工作。有没有正确的设置方法呢?
解决方法很简单。缺少新的
和
<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处理。为什么? 更新 结果: