ホームページ > Java > &#&面接の質問 > JavaWeb 面接の質問 (1)

JavaWeb 面接の質問 (1)

(*-*)浩
リリース: 2019-12-06 15:03:08
オリジナル
3270 人が閲覧しました

JavaWeb 面接の質問 (1)

サーブレットのライフ サイクルについて話しますか?

サーブレットには、ロードとインスタンス化、初期化、処理などのライフ サイクルが適切に定義されています。リクエストおよびサービスは終了となります。この有効期間は、javax.servlet.Servlet インターフェースの init()、service()、および destroy メソッドによって表されます。 (推奨される調査: Java インタビューの質問)

サーバーによってサーブレットがインスタンス化された後、コンテナはその init メソッドを実行し、リクエストが到着するとサービス メソッドを実行し、サービス メソッドは自動的に実行されます。 doXXX メソッド (doGet、doPost) などは、サーバーがインスタンスの破棄を決定したときに、その destroy メソッドを呼び出します。

Web コンテナがサーブレットをロードし、ライフサイクルが開始します。サーブレットの init() メソッドを呼び出してサーブレットを初期化します。これは、service() メソッドを呼び出すことで実現され、さまざまなリクエストに応じてさまざまな do***() メソッドが呼び出されます。サービスを終了するには、Web コンテナはサーブレットの destroy() メソッドを呼び出します。

サーブレット API の forward() と redirect() の違いは何ですか?

1. アドレス バーの表示から、

forward はサーバーがリソースを要求していることを意味し、サーバーはターゲット アドレスの URL に直接アクセスします。応答コンテンツが読み取られてブラウザに送信されます。ブラウザはサーバーから送信されたコンテンツがどこから来たのかを知らないため、アドレス バーは元のアドレスのままです。

リダイレクトはサーバーです。ロジックによれば、ステータス コードが送信され、ブラウザにそのアドレスを再度リクエストするように指示されます。そのため、アドレス バーに新しい URL が表示されます。したがって、リダイレクトとは、クライアントがサーバーに 2 つのリクエストを送信し、2 つの応答も受け入れることを意味します。

2. データ共有の観点から見ると、

forward: 転送されたページと転送されたページは、リクエスト内のデータを共有できます。

redirect : 共有データはできません。

リダイレクトは、現在のアプリケーションの他のリソースにリダイレクトできるだけでなく、同じサイト上の他のアプリケーションのリソースにリダイレクトすることもできます。また、絶対 URL リソースを使用して他のサイトにリダイレクトすることもできます。

forward メソッドは、同じ Web アプリケーション内のリソース間でのみリクエストを転送できます。Forward はサーバー内の操作です。

redirect は、サーバーがクライアントに通知し、クライアントが再実行できるようにするものです。

したがって、リダイレクトは間接リクエストであると言えますが、「リクエストが転送またはリダイレクトに属するかどうか」を言うことはできません。

3. アプリケーションからローカルで言えば、

forward: 通常、ユーザーがログインするときに使用され、ロールに応じて対応するモジュールに転送されます。

redirect: 通常、メイン ページに戻ってジャンプするために使用されます。ユーザーがログアウトし、他の Web サイトに移動するなど。

4. 効率の観点から見ると、

forward: high.

redirect: low。

request.getAttribute() と request.getParameter() の違いは何ですか?##?

1、request.getParameter() はコンテナの実装を通じて取得される post、get などのメソッドを通じて渡されるデータ。

request.setAttribute() と getAttribute() は Web コンテナ内でのみフローし、リクエストの処理段階にのみ存在します。


2、getAttribute はオブジェクトを返し、getParameter は文字列を返します。

3、getAttribute() は、最初に setAttribute() で設定した後にのみ、常に setAttribute() と一緒に使用されます。値は、オブジェクト型データを渡す getAttribute() を通じて取得できます。また、有効にするには、同じリクエスト オブジェクト内で使用する必要があります。

そして getParameter() は、フォームの get または post によって送信されたパラメーターを受け取ります。

jsp の静的インクルージョンと動的インクルージョンの違い

1、<%@include file="xxx.jsp"%> は jsp のコンパイル命令です。そのファイルのインクルードは、jsp からサーブレットへの変換中に発生し、 これは jsp のアクション命令です。そのファイルのインクルードはコンパイル中、つまり Java ファイルがクラス ファイルにコンパイルされる期間に発生します。

2. 静的インクルードを使用すると、生成されるのは動的インクルージョンを使用している間、1 つのクラス ファイルが生成されます 複数のクラス ファイルが生成されます

3. 静的インクルージョンを使用します静的インクルージョンはコンテンツをコピーするだけであるため、包含ページとインクルードされるページのリクエスト オブジェクトは同じオブジェクトです。インクルードされたページからインクルードされたページへ;

包含ページとインクルードされたページの動的インクルージョンは、同じページではありません。インクルードされたページのリクエスト オブジェクトは、比較的広範囲のパラメータを取得できます。包含ページに渡されるパラメータを取得するだけでなく、包含ページに渡されるパラメータも取得できます。また、インクルードされたページに渡されるパラメータも取得できます。

それぞれの実装に使用されるテクノロジMVC の一部?実装方法?

MVC は Model-View-Controller の略称です。モデルはアプリケーションのビジネス ロジック (JavaBeans および EJB コンポーネントを通じて実装) を表し、ビューはアプリケーションのプレゼンテーション サーフェス (JSP ページによって生成)、コントローラーはアプリケーション (通常はサーブレット) のプロセス制御を提供します。アプリケーション ロジック、処理ロジック、および表示ロジックをさまざまなコンポーネント実装に分割します。これらのコンポーネントは対話して再利用できます。

#JSP の組み込みオブジェクトとは何ですか?その機能は何ですか?

#JSP には次の 9 つの組み込みオブジェクトがあります:

1、クライアント リクエストをリクエストします。このリクエストには GET/POST リクエストからのパラメータが含まれます。

2、レスポンス Web ページはクライアントからのレスポンスを返します。

3、pageContext Web ページ属性は次のとおりです。ここで、management

4、リクエストに関連するセッションセッション

5、アプリケーション サーブレットがコンテンツを実行しています

6、out は応答の出力を送信するために使用されます

7、構成サーブレット アーキテクチャ コンポーネント

8、ページ JSP Web ページ自体

9、エラー Web ページの例外、キャッチされない例外

Http、 get メソッドと post メソッドの違い

1. Get はサーバーへのデータのリクエストですが、Post はサーバーへのデータ送信のリクエストです

2. Get は情報を取得しますデータベース クエリ関数と同様に、情報を変更する代わりに、データは変更されません

3. Get リクエストのパラメータは URL の後に渡され、リクエストされたデータは URL に追加されます。 ? URLを分割してデータを送信します パラメータは&で繋ぎます %XXのXXはASCIIを16進数で表したものです データが英数字の場合はそのまま送信します スペースの場合は変換して送信します中国語の場合は、文字列を BASE64 で直接暗号化します。

4. Get によって送信されるデータにはサイズ制限があります。GET は URL を通じてデータを送信するため、GET によって送信できるデータの量は URL の長さに直接関係します。異なるブラウザーURL の長さに関する要件が異なり、制限も異なります。

5. GET によって要求されたデータはブラウザによってキャッシュされ、ユーザー名とパスワードは URL に平文で表示されます。他の人が閲覧履歴の記録を確認できるため、データは安全ではありません。

サーバー側では、Request.QueryString を使用して、Get メソッドによって送信されたデータを取得します。

Post リクエストは、http メッセージの実際のコンテンツとして Web サーバーに送信され、データは送信用の HTML ヘッダーに配置されます。投稿によって送信されるデータは制限されません。 Post は Get より安全です。データが中国語または非機密データの場合は、get を使用するとアドレスにパラメータが表示されるため、get を使用します。機密データや漢字以外のデータの場合は、post を使用します。

6, POST は、サーバー上のリソースを変更する可能性のあるリクエストを表します。サーバー側では、Post メソッドで送信されたデータは、Request.Form を使用してのみ取得できます。

Cookie とは何ですか?セッションとクッキーの違いは何ですか?

Cookie は、ユーザー情報をブラウザ オブジェクトに保存するセッション技術です。

相違点:

(1) Cookie データの保存場所クライアントのブラウザ、セッション データはサーバーに配置されます

(2) Cookie はあまり安全ではありません。他の人はローカルに保存された COOKIE を分析し、COOKIE を欺くことができます。セキュリティを主に考慮する場合は、セッション

(3) セッションは一定期間内にサーバーに保存されます。訪問数が増加すると、サーバーのパフォーマンスがより多く消費されます。サーバーのパフォーマンスの低下を主に考慮する場合は、COOKIE

(4) クライアント上の 1 つの Cookie の制限は 3K です。つまり、 Web サイトはクライアントに保存されます。Cookie を 3K にすることはできません。

結論:

ログイン情報などの重要な情報は SESSION として保存し、その他の情報を保持する必要がある場合は COOKIE に配置できます。

jsp とサーブレットの違い、共通点、適用範囲は何ですか?

JSP はサーブレット テクノロジの拡張であり、本質的にはサーブレットの単純な方法です。 JSP をコンパイルすると、「サーブレットのような」ものになります。

サーブレットと JSP の主な違いは、サーブレットのアプリケーション ロジックが Java ファイル内にあり、プレゼンテーション層の HTML から完全に分離されていることです。 JSP の場合、Java と HTML を .jsp 拡張子を持つファイルに結合できます。

JSP はビューに重点を置き、サーブレットは主に制御ロジックに使用されます。 Struts フレームワークでは、JSP は MVC デザイン パターンのビュー層に配置され、サーブレットはコントロール層に配置されます。

Tomcat コンテナはどのようにしてサーブレット クラス インスタンスを作成しますか?どのような原理が使用されていますか?

コンテナは起動すると、webapps ディレクトリ内のすべての Web アプリケーションの web.xml ファイルを読み取り、xml ファイルを解析して、サーブレットの登録情報を読み取ります。次に、各アプリケーションに登録されているサーブレット クラスがロードされ、リフレクションによってインスタンス化されます。 (最初のリクエストでインスタンス化される場合もあります)

サーブレットの登録時に 1 を追加します。それが正の数の場合は、次の場所でインスタンス化します。書き込まれていない場合、または負の数の場合は、初めてインスタンス化が要求されます。

以上がJavaWeb 面接の質問 (1)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート