3

xml 文件位于WebContent/WEB-INF/web.xml我的项目中。我正在使用 Eclipse 并运行 Tomcat(不是通过 Eclipse 安装的。我更喜欢单独安装)。

<?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" id="WebApp_ID" version="3.0">
  <display-name>EmployeeManagement</display-name>
  <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>
  <context-param>
    <param-name>name</param-name>
    <param-value>Pramod</param-value>
  </context-param>
  <servlet-mapping>
        <servlet-name>Registration</servlet-name>
        <url-pattern>/EmployeeManagement/WebContent/Registration</url-pattern>
   </servlet-mapping>
</web-app>

当表单页面提交给 servlet 时它不起作用。我每次都收到 404 错误。我遇到这个问题有一段时间了。有人请帮助我。

4

6 回答 6

9

您缺少<servlet>...</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" id="WebApp_ID" version="3.0">
<display-name>EmployeeManagement</display-name>
<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>
<context-param>
    <param-name>name</param-name>
    <param-value>Pramod</param-value>
</context-param>
<servlet>
    <servlet-name>Registration</servlet-name>
    <servlet-class>com.yourPackageName.yourServletName</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Registration</servlet-name>
    <url-pattern>/EmployeeManagement/WebContent/Registration</url-pattern>
</servlet-mapping>
</web-app>

你应该action在你的表格上赋予价值,如下所示:

<form action="/EmployeeManagement/WebContent/Registration" method="post">

      //Some code here

</form> 

并记下以下代码中的所有值都区分大小写:

<servlet>
    <servlet-name>Registration</servlet-name>
    <servlet-class>com.yourPackageName.yourServletName</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Registration</servlet-name>
    <url-pattern>/EmployeeManagement/WebContent/Registration</url-pattern>
</servlet-mapping>

您的 servlet 名称Registration应该在两个标签上相同<servlet>...</servlet><servlet-mapping>...</servlet-mapping>并且package名称应该与您的 servlet 类所在的位置相同。

于 2013-09-19T08:39:08.053 回答
2

您还没有将 servlet 名称映射到 servlet 类,它应该如下所示,

<servlet-class>给出你的servlet的路径

    <servlet>
         <servlet-name>Registration</servlet-name>
         <servlet-class>com.Registration<servlet-class>
    </servlet>
    <servlet-mapping>
         <servlet-name>Registration</servlet-name>
         <url-pattern>/EmployeeManagement/WebContent/Registration</url-pattern>
    </servlet-mapping>
于 2013-09-19T08:30:28.263 回答
0

检查您的表单操作。那里有路吗

/EmployeeManagement/WebContent/Registration

或者

YOURAPPCONTEXT/EmployeeManagement/WebContent/Registration

或者

YOURAPPNAME/EmployeeManagement/WebContent/Registration
于 2013-09-19T08:30:06.537 回答
0

您忘记了配置的重要部分。您应该将此添加到您的web.xmlbeforeservlet-mapping标记中:

<servlet>
    <servlet-name>Registration</servlet-name>
    <servlet-class>com.name.of.your.servlet.class</servlet-class>
</servlet>
于 2013-09-19T08:30:54.407 回答
0

您已经指定了 aservlet-mapping并使用了该名称Registrationservlet-name但之前没有定义它。

在 servlet 映射中使用之前,您需要定义 servlet

<servlet>
    <servlet-name>Registration</servlet-name>
    <servlet-class>[fully qualifyied name of your servlet]</servlet-class>
</servlet>
于 2013-09-19T08:31:49.377 回答
0

您缺少在 web.xml 中定义 servlet 的另一部分

<servlet>
   <servlet-name>Registration</servlet-name>
   <servlet-class>
      package.path.to.RegistrationServlet
  </servlet-class>
</servlet>
于 2013-09-19T08:34:01.383 回答