如何在web.xml中配置多个Servlet映射?
配置多个Servlet映射的正确方式(适配你的web.xml场景)
你提到已经有对应DeskType.do的Servlet功能正常运行,现在想要在web.xml里扩展配置多个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:对应你已有的DeskType功能 --> <servlet> <servlet-name>DeskTypeServlet</servlet-name> <servlet-class>com.yourpackage.DeskTypeServlet</servlet-class> <!-- 替换成你的实际类全路径 --> </servlet> <servlet-mapping> <servlet-name>DeskTypeServlet</servlet-name> <url-pattern>/DeskType.do</url-pattern> <!-- 和你的表单action完全匹配 --> </servlet-mapping> <!-- 第二个Servlet示例:可按此格式无限添加更多 --> <servlet> <servlet-name>UserManageServlet</servlet-name> <servlet-class>com.yourpackage.UserManageServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>UserManageServlet</servlet-name> <url-pattern>/UserManage.do</url-pattern> </servlet-mapping> <!-- 可选:如果想用统一后缀匹配(比如所有.do请求),可将url-pattern设为*.do,但注意同一后缀只能对应一个Servlet --> </web-app>
核心注意点:
- 每个Servlet都需要成对的
<servlet>和<servlet-mapping>块,通过servlet-name关联,这个别名必须完全一致 - 你的表单
action="DeskType.do"能正常工作,就是因为它精准匹配了<url-pattern>/DeskType.do</url-pattern> - 要是你用的是Servlet 3.0及以上版本,也可以直接在Java类上用
@WebServlet("/DeskType.do")注解配置,不用写web.xml会更简洁
内容的提问来源于stack exchange,提问作者GDaniels
相关产品推荐
相关产品推荐

