みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Tomcatを使用したWebログイン画面

Tomcatを使用して、
サーバ(logintest.html)にブラウザからアクセスしてログイン画面を表示させます。
ユーザIDがuser、パスワードがpasswordだった場合は「ログイン成功」と表示し、それ以外は「ログイン失敗」と表示させます。
Servletのソース(loginteset.java)がコンパイルエラーになります。
アドバイスをいただけませんか?

logintest.html
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=Windows-31J" />
<title>Login</title>
</head>
<body>
<form action="./checkservlet" method="post">
  ユーザIDを入力してください :
<input type="text" name="userid" size="20" />
<br><br>
  パスワードを入力してください :
<input type="password" name="userpass" size="20" />
<br><br>
<input type="submit" value="ログイン" />
</form>
</body>
</html>

logintest.java
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class FormServletTest extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {
response.setContentType("text/html;charset=Windows-31J");
}
String id = request.getParameter("userid");
String pass = request.getParameter("userpass");
if(id.equals("user") && pass.equals("password")){
out.println("ログイン成功");
}
else {
out.println("ログイン失敗");
}
}

投稿日時 - 2013-11-18 16:42:04

QNo.8352382

困ってます

質問者が選んだベストアンサー

(1)ファイル名とクラス名を同じにするため、
logintest.javaからFormServletTest.javaへファイル名を変更する。

(2)パッケージ文を追加
package jp.okwave
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class FormServletTest extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {
response.setContentType("text/html;charset=Windows-31J");
//(3)括弧閉じの位置がおかしいので、↓コメントアウト
//}
String id = request.getParameter("userid");
String pass = request.getParameter("userpass");
if(id.equals("user") && pass.equals("password")){
out.println("ログイン成功");
}
else {
out.println("ログイン失敗");
}
}
}//←(4)括弧閉じを追加

投稿日時 - 2013-11-18 16:56:50

補足

ありがとうございました。
下記のように修正しました。

まだ、コンパイルエラーがございます。
>out.println("ログイン成功");
>out.println("ログイン失敗");

"シンボルを見つけられません"のエラーメッセージが表示されます。
対策を教えていただけませんか?

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

public class FormServletTest extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {
response.setContentType("text/html;charset=Windows-31J");

String id = request.getParameter("userid");
String pass = request.getParameter("userpass");
if(id.equals("user") && pass.equals("password")){
out.println("ログイン成功");
}
else {
out.println("ログイン失敗");
}
}
}

投稿日時 - 2013-11-18 19:59:37

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

こんにちは。
一応、お約束の一言を・・・コンパイルエラーのエラーメッセージを載せれば他の方々も回答しやすいと思いますよ^^;


では、本題。
(1)「String id・・・」がdoGetメソッドの外になっている。
(2)HTML側のFORMでPOSTメソッドで送信しているのにサーブレット側でdoPOSTメソッドを実装していない

投稿日時 - 2013-11-18 17:00:42

あなたにオススメの質問