HTTPのGETメソッドは、このURLではサポートされていません

とか出た。実行したコードは

/*----------------------------------------------------------------------------------------------
package info.testman;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class RequestServ extends HttpServlet {
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
//(1)エンコード方式の指定
res.setContentType("text/html; charset=Windows-31J");
//(2)パラメータのエンコード方式の指定
req.setCharacterEncoding("Windows-31J");

//(3)PrintWriterオブジェクトの生成
PrintWriter out = res.getWriter();
out.println("");
out.println("");
//(4)name1パラメータの取得
out.println(req.getParameter("name1") + "
");
//(5)vehicleパラメータの取得
String vehicle[ ] = req.getParameterValues("vehicle");
for (int i = 0; i < vehicle.length; i++ ) {
out.println(vehicle[i] + "
");
}

out.println("");
out.println("");
}
}

                                                                                                                                                                                            • */

どうやらxmlの設定がおかしいらしい。
現在は↓

/*----------------------------------------------------------------------------------------------



hello2
info.testman.RequestServ


hello2
/servlet/hello2

                                                                                                                                                                                            • */

という感じで記述している。これは前記の入門サイトにあったxmlを自分で使うプロジェクト用に直しただけでほぼそのまま。
ただeclipseのエディタがxml専用になっているので書きづらかったがxmlの構造を理解するにはちょうど良かった。
何も見ないで書けるようになるのが一番良いけど。


とにかくソースは入門サイトのコピペなのでxmlの記述が間違っている可能性が高い。
と思っていたが……



買い物から戻って数分後、原因解明。

http://homepage2.nifty.com/yoks/TechNote/java/JAVA_SVLT1.htm

上記サイトにgetメソッドが指定されている旨が説明されていた。

どうもディレクトリの関係で現在の環境だと送信メソッドがgetになってしまうらしかった。
この問題を解決するにはxmlではなくjava部分のソースコードにdoGetメソッドのオーバーライドを追記して、その中で
doPostを指定する方法があった。
男の勘はあたらん。

だがどちらにしろweb.xmlの知識がないのは間違いない。
これも入門サイトで勉強しなけりゃ


この後さらに問題発生
SetDataサーブレットからGetDataサーブレットに対してデータを送信するプログラムでエラー
/servlet/GetDataがないとのことだったがすぐ解決。
今度こそweb.xmlを編集
web-appタグにservletタグとservlet-mappingタグを追加してそこでGetDataについて/servlet/GetDataを指定することで解決した。



追記

最初のコードはpostメソッドつまり他のhtmlからpostされないとなんにもしないんだよ気づけよ俺

ついでに学習教本に載ってるサーブレット同士やり取りするテストプログラムのweb.xmlを比較して見たところ

http://localhost:8080/servletAB/servlet/ServletAとURLを指定してるほうは
xmlではservletタグのservlet-class要素をinfo.list14_1.ServletAとしていたが
http://localhost:8080/servletAB/servlet/list14_1.ServletAとURLを指定しているほうは
xmlでは同要素がServletAとなっている。つまりinfoというのがパッケージの上の階層(classes)だということがわかった。
だんだんわかってきたぞ