Servlets 从web xml文件引发的错误

Servlets 从web xml文件引发的错误,servlets,jakarta-ee,web.xml,Servlets,Jakarta Ee,Web.xml,我在web.xml文件中遇到问题 当我尝试运行我的应用程序时,我收到了错误:“本地主机上的Tomcat v8.0服务器启动失败”。但当标记用于web.xml文件时,可以绕过此错误,如下所示 但新的问题是,当在web.xml中使用I上下文参数时,它们不能从侦听器类中使用 ServletContext sc=event.getServletContext(); String database= sc.getInitParameter("Database"); 数据库值始终作为null接收。 删除元

我在web.xml文件中遇到问题

当我尝试运行我的应用程序时,我收到了错误:“本地主机上的Tomcat v8.0服务器启动失败”。但当标记用于web.xml文件时,可以绕过此错误,如下所示

但新的问题是,当在web.xml中使用I上下文参数时,它们不能从侦听器类中使用

ServletContext sc=event.getServletContext();
String database= sc.getInitParameter("Database");
数据库值始终作为null接收。 删除元素标记和标记后,数据库字符串将提取正确的值。但是标记需要使用servlet标记

有人能告诉我一个解决办法吗。 下面我给出了web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<element>
<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">
  <display-name>A</display-name>

  <servlet>
    <servlet-name>login</servlet-name>
    <servlet-class>com.manage.control.EnrollmentServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>login</servlet-name>
    <url-pattern>/EnrollmentServlet</url-pattern>
  </servlet-mapping>


  <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>



  <listener>
    <listener-class>com.test.listener.DeatabaseNameListener</listener-class>
  </listener>

  <context-param>
    <param-name>Database</param-name>
    <param-value>jdbc:mysql://localhost:3307/studentmanagement</param-value>
  </context-param>

  <context-param>
    <param-name>DatabaseUserName</param-name>
    <param-value>root</param-value>
  </context-param>

  <context-param>
    <param-name>DatabasePassword</param-name>
    <param-value>root</param-value>
  </context-param>

</web-app>
</element>

A.
登录
com.manage.control.EnrollmentServlet
登录
/注册servlet
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
com.test.listener.DeatabaseNameListener
数据库
jdbc:mysql://localhost:3307/studentmanagement
数据库用户名
根
数据库密码
根

没有像element这样的标记。您的web.xml应该如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <web-app 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"
     version="3.1">
  <display-name>A</display-name>

  <context-param>
    <param-name>Database</param-name>
    <param-value>jdbc:mysql://localhost:3307/studentmanagement</param-value>
  </context-param>

  <context-param>
    <param-name>DatabaseUserName</param-name>
    <param-value>root</param-value>
  </context-param>

  <context-param>
    <param-name>DatabasePassword</param-name>
    <param-value>root</param-value>
  </context-param>

  <listener>
    <listener-class>com.test.listener.DeatabaseNameListener</listener-class>
  </listener>

  <servlet>
    <servlet-name>login</servlet-name>
    <servlet-class>com.manage.control.EnrollmentServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>login</servlet-name>
    <url-pattern>/EnrollmentServlet</url-pattern>
  </servlet-mapping>

  <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>

</web-app>


我希望您需要对数据库参数值进行编码。它可能不喜欢//等或逃避。jdbc:mysql:////localhost:3307//studentmanagementHi 安东尼。不,它不起作用。当元素标记不存在且标记不存在时,这可以正常工作。listner类完全使用上下文参数。我尝试了你的建议。jdbc%3Amysql%3A%2F%2LocalHost%3A3307%2StudentManagement但它给出了相同的错误
元素的标签是什么?我从这段视频中了解了标签。否则,我将收到错误“本地主机上的服务器Tomcat v8.0服务器启动失败”,并且无法执行任何操作。但当它被放置时,无法访问上下文参数。