基本情報技術者 2016年 秋期 午前(科目A) 問08
問題文
Web環境での動的処理を実現するプログラムであって、Webサーバ上だけで動作するものはどれか。
選択肢
ア:JavaScript
イ:Javaアプレット
ウ:Javaサーブレット(正解)
エ:VBScript
Web環境での動的処理を実現するプログラムであって、Webサーバ上だけで動作するものはどれか。【午前2 解説】
要点まとめ
- 結論:Webサーバ上だけで動作するのは Java サーブレットです。サーブレットはサーブレットコンテナ内で実行され、HTTP リクエストを受けてサーバ側で動的レスポンスを生成します。
- 根拠:JavaScript や VBScript は通常ブラウザ等クライアント側で動作し、Java アプレットもクライアント JVM 上で実行されるため「サーバ上だけ」は当てはまりません。
- 差がつくポイント:問の「サーバ上だけで動作する」を厳密に読むと、実行場所(サーバ/クライアント)で選択肢を切り分ける判断が合格ラインです。サーブレットはサーバサイド専用の技術です。
正解の理由
正解: ウ
Java サーブレットはサーブレットコンテナ(例:Apache Tomcat、Jetty)上で稼働するサーバサイドのプログラムです。HTTP リクエストを受け取り、サーバ内の JVM で処理を行って HTML や JSON などのレスポンスを生成してクライアントに返します。したがって「Webサーバ上だけで動作する」という条件に合致します。他の選択肢はブラウザやクライアント環境(またはクライアント用プラグイン)で実行されるため、サーバ限定ではありません。
よくある誤解
- 「Java」はサーバサイドでも動くから Java アプレットもサーバ上で動くと誤解するケース:アプレットはクライアント JVM(ブラウザプラグイン)で実行されます。
- 「JavaScript はサーバで動くこともある」との混同:Node.js のようにサーバ側で動く JavaScript 実装は存在しますが、選択肢の意図はブラウザ上で実行されるクライアントスクリプトを指します。
- 「動的処理=サーバ側」と即断するミス:動的処理はクライアント側でも可能(DOM 操作やAjax による動的表示)なので、実行場所を必ず確認する必要があります。
解法ステップ
- 問題文のキーワード「Webサーバ上だけで動作する」を強調して読み、実行場所が論点であることを確認する。
- 各選択肢がどこで実行される技術かを思い出す(ブラウザ・クライアント JVM・サーバコンテナ等)。
- 「サーバ上だけで動作する」に合致するのはサーブレットのようなサーバサイド専用技術のみと判断する。
- 他選択肢がクライアント実行であることを根拠に除外する。
選択肢別の誤答解説
- ア: JavaScript — 通常はブラウザ上で実行されるクライアントサイドスクリプトです。近年は Node.js によるサーバ実行もありますが、設問の文脈ではブラウザ実行を指します。
- イ: Javaアプレット — クライアント側の JVM(ブラウザプラグイン)で動作するプログラムで、サーバ専用ではありません(現在はほとんど使われません)。
- ウ: Javaサーブレット — サーブレットコンテナ上で動作するサーバサイドプログラムで、Webサーバ内だけで動作する点が条件に一致します。
- エ: VBScript — 主に Internet Explorer 上などクライアントで実行されるスクリプトで、サーバ専用ではありません(サーバ側スクリプトも存在しますが、通常の文脈ではクライアント側)。
補足コラム
サーブレットはライフサイクル(init → service/doGet/doPost → destroy)を持ち、マルチスレッド環境で同時に複数リクエストを処理します。JSP は最終的にサーブレットに変換されるため、JSP での動的生成もサーバ側処理に該当します。簡単なサーブレット例:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/plain; charset=UTF-8");
resp.getWriter().println("Hello from Servlet");
}
}
FAQ
Q1: Java アプレットはサーバ上で実行できますか?
A1: いいえ。アプレットはクライアント側の JVM(ブラウザ)で実行されるため、サーバ専用ではありません。
A1: いいえ。アプレットはクライアント側の JVM(ブラウザ)で実行されるため、サーバ専用ではありません。
Q2: JavaScript はサーバで動くことがあるのでは?
A2: Node.js 等でサーバサイド実行は可能ですが、本問題の選択肢ではブラウザ実行を想定しているため除外します。問題文の「サーバ上だけで動作する」に厳密に合わせます。
A2: Node.js 等でサーバサイド実行は可能ですが、本問題の選択肢ではブラウザ実行を想定しているため除外します。問題文の「サーバ上だけで動作する」に厳密に合わせます。
Q3: サーブレットは常に Web サーバの内部でしか動かないのですか?
A3: サーブレットはサーブレットコンテナ(Web サーバ/アプリケーションサーバ)上で動作する設計です。コンテナが提供する環境がないと動作しません。
A3: サーブレットはサーブレットコンテナ(Web サーバ/アプリケーションサーバ)上で動作する設計です。コンテナが提供する環境がないと動作しません。
関連キーワード: Javaサーブレット、サーブレットコンテナ、Tomcat、HTTP、サーバサイド、クライアントサイド、JavaScript、VBScript、Javaアプレット、CGI、動的ページ生成

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

