トップ ITインフラ OSとミドルウェア Tomcat プログラミング方法 ServletでHTTPリクエスト情報取得

ServletでHTTPリクエスト情報取得する方法

サーブレットでHTTPリクエスト情報(ホスト情報や参照ページ)を参照する例になります。サンプルコード、Tomcatの設定、デプロイなど動作させるまでの手順をまとめています。

▲記事トップへ

目次

この記事の目次です。

1. 動作確認した環境
2. ファイルの配置構成
3. サーバ設定&コンテキスト指定
4. Servletのサンプルコード
5. コンパイル
6. 動作確認方法

もっと知識を広げるための参考
更新履歴

1. 動作確認した環境

動作確認した環境です。

2. ファイルの配置構成

Tomcatのファイルの配置構成です。

□tomcatホームディレクトリ
├□conf
|└◆server.xml
└□webapps
  └□test
    └□WEB-INF
      ├□classes
      |└◆SampleServlet.class
      └◆web.xml

文字コードはUTF-8を使用します。 html、JSP、Servlet全部UTF-8に統一します。 apacheと連携する場合、「AddDefaultCharset UTF-8」を指定します。

3. サーバ設定&コンテキスト指定

サーバ設定とコンテキスト指定(server.xml)です。

<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">

  <!--: 省略-->

  <Service name="Catalina">
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               URIEncoding="UTF-8" />

    <Connector port="8009"
               protocol="AJP/1.3"
               redirectPort="8443"
               URIEncoding="UTF-8" />
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="false"
            xmlValidation="false" xmlNamespaceAware="false">
        <Context path="/test"
                 docBase="<tomcatホームディレクトリ>/webapps/test"
                 reloadable="true">
        </Context>
      </Host>
    </Engine>
  </Service>
</Server>

4. Servletのサンプルコード

Servletのサンプルコード(SampleServlet.java)です。

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class SampleServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

    public void doGet(HttpServletRequest req, HttpServletResponse res)
            throws IOException, ServletException {
        String bodyText = mkBodyText(req);
        outHtml(res, bodyText);
    }

    private String mkBodyText(HttpServletRequest req) {
        StringBuilder bodyText = new StringBuilder();
        bodyText.append("<ul>")
                .append("<li>閲覧ページ:")
                .append(req.getRequestURL()).append("</li>")
                .append("<li>ホスト名:")
                .append(req.getHeader("Host")).append("</li>")
                .append("<li>リンクページ:")
                .append(req.getHeader("Referer")).append("</li>")
                .append("</ul>");
        return bodyText.toString();
    }

    private void outHtml(HttpServletResponse res, String bodyText)
            throws IOException {
        res.setContentType("text/html; charset=UTF-8");
        PrintWriter out = res.getWriter();
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Test</title>");
        out.println("</head>");
        out.println("<body>");
        out.println(bodyText);
        out.println("</body>");
        out.println("</html>");
    }
}

5. コンパイル

コンパイル方法です。

java -classpath <tomcatホーム>/lib/servlet-api.jar:. SampleServlet.java User.java

配備記述子(web.xml)

<?xml version="1.0" encoding="UTF-8" ?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
             http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
         version="2.4">
    <servlet>
        <servlet-name>sample</servlet-name>
        <servlet-class>SampleServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>sample</servlet-name>
        <url-pattern>/sample</url-pattern>
    </servlet-mapping>
</web-app>

6. 動作確認方法

ブラウザより、「http://<tomcatサーバのホスト>:8080/test/sample」へアクセス。 以下のように表示されます。

※「リンクページ:null」なのはリンクページを作成していないためです。

もっと知識を広げるための参考

もっと知識を広げるための参考です。

Tomcat

このページでは、Apache Tomcatについての情報を掲載しています。

詳細

更新履歴

この記事の更新履歴です。

戻る

スポンサーリンク

サイト内のページ

言語
C・C++ /HTML /Java /JavaScript /PHP /シェルスクリプト

開発環境
Ant /Burp /Eclipse /Fiddler /gcc /gdb /Git /g++ /JDK /JMeter /JUnit /Teraterm /ZAP

技術・仕様
Ajax /CORBA /Jakarta EE(旧称J2EE、Java EE) /JNI

ライブラリ/Framework/CMS
bootstrap /jQuery /FuelPHP /Lucene /MyBatis /Seasar2 /Spring /Struts /WordPress

Web API
Google Maps

ITインフラOSとミドルウェア
Linux /Windows /シェル
ActiveMQ /Tomcat /MariaDB /MySQL /Nagios /Redis /Solr

ITインフラサーバー
公開Webサーバー

ITインフラネットワーク
プログラミング /構築

ITインフラセキュリティ
公開サーバーのセキュリティ

PC製品
ZOTAC

SI
ホームページの作り方

その他
IT用語 /ITスキル体系

スポンサーリンク

関連サイト内検索ツール

zealseedsおよび関連サイト内のページが検索できます。

IPアドレス確認ツール

あなたのグローバルIPアドレスは以下です。

34.207.178.236

HTMLの表示色確認ツール

パスワード生成ツール

文字数のプルダウンを選択して、取得ボタンを押すと「a~z、A~Z、0~9」の文字を ランダムに組み合わせた文字列が表示されます。

ここに生成されます。

スポンサーリンク