-1

Web.xml :

こんにちは、エラーを解決できません。同じ問題で 2 日以上かかりました。助けてください、何か間違いがありますか?

<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1"
metadata-complete="true">

<display-name>Welcome to Tomcat</display-name>
<description>
Welcome to Tomcat
</description>
<servlet>
<servlet-name>beer</servlet-name>
<servlet-class>com.example.web</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>beer</servlet-name>
<url-pattern>/SelectBeer.do</url-pattern>
</servlet-mapping>
</web-app>

Form.html :

<html><body>
<h1 align="center">Beer Selection Page</h1>
<form method="POST" action="SelectBeer.do">
Select beer characteristics<p>
Color:
<select name="color" size="1">
<option value="light"> light </option>
<option value="amber"> amber </option>
<option value="brown"> brown </option>
<option value="dark"> dark </option>
</select>
<br><br>
<center>
<input type="submit" value="ok"></center>

</form></body></html>

BeerSelect.java
package com.example.web;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class BeerSelect extends HttpServlet {

public void doPost(HttpServletRequest request,

HttpServletResponse response)

throws IOException, ServletException {

response.setContentType("text/html");

PrintWriter out = response.getWriter();

out.println("Beer Selection Advice<br>");

String c = request.getParameter("color");

out.println("<br>Got beer color " + c);
}
}

展開は

C:\Program Files\tomcat\webapps\beer の中のビールは form.html と WEB-INF

WEB_INF Web.xml およびクラス内

クラス内は com /example/web/BeerSelect.java です

locathost:8080/beer/form.html にログインできますが、色を選択して [送信] をクリックすると、HTTP ステータス 404 - /beer/SelectBeer.do というエラーが発生します BeerSelect.java をコンパイルしました

タイプ ステータス レポート

message /beer/SelectBeer.do "

説明 要求されたリソースは利用できません。アパッチ トムキャット/8.0.22

4

1 に答える 1

0

web.xml のサーブレット マッピングが「beer」を「com.example.web」にマップしていることに気付きました。私の理解では、これは「com.example.web.BeerSelect」である必要があります。

ディレクトリ構造は重要です。Tomcat/webapps/ 内にディレクトリ構造を作成する必要があります

構造の例:
- Beer/Form.html
- Beer/WEB-INF/web.xml
- Beer/WEB-INF/com/example/web/BeerSelect.class

注: WEB_INF などではなく、WEB-INF という名前のフォルダーが必要です

web.xml ' ...' 内の最初のステートメントも問題を引き起こす可能性があります。Tomcat バージョンで提供されている例の 1 つからそのステートメントをコピーしてみてください。

それが役立つことを願っています

于 2015-10-18T09:52:01.283 に答える