Servlet映射问题 - 我做错了什么?

时间:2014-03-15 09:06:47

标签: java forms jsp servlets mapping

这是我的第一个Java EE" app"。我有点困惑...谷歌搜索后我认为我做的一切都是正确的,但如果是这样,我就不会遇到问题:)

我在save.jsp下的表单:

<body>
    <form method="post" action="${pageContext.request.contextPath}/save">
        <table>
            <tr>
                <td><label for="idTxtName" >Name:</label></td>
                <td><input type="text" id="idTxtName" name="name"/></td>
            </tr>
            <tr>
                <td><label for="idTxtSurname" >Surname:</label></td>
                <td><input type="text" id="idTxtSurname" name="surname"/></td>
            </tr>
                    ... etc...
            <tr>
                <td></td>
                <td><input type="submit" value="Save person" /></td>
            </tr>
        </table>
    </form>
</body>

我也试过了:

form method="post" action="/save"

以及

form method="post" action="save"

我的Servlet:

package servlets;

import java.io.IOException;
import java.sql.SQLException;
import // etc

    public class SaveServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {
                       // some actions
        }
    }

和web.xml映射:

  <servlet>
    <servlet-name>SavingServlet</servlet-name>
    <servlet-class>servlets.SaveServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>SavingServlet</servlet-name>
    <url-pattern>/save</url-pattern>
  </servlet-mapping>

提交我的save.jsp表单后,我看到一条经典消息:

HTTP Status 404 - /SImpleCRUD/save
type Status report
message /SImpleCRUD/save
description The requested resource is not available.

我做错了什么?我的地图不正确吗?

3 个答案:

答案 0 :(得分:2)

有时候它会发生。你的代码没有错。但只需重新启动服务器并再次运行。可能它会正常工作。

在JSP action =&#34; SavingServlet&#34; @WebServlet(&#34; / SavingServlet&#34;)在Servlet的类级别配置此批注。现在无需在 web.xml

中配置servlet

答案 1 :(得分:0)

我不确定这是解决此错误的正确方法。但它对我有用。

将您的web.xml改为喜欢这样,然后尝试

<servlet>
    <servlet-name>SavingServlet</servlet-name>
    <jsp-file>/save.jsp</jsp-file>
  </servlet>

  <servlet-mapping>
    <servlet-name>SavingServlet</servlet-name>
    <url-pattern>/save</url-pattern>
  </servlet-mapping>

它在我的机器上工作正常。

答案 2 :(得分:0)

您的表单操作应该只有save

<form method="post" action="save">

没有上下文('${pageContext.request.contextPath}/')