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

指定したログイン html URL に基づいて、Web アプリケーションがコンテキスト ルート /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 に答える