- ベストアンサー
アプレットのパスワード認証
- JAVAアプレットでパスワード認証を作成したいのですが、正しいパスワードを入力しても指定したページにリンクされません。
- 定義方法が間違っているのでしょうか??
- どなたでもかまいませんので教えて下さい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 すみません、次画面に遷移するところまで確認してませんでした。 URL指定のところ(new URL(xxx))で引っかかっていたんですね。 ちょっと試してみましたが、相対パスだけでURLオブジェクトを作ろうとすると、 java.net.MalformedURLException: no protocol: xxx のようなエラーが出るんですよね。 結局絶対パスのような指定の仕方(?)になってしまいますが、 URL url = new URL(getDocumentBase(), strURL); とすれば、意図した動きをすると思います。 getDocumentBase()はアプレットを埋め込んだHTMLファイルのURLを返します。 new URL(URLオブジェクト, 文字列)は1つめの引数(URLオブジェクト)を解析して、そのような感じで新規URLオブジェクトを作成する(?)ようなことがAPIドキュメントには書いてあります。
その他の回答 (1)
- koki_m
- ベストアンサー率83% (45/54)
こんばんは。上記コードですとコンパイル時にエラーが出ました。 「ローカル変数 password は内部クラスからアクセスされます。」 TextField passwordをインスタンス変数として宣言すれば、思ったとおりの動作をすると思います。 // Color bgcolor;の下あたりに追加 TextField password; // ローカル変数宣言部分を修正 // TextField password =new TextField(15); password =new TextField(15);
補足
ご回答ありがとうございます。 指摘された部分を修正し実行してみましたが、違うパスワードを入力した際は、「パスワード エラー」と返ってくるのですが、正しいパスワードを入力すると、画面左下に「URLエラー」とでてしまいます。 URLの指定方法が間違っているのでしょうか? 下記はアプレットを組み込んだHTMLです。 <html> <head><TITLE>パスワード認証</TITLE></head> <body bgcolor="#ffffff"> <h1>認証</h1> <center> <table border="0" cellpadding="20"> <applet code="password.class" width=200 height=30 > <PARAM NAME="bgcolor" VALUE="ffffff"> </applet> </table> </center> <hr> <p> </body> </html>
お礼
ありがとうございます。うまくいきました!! 助かりました。