我只想在部署描述符中添加标记。当我添加它时,它会产生以下类型的错误: cvc-complex-type.2.4.a:从元素' init-param'开始发现无效内容。 为什么会出现此错误以及此错误的解决方案是什么。
<?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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>Servlet</display-name>
<servlet>
<servlet-name>Servlet1</servlet-name>
<servlet-class>formdata.LoginForward</servlet-class>
</servlet>
<servlet>
<servlet-name>Servlet2</servlet-name>
<servlet-class>formdata.Welcome</servlet-class>
</servlet>
<init-param>
<param-name>driver</param-name>
<param-value>sun.jdbc.odbc.JdbcOdbcDriver</param-value>
</init-param>
<servlet-mapping>
<servlet-name>Servlet1</servlet-name>
<url-pattern>/myloginpage</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Servlet2</servlet-name>
<url-pattern>/welcomeuser</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>login.html</welcome-file>
</welcome-file-list>
</web-app>
答案 0 :(得分:2)
可以在xml中配置两种类型的param标记。
context-param
直接位于适用于整个Web应用程序的<web-app>
标记内。
init-param
仅适用于单个servlet或过滤器,必须包含在<servlet>
或<filter>
标记内。
直接来自web-app_2_3.dtd
<!ELEMENT filter (icon?, filter-name, display-name?, description?,filter-class, init-param*)>
<!ELEMENT servlet (icon?, servlet-name, display-name?, description?,(servlet-class|jsp-file), init-param*, load-on-startup?, run-as?, security-role-ref*)>