- PR -

htmlからサーバ上のJavaを呼び出す方法について教えてください。

投稿者投稿内容
とある根性なし
ベテラン
会議室デビュー日: 2006/08/15
投稿数: 54
投稿日時: 2008-12-08 14:44
こんにちは。
よろしくお願いします。

OS:WindowsXP
開発ツール:NetBeans IDE 6.5

インターネットブラウザに、サーバのホームディレクトリ配下にあるフォルダの、
ファイル一覧を表示するためのアプリを開発中です。

htmlでJavaを呼出し、ファイル一覧のテキストファイルを出力後、
出力結果を元に画面を整形しようと考えています。
Javaのアプリはサーバ上に置いて、サーバ上で処理する予定です。

ところが、htmlからJavaを呼び出すところでつまずいてしまいました。
Javaでコンパイルした .class や .jar ではうまく動きませんでした。
<!-- Javaアプリ自体は、サーバ上に配置してダブルクリックで起動するとうまく動きました。 -->
どうやらJavaサーブレットを使えばよさそうなのですが、
NetBeans IDE に以下のパッケージを指定すると、
 import javax.servlet.*;
 import javax.servlet.http.*;
「パッケージ *** は存在しません。」というコーディングエラーを表示されてしまいます。
<!-- VS2005で参照設定されていない、というのならすぐわかるようにはなったのですが^^;-->
また、サーブレット自体も難しくてよくわからない始末でして…
もしかしてNetBeans IDEで「新規プロジェクト」で選ぶ雛形がよくないのでしょうか?

つきましては、今回のアプリに参考になるサンプルが記載されたページや、
サーブレットについて易しく解説したページ、
あるいは「こういう方法のほうがいいのでは?」というご指摘をいただけませんでしょうか。

最後に、htmlをJavaのソースを示しますので、ご覧ください。

コード:

/* html */

<html>
<head>
<title>java</title>
</head>
<body>
<applet code="FileListing.jar"></applet>
</body>
</html>

=============================================================

/* Java */

import java.io.*;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
FileWriter fos = null;
try {
String fileName = "PDFList.txt";

File file = new File(fileName);
fos = new FileWriter(file);
BufferedWriter fp = new BufferedWriter(fos);

File filelist = new File("/PDFDATA");
String[] fileList = filelist.list();
for (int i = 0; i < fileList.length; i++) {
// 書き込み
fp.write(fileList[i]);
// 改行
fp.newLine();
}
// ファイルのクローズ処理
fp.close();
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
fos.close();
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}



ご指摘等、是非よろしくお願いします。

[ メッセージ編集済み 編集者: とある根性なし 編集日時 2008-12-08 14:47 ]
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2008-12-08 15:29
>「パッケージ *** は存在しません。」
ビルドパスに指定されてなければ、コンパイル時に参照できません。
javax.servletは標準のJDKのものではないので。

Webアプリケーションの入門ページで、ひととおり勉強されると良いでしょう。
Webアプリケーションは、今まで作られていたスタンドアロンのアプリケーションとは違います。

サーバのあるディレクトリ配下をリストアップとなると、自分のLAN内で使うならともかく、ふつうは認証についても考える必要がありますね。
ジン
ベテラン
会議室デビュー日: 2007/07/27
投稿数: 52
投稿日時: 2008-12-08 15:32
Servletを使用するにはTOMCATなどのWEBサーバが必要ですが導入済みですか?
導入済みまたは未導入でもその類のキーワードで検索すれば
数多く検索結果が得られると思います。

サーバのホームディレクトリ一覧なら一度テキストに出力することなく
HTMLを形成できると思いますが、テキストに出力しなければならない理由はありますか?
とある根性なし
ベテラン
会議室デビュー日: 2006/08/15
投稿数: 54
投稿日時: 2008-12-08 15:52
ご返答ありがとうございます!

>>mioさん
>ビルドパスに指定しなければ
そういうことですよね。
IDEのどこで指定すればよいのかを聞くのは甘えすぎですよねぇ…

>Webアプリケーションについて一通り勉強を
この点がこう悪いってレベルじゃなくわかってないんですよね><
がんばります。

>認証について
該当アプリケーションを実行するページの前に、メニューのページがありまして、
そこへアクセスする際に認証を行うので、大丈夫なのではないかと考えています。

>>ジンさん
>TOMCAT
あちこちで見る名前ですね。
未導入ですので一度しっかり調べてみます。

>ホームディレクトリ一覧なら
ホームディレクトリにあるフォルダの中身の一覧です。
このフォルダの中身が、今後増えてゆくので、その時あるものを一覧にしたいのです。
テキストに出力する必要というのはありません。
経験者(友人で別の会社に勤めています)に一言相談したところ、
この方法がよいのではないか、ということで調べていた次第です。
サーバの構成上、TOMCATなるものの導入は難しそうなので、
Servlet等使用しない方法でしたら是非ご指導いただきたいです。

よろしくお願いします。
とある根性なし
ベテラン
会議室デビュー日: 2006/08/15
投稿数: 54
投稿日時: 2008-12-08 16:02
サーバについて、言わなければならないことを言っていないような気がするので追記です。

今回のシステムを導入するサーバは、富士通系ホストでして、
そのシステムの中に「PCファイルサーバ」「J実行環境(Java実行環境)」という機能がありまして、
これを利用して今回のシステムを構築しようとしています。

UnixやLinux、Windows系のサーバとはちょっと違うので、
敬遠されないだろうかとか、仕組みがわからないので答えられないレスがつかない、
というのを懼れて言わずにおりました。
申し訳ありません。

今回やりたい内容(ブラウザにサーバのファイル一覧を表示)を一般的にやるには、
どのようにシステムを構築すればよいかをご指導ください。
また、富士通系ホストならこうやればいいよ、というのをご存知でしたら、
是非よろしくお願いいたします。
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2008-12-08 16:31
導入されているミドルウェアによって、想定するJDKのバージョンが違うので、ちゃんと調べるほうが良いですよ。
JDK1.3でコンパイルしたものしか、動かなかったりします。

Servletを使いたくないということなら、Appletという選択もないことはないですが…。
これも今のアプリをちょちょっと変えれば完成!なんてことはないですし、どのみちサーバ側に専用のアプリケーションを作りこむ必要はあります。

[ メッセージ編集済み 編集者: mio 編集日時 2008-12-08 16:31 ]
とある根性なし
ベテラン
会議室デビュー日: 2006/08/15
投稿数: 54
投稿日時: 2008-12-08 16:46
ご返信ありがとうございます。

>JDK1.3でコンパイルしたものしか、動かなかったりします。
当たってるようです…
機能が提供されているバージョンは JDK1.2.2 と JDK1.3.1 だそうです。
開発環境で導入したバージョンは 1.6.0 です。
バージョンの違いがどんなものか、理解していないことに気づきました。

Appletのほう、調べてみます。
引き続きよろしくお願いいたします。

[ メッセージ編集済み 編集者: とある根性なし 編集日時 2008-12-08 16:53 ]
とある根性なし
ベテラン
会議室デビュー日: 2006/08/15
投稿数: 54
投稿日時: 2008-12-08 19:06
J2DE 1.3 Windows用って、公開・サポート終了しているんですね…
どこかで手に入らないものでしょうか?

手法において頓挫してしまいましたので、出直してきます。
ありがとうございました。

[ メッセージ編集済み 編集者: とある根性なし 編集日時 2008-12-08 19:11 ]

スキルアップ/キャリアアップ(JOB@IT)