基本情報技術者 2012年 春期 午前(科目A) 問09
問題文
Web環境での動的処理を実現するプログラムであって、Webサーバ上だけで動作するものはどれか。
選択肢
ア:JavaScript
イ:Javaアプレット
ウ:Javaサーブレット(正解)
エ:VBScript
🔒 解説は解答すると表示されます
Javaサーブレット【午前解説】
正解の理由
正解: ウ
Javaサーブレットはサーブレットコンテナ(例:Tomcat)上で動作するサーバサイドプログラムで、HTTPリクエストを受けてサーバ側で動的処理を行い、その結果をクライアントへ返します。クライアント側で実行されるものではないため、「Webサーバ上だけで動作するもの」という設問の条件を満たします。
Javaサーブレットはサーブレットコンテナ(例:Tomcat)上で動作するサーバサイドプログラムで、HTTPリクエストを受けてサーバ側で動的処理を行い、その結果をクライアントへ返します。クライアント側で実行されるものではないため、「Webサーバ上だけで動作するもの」という設問の条件を満たします。
解法ステップ
- 選択肢ごとに「どこで実行されるか(クライアント/サーバ)」を確認する。
- 設問の条件「Webサーバ上だけで動作する」を満たすかを判定する。
- サーバサイド技術かクライアントサイド技術か、あるいは両方で使える例外かを区別する。
- サーブレットはサーバ側のコンテナ依存で動作する点をもって正答とする。
選択肢別の誤答解説
- ア: JavaScript
一般的にはブラウザ上で動作するクライアントサイドスクリプトです。近年はNode.js等でサーバ側実行も可能ですが、設問の「Webサーバ上だけで動作する」という条件には合致しません。 - イ: Javaアプレット
ブラウザ内のJVMで動作するクライアントサイドのアプリケーションです。セキュリティやブラウザ対応の問題で現在はほとんど使われませんが、サーバ専用ではありません。 - ウ: Javaサーブレット
サーブレットはサーブレットコンテナ上で動作するサーバサイドのプログラムで、HTTPリクエストを受けてサーバで動的にレスポンスを生成します。設問条件に合致します。 - エ: VBScript
主にInternet Explorer上のクライアントスクリプトです。ASP等サーバ側で使用されるケースもありますが、設問文の意図では「Webサーバ上だけで動作するもの」を問うため不適切です。
よくある誤解
- 「JavaScriptはサーバでも動くからサーバ側」と誤認する受験者がいますが、設問文では「Webサーバ上だけで動作するもの」を問うため、一般的なクライアント実行のJavaScriptは該当しません(Node.js は別途サーバ側実行環境です)。
- 「Javaアプレットは Java のプログラムだからサーバ上で動く」と考える誤り。アプレットはブラウザ内のJVMで実行され、クライアント側技術です。
- 「VBScriptはサーバでも使える」と誤認しがちですが、VBScriptは主にInternet Explorer上のクライアントスクリプトであり、一般的なWebサーバ専用の技術ではありません(ASP内部で使われる場合は別)。
補足コラム
- サーブレットの代表的な実装環境はApache TomcatやJettyなどのサーブレットコンテナで、サーブレットはライフサイクル(init → service → destroy)を持ち、HTTPリクエストに応じて動作します。
- 現代のWeb開発では、Javaサーブレット自体はフレームワーク(Spring MVC 等)やAPIサーバとして使われることが多く、直接Servletを記述することは少ないですが、基礎知識として出題されます。
- JavaアプレットやVBScriptは歴史的技術であり、ブラウザのサポート状況やセキュリティ観点で廃れている点も押さえておくと選択が速くなります。
補足の簡単なサーブレット例(概念理解用):
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html; charset=UTF-8");
PrintWriter out = resp.getWriter();
out.println("<html><body><h1>Hello Servlet</h1></body></html>");
}
}
FAQ
Q: JavaScriptはサーバで動かせるのでは?
A: はい。Node.jsのようにサーバで動く実装もありますが、設問は「Webサーバ上だけで動作するもの」を問うため、一般的なクライアント実行のJavaScriptは除外されます。問題文の意図を重視してください。
A: はい。Node.jsのようにサーバで動く実装もありますが、設問は「Webサーバ上だけで動作するもの」を問うため、一般的なクライアント実行のJavaScriptは除外されます。問題文の意図を重視してください。
Q: VBScriptはサーバサイドで使えませんか?
A: 過去にはASP内でVBScriptをサーバサイド言語として使うこともありましたが、出題意図では「Webサーバ上だけで動作する」純粋なサーバ専用技術とは見なされません。選択肢全体との比較で判断してください。
A: 過去にはASP内でVBScriptをサーバサイド言語として使うこともありましたが、出題意図では「Webサーバ上だけで動作する」純粋なサーバ専用技術とは見なされません。選択肢全体との比較で判断してください。
Q: サーブレットとJSPの違いは?
A: サーブレットはJavaで直接HTTP処理を書くコンポーネント、JSPはHTML内にJavaコードを埋め込むテンプレートで、JSPは最終的にサーブレットへ変換される点が重要です。
A: サーブレットはJavaで直接HTTP処理を書くコンポーネント、JSPはHTML内にJavaコードを埋め込むテンプレートで、JSPは最終的にサーブレットへ変換される点が重要です。
関連キーワード: Javaサーブレット、サーバサイド、クライアントサイド、サーブレットコンテナ、HTTP、Tomcat、動的生成、Webアプリケーション

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

