- - PR -
パスワード入力画面作成中。トラブルシューティング求む!
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-12-12 18:32
はじめまして。
只今、eclipse3.2でパスワード入力画面作成中(Tomcatプロジェクト)です。 とりあえず、以下のHTTP Status 404のエラーだけ消したいのですが、 SampleBeanのurl指定が間違っていると思われますので、 どう記述したらいいか、どなたか教えて下さい。 以下はパスワード入力画面のcertification.jspです。 <%@ page language="java" contentType="text/html; charset=SHIFT-JIS" pageEncoding="SHIFT-JIS"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=SHIFT-JIS"> <title>認証画面</title> <script language="javascript"> <!-- function goNext(nextAction) { document.registForm.action = nextAction; document.registForm.submit(); } // --> </script> </head> <body bgcolor="F2F222"> <form action=""name="registForm"method="post"> ユーザーID:<input type="text" name="id" value=""><br> パスワード:<input type="text" name="pw" value=""><br> <input type = "submit" name = "submit" value = "ログイン"onClick = "goNext('./WEB-INF/classes/testweb/SampleBean')"> <br> <br> <a href = "registInput.jsp">登録はこちら</a> </form> </body> </html> 上記ソースで、ユーザーIDとパスワード入力後、ログインボタンを押しても、 HTTP Status 404 - /testweb/WEB-INF/classes/testweb/SampleBean になってしまいます。 フォルダ構成は以下です。 testweb--src --WEB-INF--classes--testweb--SampleBean.class --lib --src--testweb--SampleBean.java --.cvsignore --work--org--apache--jsp--SEESIONS.ser --.classpath --.cvsignore --.project --.tomcatplugin --certification.jsp 宜しくお願い致します。 [ メッセージ編集済み 編集者: 未記入 編集日時 2006-12-12 18:34 ] | ||||
|
投稿日時: 2006-12-12 19:00
最近Java会議室の方ってこんなんばかりだね。 自分で調べたこととか一切かいてないの。 件名もまともにかかれていない。 つーか。トラブルシューティングって・・・ | ||||
|
投稿日時: 2006-12-12 22:30
何か動くサンプルはありますか?
それと何が違うか比べてみましょう。 「SampleBeanのurl指定が間違っている」っていうのは結構いいトコついていると思います。 [ メッセージ編集済み 編集者: インギ 編集日時 2006-12-12 22:31 ] | ||||
|
投稿日時: 2006-12-13 10:55
インギさん、こんにちは。
>インギさんの書き込み (2006-12-12 22:30) より: 何か動くサンプルはありますか? http://localhost:8080/testweb/WEB-INF/classes/testweb/SampleBeanでブラウザから見るとHTTP Status 404ですが、http://localhost:8080/testweb/certification.jspで ブラウザから見るとパスワード入力画面が見れます。 ちなみにSampleBean.javaは以下です。 package testweb; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import javax.servlet.RequestDispatcher; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class SampleBean extends HttpServlet{ private String pw; private String id; private String nameresult; public SampleBean() { this.pw = ""; this.id = ""; this.nameresult =""; } public void setNameresult(String nameresult) { this.nameresult = nameresult; } public void setPw(String pw) { this.pw = pw; } public void setId(String id) { this.id = id; } public String getPw() { return this.pw; } public String getId() { return this.id; } public String getNameresult() { return this.nameresult; } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPerform(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPerform(request, response); } public void doPerform(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { SampleBean sap = new SampleBean(); String ID = sap.getId(); String PW = sap.getPw(); try { Class.forName("COM.ibm.db2.jdbc.app.DB2Driver").newInstance(); Connection dbConn = DriverManager.getConnection("jdbc:db2:MYMALL", "db2admin", "db2admin"); Statement stmt = dbConn.createStatement(); ResultSet rs = stmt .executeQuery("select * from DB2ADMIN.PASSWORD where ID = '" + ID + "'"); String pwstr = rs.getString("PW"); System.out.print(pwstr); if (PW.equals(pwstr)) { String namestr = rs.getString("NAME"); // 要求へ属性と属性値をセット setNameresult(namestr); // サーブレット・コンテキストの取得 ServletContext cont = getServletContext(); // JSP のディスパッチャを取得 RequestDispatcher reqJSP = cont .getRequestDispatcher("/Login.jsp"); reqJSP.forward(request, response); } stmt.close(); dbConn.close(); } catch (Exception e) { e.printStackTrace(); } } } SampleBean.javaをうまく通ってLogin.jspに到達できればいいのですが。。。 Login.jspは以下です。 <%@ page language="java" contentType="text/html; charset=SHIFT-JIS" pageEncoding="SHIFT-JIS"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=SHIFT-JIS"> <title>ログイン</title> <script language="javascript"> <!-- function goNext(nextAction) { document.registForm.action = nextAction; document.registForm.submit(); } // --> </script> </head> <body bgcolor="F2F222"> <form action="" name="registForm" method="post"> <jsp:useBean id ="eri" class="testweb.SampleBean" scope="request" /> <%= eri.getNameresult() %>様 ログイン中<br> <br> </jsp:useBean> <input type = "button" value = "ログアウト" onClick = "goNext('certification.jsp')"> </body> </html> ご指摘お願い致します。 ちなみに >インギさんの書き込み (2006-12-12 22:30) より: それと何が違うか比べてみましょう。 (http://localhost:8080/testweb/certification.jspで ブラウザから見るとパスワード入力画面が見れます。) 特に比較の対象にはならないのかと。。。 | ||||
|
投稿日時: 2006-12-13 11:05
URLからサーブレットのクラスを直接指定することはできません。
web.xmlにURLとサーブレットクラスの関連付けを記述し、そのURLを呼び出す必要が あります。それから、サーブレットと値を受け渡すためのBeanクラスは別々にした ほうがいいと思います。 | ||||
|
投稿日時: 2006-12-13 11:21
>特に比較の対象にはならないのかと。。。
そうではなくて、お手本的なサンプルのことを言っています。 どうようの事を実現しているサンプルは世の中にたくさんあるでしょうから、それと比べると良いと思いました。 | ||||
|
投稿日時: 2006-12-13 11:23
ukさんご指摘有難うございます。
ukさんの書き込み (2006-12-13 11:05) より: web.xmlにURLとサーブレットクラスの関連付けを記述し、そのURLを呼び出す必要が あります。それから、サーブレットと値を受け渡すためのBeanクラスは別々にした ほうがいいと思います。 早速web.xmlに記述しようと思うのですが、web.xmlはTomcatの中のweb.xmlですか、 それとも前述したフォルダ構成のどこかに新しくweb.xmlを作成するという事でしょうか? そうだとしたら、フォルダのどこに作成すればよいのでしょうか? 初歩的な質問で申し訳ありません。 ちなみに、業務ロジックとBeanは将来分割するつもりです。 以上 宜しくお願い致します。 | ||||
|
投稿日時: 2006-12-13 12:34
基本的な仕様を理解されていないようですね。「web.xmlって何?」というところ から勉強しないと、今作られているアプリケーションの作成作業は難しいと思います。 「初歩的な質問で申し訳ありません。」と書かれていますが、 「ろくに調べもせず質問してるけど、初心者だからしょうがないですよね?」 と受け取れます。 努力の片鱗も見えない人には教えません。 |