サーブレットに渡る環境変数の内容を表示するサーブレットです。
getXXXメソッドで取得できるリクエストヘッダの内容と、getHeaderメソッドで取得できるリクエストヘッダの内容と、getParameterメソッドで取得できるリクエストパラメータの値を表示します。
http://localhost:7001/Example/EnvServlet?key01=val01&key02=val02 |
以下のJavaサーブレットのソースを作成します。
日本語のページの場合は、ContentType設定でcharsetの指定が必要です。
ContentType設定は、getWriterの前に実行しなければなりません。
環境変数は、専用のgetXXXメソッドとgetHeaderメソッドで、リクエストヘッダの内容を表示しています。
また、getParameterメソッドで、リクエストパラメータの内容を表示しています。
EnvServlet.jsp |
---|
// Copyright (C)1995-2002 ASH multimedia lab. http://ash.jp/ package jp.ash.example; import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; /** 環境変数表示サーブレット **/ public class EnvServlet extends HttpServlet { public void service (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { PrintWriter out; Enumeration enum; String key, val; res.setContentType("text/html; charset=Shift_JIS"); out = res.getWriter(); out.println("<html><body>"); out.println("<h1>環境変数の表示</h1>"); out.println("<h2>リクエストヘッダの表示(getXXXメソッド)</h2>"); out.println("<table border=\"2\">"); out.println("<tr><th>key</th><th>val</th></tr>"); out.println("<tr><td>AuthType</td><td>"+req.getAuthType()+"<tr>"); out.println("<tr><td>CharacterEncoding</td><td>"+req.getCharacterEncoding()+"<tr>"); out.println("<tr><td>ContentLength</td><td>"+req.getContentLength()+"<tr>"); out.println("<tr><td>ContentType</td><td>"+req.getContentType()+"<tr>"); out.println("<tr><td>ContextPath</td><td>"+req.getContextPath()+"<tr>"); out.println("<tr><td>Method</td><td>"+req.getMethod()+"<tr>"); out.println("<tr><td>PathInfo</td><td>"+req.getPathInfo()+"<tr>"); out.println("<tr><td>PathTranslated</td><td>"+req.getPathTranslated()+"<tr>"); out.println("<tr><td>Protocol</td><td>"+req.getProtocol()+"<tr>"); out.println("<tr><td>QueryString</td><td>"+req.getQueryString()+"<tr>"); out.println("<tr><td>RemoteAddr</td><td>"+req.getRemoteAddr()+"<tr>"); out.println("<tr><td>RemoteHost</td><td>"+req.getRemoteHost()+"<tr>"); out.println("<tr><td>RemoteUser</td><td>"+req.getRemoteUser()+"<tr>"); out.println("<tr><td>RequestedSessionId</td><td>"+req.getRequestedSessionId()+"<tr>"); out.println("<tr><td>RequestURI</td><td>"+req.getRequestURI()+"<tr>"); out.println("<tr><td>Scheme</td><td>"+req.getScheme()+"<tr>"); out.println("<tr><td>ServerName</td><td>"+req.getServerName()+"<tr>"); out.println("<tr><td>ServerPort</td><td>"+req.getServerPort()+"<tr>"); out.println("<tr><td>ServletPath</td><td>"+req.getServletPath()+"<tr>"); out.println("</table>"); out.println("<h2>リクエストヘッダの表示(getHeaderメソッド)</h2>"); enum = req.getHeaderNames(); if (enum != null) { out.println("<table border=\"2\">"); out.println("<tr><th>key</th><th>val</th></tr>"); while (enum.hasMoreElements()) { key = (String) enum.nextElement(); val = req.getHeader(key); out.println("<tr><td>"+key+"</td><td>"+val+"</td></tr>"); } out.println("</table>"); } out.println("<h2>リクエストパラメータの表示(getParameterメソッド)</h2>"); enum = req.getParameterNames(); if (enum != null) { out.println("<table border=\"2\">"); out.println("<tr><th>key</th><th>val</th></tr>"); while (enum.hasMoreElements()) { key = (String) enum.nextElement(); val = req.getParameter(key); out.println("<tr><td>"+key+"</td><td>"+val+"</td></tr>"); } out.println("</table>"); } out.println("</body></html>"); } } |
WEB-INF/web.xmlファイルに、サーブレットの登録を行います
web.xml |
---|
<?xml version="1.0" ?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>EnvServlet</servlet-name> <servlet-class>jp.ash.example.EnvServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>EnvServlet</servlet-name> <url-pattern>/EnvServlet/*</url-pattern> </servlet-mapping> </web-app> |