アプリ開発ときどきアウトドアアウトドアWebツール自己紹介お問合せアプリ開発ときどきアウトドア主にJavaを使ったアプリ開発やトラブルシューティング等のノウハウ、キャンプや登山の紹介や体験談など。2019年7月8日Googleの検索結果への表示を促進するためにGoogleに対してサイトマップを提供する必要がある。WordPressでは様々なプラグインを使ってサイトマップを作成できるが、Webアプリの場合は独自に提供する必要がある。ここでは、Webアプリでサイトマップを生成するためのサーブレットについて説明します。前提JavaEEを使ったWebアプリを想定しています。ここでは、Javaでサイトマップを生成するためのライブラリであるsitemapgen4jを使用します。5万件を超える場合、ファイルを分割する必要があります。(サイトマップファイルと、これらのファイルへの参照を定義するサイトマップインデックスファイル)サイトマップの詳細については、Googleのヘルプを参照のこと。仕様Webアプリで検索して見つかったディレクトリやファイルからサイトマップに含めるURLを構成します。ベースのURLが”https://example.com/example-web/”、見つかったファイルが/pages/index.xthml”だった場合、これらを結合した”https://example.com/example-web/pages/index.xthml”というURLをサイトマップファイルに追加します。ベースURLやディレクトリ・ファイルの定義はプロパティファイルに定義します。プロパティファイルの配置場所はクラスパス上の任意の場所を想定します。検索ディレクトリであり、このディレクトリを再帰的に検索する。コンテキストからのパスです。MMは任意の整数です。上記のscanMM.pathを検索する際のファイル名(正規表現)。02,...等のように変更することで複数指定可能。上記の検索から除外するディレクトリ・ファイル名であり、ZZを変更することで複数指定が可能。^\\/WEB-INF\\/.*JavaEEベースのWebアプリに組み込みやすいよう、サーブレット単体で実現します。sitemapgen4jの仕様上、ファイルシステムへの出力が必要となります。本プログラムでは一時ディレクトリを作成(Files#createTempDirectory)してサイトマップファイルを出力し、その内容をHTTP応答として返却後に一時ディレクトリとサイトマップファイルを削除しています。モジュール関連するファイルは下記の通り。mavenファイルサーブレットプログラムメインとなるサーブレットのソースコード(抜粋)です。一時ディレクトリにサイトマップファイルを作成し、その内容をレスポンスに設定する。サイトマップスキャン情報に基づいてURLをロードする。ルートを基準としたパスに変換する。wsu.getUrl());}}}...プロパティファイル上記のサーブレットで使用するプロパティファイルです。EOFWeb.xml上記のサーブレットをWebアプリに登録します。--><servlet><servlet-name>sitemapgen</servlet-name><servlet-class>example.web.servlet.SimpleSitemapGenerator</servlet-class></servlet><servlet-mapping><servlet-name>sitemapgen</servlet-name><url-pattern>/sitemap</url-pattern></servlet-mapping>...</web-app>pom.xmlmavenを使ってライブラリを指定する場合は次のようにpom.xmlを定義します。mavenを使わない場合は、/WEB-INF/lib等のクラスパス上にsitemapgen4jのjarを配置します。xmlns="http://maven.apache.org/POM/4.0.0"...<dependencies>...<dependency><groupId>com.google.code</groupId><artifactId>sitemapgen4j</artifactId><version>1.0.1</version></dependency>...</dependencies>...動作確認web.xmlで定義したURLをブラウザで開きます。ConsoleのサイトマップでURLを登録します。下記はブラウザで開いた場合の応答結果です。コメントをキャンセルメールアドレスが公開されることはありません。*サイト関連記事パスワード情報の保管方式の比較Webアプリの開発でパスワードを使ったユーザ認証を設計・実装する機会がよくある。後輩への説明や勉強会ネタとして、この辺の話を纏めてみようと思う。HTML5への対応方法の調査等、今後の理解促進のために、調べてみた。使用するマスタデータをExcelで管理することがあります。...WildflyでリクエストをダンプするWebアプリのデバッグや障害対応等で、Webアプリに対するリクエストやレスポンスのHTTPヘッダや内容を確認したい場合がある。...ExcelからPowerPointへの図表貼り付けVBAパフォーマンスモニタの監視データ(blg)に基づいてPowerPointで報告用のレポートを作成する必要がありました。...PREVJavaでサポートする暗号化アルゴリズムNEXTJSFラジオボタン・チェックボックスとbootstrap自己紹介ゆっきーです。都内でシステムエンジニアをやっています。素人の伊豆大島一周サイクリングmybatis-generatorプラグインの実装方法システム開発でのmybatis-generatorの利用mavenマルチモジュールプロジェクトの構成例Java正規表現によるパラメータ置換アウトドアWebツール自己紹介お問合せアプリ開発ときどきアウトドア主にJavaを使ったアプリ開発やトラブルシューティング等のノウハウ、キャンプや登山の紹介や体験談など。