サーブレットの構成が上手く行かない
サーバーサイド技術の学習を始めたばかりの新参者です。
今回はサーブレットが動作しない問題が発生したため、質問させて頂きます。
要件はウェブブラウザで"UserAuthentication.html"にアクセスし、そのページのステータスをTomcat上に構成されたサーブレットに渡し、返却されるhtmlを受け取って表示する、という単純な物です。
サーブレットの構成に必要なリソースを以下の様な内容に編集し、準備しましたが、実際にTomcatのサービスを起動し、ブラウザで"UserAuthentication.html"上の"送信"ボタンを押すと、"HTTPステータス 404 ~ The requested resource (/System/TestServlet) is not available."というエラーが返却されてしまいます。
2日余りこの問題と向き合いましたが、エラーが除去出来ず、途方に暮れています。
何が問題なのかご指摘頂けませんでしょうか、よろしくお願いします。
=TestServlet.class=
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TestServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
// ContentTypeを設定
response.setContentType("text/html; charset=Shift_JIS");
// 出力用PrintWriterを取得
PrintWriter out = response.getWriter();
out.println("<html");
out.println("<head>");
out.println("<title>テストサーブレット</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Welcome!! MyServlet!!</h1>");
out.println("</body>");
out.println("</html>");
}
}
=web.xml=
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>TestServlet.class</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/System/UserAuthentication.html</url-pattern>
</servlet-mapping>
</web-app>
=UserAuthentication.html=
<html>
<head>
<title>システム:利用者認証画面</title>
</head>
<div align="center">
<h1>利用者認証画面</h1>
<h2>認証する利用者の情報を入力して"送信"ボタンを押して下さい</h2>
<br>
<form action="TestServlet" method="get">
<table border="4">
<tr>
<td> ネーム:<input type="text" name="name"></td>
<td>パスワード:<input type="text" name="password"></td>
</tr>
<tr>
<td><div align="left"><a href="index.html">戻る</a></div></td>
<td><div align="right"><input type="reset" value="取消"><input type="submit" value="送信"></div></td>
</tr>
</table>
</form>
<br>
</div>
</body>
</html>
お礼
再度の回答、ありがとうございます。 参考URL拝見しました。 ApacheとTomcatを連携させるとおかしなことになる事があるのですね。 プログラミングでは直せないとすると、どう対処すると良いのでしょうか? どうにも手詰まりですね。 ApacheやTomcatの設定をいじると直るのだろうか……。 あ、あと、画像ファイルの読込みに BufferedInputStream を使うようにしたところ、 目に見えて早く表示されるようになりました。 問題を解決するには至りませんでしたが、これはこれで素晴らしい改善となりました。 重ねて御礼申し上げます。