<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://www.hohog.net/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://www.hohog.net/feed.php">
        <title>ほうほう爺の独り言 servlet</title>
        <description></description>
        <link>https://www.hohog.net/</link>
        <image rdf:resource="https://www.hohog.net/_media/wiki/favicon.ico" />
       <dc:date>2026-05-04T14:46:58+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://www.hohog.net/servlet/checkipaddress?rev=1665709683&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hohog.net/servlet/eclipsewartomcatdeploy?rev=1682496856&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hohog.net/servlet/escapehtml?rev=1665784538&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hohog.net/servlet/escapexml?rev=1665784554&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hohog.net/servlet/getquery?rev=1665714816&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hohog.net/servlet/tomcatgetremoteaddripv4?rev=1666146206&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hohog.net/servlet/tomcatlog?rev=1689569251&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hohog.net/servlet/tomcatrestart?rev=1689569264&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hohog.net/servlet/tomcatwarfile?rev=1689576052&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.hohog.net/servlet/uriurlservletpath?rev=1665784520&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://www.hohog.net/_media/wiki/favicon.ico">
        <title>ほうほう爺の独り言</title>
        <link>https://www.hohog.net/</link>
        <url>https://www.hohog.net/_media/wiki/favicon.ico</url>
    </image>
    <item rdf:about="https://www.hohog.net/servlet/checkipaddress?rev=1665709683&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-10-14T10:08:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>04. 接続元IPチェック</title>
        <link>https://www.hohog.net/servlet/checkipaddress?rev=1665709683&amp;do=diff</link>
        <description>04. 接続元IPチェック

&lt;https://qiita.com/pilot/items/11efce99be33f17f5bc3&gt; を参照。

CDN なんかを経由すると x-forward-for 使わないとIPアドレスが分からなかったりする。

なので、2つのメソッドを使う。

x-forward-for で取得できなかったら getRemoteAddr() の IP アドレスを使う。</description>
    </item>
    <item rdf:about="https://www.hohog.net/servlet/eclipsewartomcatdeploy?rev=1682496856&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-04-26T17:14:16+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>10. Tomcat に WAR ファイルを使わずに デプロイ</title>
        <link>https://www.hohog.net/servlet/eclipsewartomcatdeploy?rev=1682496856&amp;do=diff</link>
        <description>10. Tomcat に WAR ファイルを使わずに デプロイ

もともと稼働していた Tomcat Server で、たくさんの HTML ファイル等が置いてある状態。

そこに 特定の URL のときに稼働する サーブレットを 追加する。</description>
    </item>
    <item rdf:about="https://www.hohog.net/servlet/escapehtml?rev=1665784538&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-10-15T06:55:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>06. HTMLのエスケープ</title>
        <link>https://www.hohog.net/servlet/escapehtml?rev=1665784538&amp;do=diff</link>
        <description>06. HTMLのエスケープ

html でそのままでは表示できない文字があって、変な表示になった。

文字列を html で正しく表示できるように変換（エスケープ）するメソッドを作成。


public class Utils {

    static String escapeHtml(String src) {
        if (src == null) {
            return null;
        }
        StringBuffer result = new StringBuffer();
        for (char c : src.toCharArray()) {
            switch (c) {
            case '&amp;':
                result.append(&quot;&amp;amp;&quot;);
                break;
            case '&lt;':
                result.append(&quot;&amp;lt;&quot;);
             …</description>
    </item>
    <item rdf:about="https://www.hohog.net/servlet/escapexml?rev=1665784554&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-10-15T06:55:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>07. XMLのエスケープ</title>
        <link>https://www.hohog.net/servlet/escapexml?rev=1665784554&amp;do=diff</link>
        <description>07. XMLのエスケープ

xml でそのままでは表示できない文字があって、変な表示になった。

文字列を xml で正しく表示できるように変換（エスケープ）するメソッドを作成。


public class Utils {

    static String escapeXml(String src) {
        if (src == null) {
            return null;
        }
        StringBuffer result = new StringBuffer();
        for (char c : src.toCharArray()) {
            if (c == '&amp;') {
                result.append(&quot;&amp;amp;&quot;);
            } else if (c == '&gt;') {
                result.append(&quot;&amp;gt;&quot;);
            } else if (c == '&lt;') {
           …</description>
    </item>
    <item rdf:about="https://www.hohog.net/servlet/getquery?rev=1665714816&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-10-14T11:33:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>08. クエリー情報の取得</title>
        <link>https://www.hohog.net/servlet/getquery?rev=1665714816&amp;do=diff</link>
        <description>08. クエリー情報の取得

クエリー全部取得する方法と特定のクエリーを選択して取得する方法


    String queryString = req.getQueryString();
    String queryCmd = req.getParameter(&quot;cmd&quot;);
    String queryOption = req.getParameter(&quot;option&quot;);
    String queryParam = req.getParameter(&quot;param&quot;);
    out.println(&quot;queryString : &quot; + Utils.escapeHtml(queryString) + &quot;&lt;br&gt;&quot;);
    out.println(&quot;queryCmd : &quot; + Utils.escapeHtml(queryCmd) + &quot;&lt;br&gt;&quot;);
    out.println(&quot;queryOption : &quot; + Utils.escapeHtml(queryOption) + &quot;&lt;br&gt;&quot;);
    out.println(&quot;queryParam : &quot;…</description>
    </item>
    <item rdf:about="https://www.hohog.net/servlet/tomcatgetremoteaddripv4?rev=1666146206&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-10-19T11:23:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>09. TomcatでgetRemoteAddr() が 0:0:0:0:0:0:0:1</title>
        <link>https://www.hohog.net/servlet/tomcatgetremoteaddripv4?rev=1666146206&amp;do=diff</link>
        <description>09. TomcatでgetRemoteAddr() が 0:0:0:0:0:0:0:1

Eclipse の Tomcat のアプリで　getRemoteAddr() の戻りが、

「127.0.0.1」の形式ではなくで、「0:0:0:0:0:0:0:1」となって動かない。

調べてみたところ、IPv6 の形式になっていることが原因らしい。</description>
    </item>
    <item rdf:about="https://www.hohog.net/servlet/tomcatlog?rev=1689569251&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-17T13:47:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>01. Tomcat のアクセスログ</title>
        <link>https://www.hohog.net/servlet/tomcatlog?rev=1689569251&amp;do=diff</link>
        <description>01. Tomcat のアクセスログ

Tomcat の場合のサーバーアクセスログがどこにあるのかちょっと調べた。
以下にあった。

/opt/apache-tomcat-9.0.27/logs フォルダに入っているっぽい。
　

localhost_access_log.yyyy-mm-dd.txt というファイルにアクセスログが入っている模様。</description>
    </item>
    <item rdf:about="https://www.hohog.net/servlet/tomcatrestart?rev=1689569264&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-17T13:47:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>02. Tomcatの再起動</title>
        <link>https://www.hohog.net/servlet/tomcatrestart?rev=1689569264&amp;do=diff</link>
        <description>02. Tomcatの再起動

&lt;https://qiita.com/yukinagae/items/06e6a828be44f38f560e&gt;
を参照した。

Tomatを停止

# service tomcat stop

Tomcatを起動

# service tomcat start

Tomcatプロセスの確認

# ps -ef | grep java</description>
    </item>
    <item rdf:about="https://www.hohog.net/servlet/tomcatwarfile?rev=1689576052&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-17T15:40:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>03. Tomcatのwarファイルとデプロイと自動展開</title>
        <link>https://www.hohog.net/servlet/tomcatwarfile?rev=1689576052&amp;do=diff</link>
        <description>03. Tomcatのwarファイルとデプロイと自動展開

&lt;https://ozuma.hatenablog.jp/entry/20131227/1388151846&gt;
を参照。

自分の Tomcatサーバーの conf/server.xml を確認してみた。



unpackWARs も autoDeploy も “true” になっているので、war ファイル作成して配置すればOK と認識。</description>
    </item>
    <item rdf:about="https://www.hohog.net/servlet/uriurlservletpath?rev=1665784520&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-10-15T06:55:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>05. getRequestURI と getRequestURL と getServletPath</title>
        <link>https://www.hohog.net/servlet/uriurlservletpath?rev=1665784520&amp;do=diff</link>
        <description>05. getRequestURI と getRequestURL と getServletPath

サーバに通知される URL の情報を取得する似たようなメソッド、

getRequestURI と getRequestURL と getServletPath

それぞれの動作を確認してみた。


@WebServlet(&quot;/test.html&quot;)
public class FirstServlet extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse res)
            throws IOException, ServletException {
        res.setContentType(&quot;text/html;charset=utf-8&quot;);

        PrintWriter out = res.getWriter();
        out.println(&quot;&lt;html&gt;&quot;);
        out.println(&quot;&lt;…</description>
    </item>
</rdf:RDF>
