1

有点奇怪..

我有一个带有表单的简单文件 /WebContent/login.html

<form action="/LoginHandler" method="POST">

和一些带有 web.xml 的类

/Java Resources/src/controller/LoginHandler.java
/Java Resources/src/controller/ProtectedResource.java

例如 LoginHandler.java

package controller;

[imports]

@WebServlet("/LoginHandler")
public class LoginHandler extends HttpServlet {

private static final long serialVersionUID = 1L;

public LoginHandler() {
    super();
}

protected void doPost(HttpServletRequest request, HttpServletResponse ...

/WebContent/WEB-INF/web.xml 定义如下:

<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">

<display-name>Webshop</display-name>
<servlet>
    <servlet-name>LoginHandler</servlet-name>
    <servlet-class>Webshop.controller.LoginHandler</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>LoginHandler</servlet-name>
    <url-pattern>/LoginHandler</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>ProtectedResource</servlet-name>
    ...

</web-app>

即使我跑我得到

http://localhost:8080/Webshop/login.html

但如果我提交表格,我会在这里得到:

http://localhost:8080/servlet?user=foo&password=bar

带有 404 状态!

它从何而来?有什么我不介意的吗?

谢谢!

4

2 回答 2

3

看起来您的 Web 应用程序根据您提供的登录 html url 部署在上下文根 /Webshop 下。因此你的表格应该是

<form action="/Webshop/LoginHandler" method="POST">
于 2013-02-26T00:05:11.833 回答
1

更改您的 html 从

<form action="/LoginHandler" method="POST">

<form action="../LoginHandler" method="POST">
于 2013-02-26T03:51:48.300 回答