3

重複の可能性:
Web ブラウザーの構築を開始するには?

Java 言語の基本的な知識と、アプレットに関する知識があります。

大学のプロジェクト用に、単純な Web サイトと Javascript コンポーネントを表示できる基本的な Web ブラウザーを開発する必要があります。

前提条件とは何か、つまり、これを行う前にどのトピックを読む必要があるか、どのように行うかを教えてもらえますか?

本当に助けてくれてありがとう

4

1 に答える 1

3

組み込みたい機能のレベルに応じて、Web ブラウザーの作成は主要な作業です。

ブラウザに入力する必要があるもの:

  • サーバーからページのコンテンツを取得できるHTTP クライアント。Java には java.net 内に非常に基本的なものが含まれていますが、可能であれば、代わりに Apache Commons HTTPClient を使用してください。多くのブラウザーは、ftp:// やローカル ファイル (file://) など、他のプロトコルもサポートしています。
  • 返されたHTML (または XHTML) をメモリ内構造に読み込むことができるHTML パーサー。ここで難しいのは、HTML が進化しただけではないということです。また、複数の HTML 標準のいずれにも準拠していない HTML が多数存在します。人々は、何かを書き、それが特定のブラウザー (IE など) でレンダリングできるかどうかを確認し、先に進む傾向があります。特定のブラウザーはほとんど何でもレンダリングできます。これには JSoup などの既存のパーサーを使用できますが、これも間違いを修正するためのサポートが制限されています。
  • レンダリングエンジン。これは、私にとって最も複雑なステップです。あらゆる種類の CSS サポートが機能するようにするには、非常に詳細な読み取りが必要です (主要なブラウザーもそれを正しく行うのに苦労しました)。また、ネストされたテーブルや複雑なフォームなどの CSS 以外のレンダリングでさえ、(場所を計算するために)大変な作業を意味します。各ページ コンポーネントはレンダリングされたページに配置されます)。私が知っているアドオン レンダリング ライブラリはありませんが、最小限 (HTML 3.2?) の HTML レンダリング サポートが JEditorPane 内にあります - それを使用できるかもしれません (高度な CSS は忘れてください)。
  • スクリプトのサポート。これにより、JavaScript が解釈され、ページがインタラクティブになります。これには Rhino を使用できます (Mozilla のスタッフが管理しており、非常に強力です)。

(さらに、リクエストの繰り返しを避けるための内部キャッシュ、ページをファイルに保存するためのサポート、Flash などのサードパーティのプラグイン/拡張機能のサポート、ユーザーに対するクロスサイト スクリプティング攻撃を回避するためのセキュリティ上の考慮事項...さらに多くのコンポーネントや懸念事項があります。私は上に含めることを気にしませんでした)。

あなたは Java の基本的な知識しか持っておらず、上記のコンポーネントはいずれもそれ自体がかなり複雑なプロジェクトであるため、別のプロジェクトを選択するか、商用 Web ブラウザーが行うことの非常に小さなサブセットを区切って、代わりにそれを実装しようとすることをお勧めします。

于 2013-01-13T17:32:46.510 に答える