サーブレットに渡る環境変数の内容を表示するサーブレットです。
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>
|