java web.xml文件中的servlet名称错误

nx7onnlm  于 2023-01-19  发布在  Java
关注(0)|答案(1)|浏览(131)

我正在用tomcat 7为两种类型的用户做一个注册/登录表单的项目,我创建了所有的东西:login、registration 1、registration 2,以及每个注册表的验证类。我的web.xml中出现了一些问题,比如“发现了以元素'servlet-name'开头的无效内容。我的所有文件都在一些目录中,除了/src中的2个注册表和/login/中的验证文件(所有servlet+登录)。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <servlet>
    <servlet-name>login</servlet-name>
    <servlet-class>Login</servlet-class>
    <servlet-name>RegisterMedico</servlet-name>
    <servlet-class>/progettoTesi/src/RegisterMedic</servlet-class>
    <servlet-name>RegisterUser</servlet-name>
    <servlet-class>progettoTesi/src/RegisterUser</servlet-class>

  </servlet>
  <servlet-mapping>
    <servlet-name>login</servlet-name>
    <url-pattern>progettoTesi/WebContent/login</url-pattern>
    <servlet-name>RegisterMedic</servlet-name>
    <url-pattern>progettoTesi/src/RegisterMedic</url-pattern>
    <servlet-name>RegisterUser</servlet-name>
    <url-pattern>progettoTesi/src/RegisterUser</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
</web-app>

我不明白我错在哪里:我的servlet名称是正确的。2这是java的问题吗?3我该如何解决这个问题?

c90pui9n

c90pui9n1#

您试图在同一个<servlet>标记中定义多个servlet,但这是行不通的。请为每个servlet提供自己的<servlet><servlet-mapping>标记。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <servlet>
    <servlet-name>login</servlet-name>
    <servlet-class>Login</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>RegisterMedico</servlet-name>
    <servlet-class>RegisterMedic</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>RegisterUser</servlet-name>
    <servlet-class>RegisterUser</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>login</servlet-name>
    <url-pattern>/login</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>RegisterMedic</servlet-name>
    <url-pattern>/RegisterMedic</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>RegisterUser</servlet-name>
    <url-pattern>/RegisterUser</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
</web-app>

或者,您可以在servlet类上使用@WebServlet注解,这样您就根本不需要在web.xml中配置它们。使用Tomcat 7的@WebServlet注解
另外,url-pattern和servlet-class也是非常错误的。servlet-class应该是一个完全限定的类名(package + classname)。url模式实际上是url中必须“Map”到servlet的模式。例如:URL模式“/beep”将Map到“http://localhost:8080/beep“。

相关问题