【Tomcat】導入方法

インストール(Windows

Apache Tomcat® - Welcome!







環境変数を設定しておく(startup.bat等の実行に必要)


ログの文字コードを変更

Tomcatの起動ログを出力する側の文字コードUTF-8で、コマンドプロンプトの表示に使用する文字コードがCP932(SJIS)のため文字化けする
logging.propertiesの文字コードSJISにする
場所:C:\Program Files\Apache Software Foundation\Tomcat 9.0\conf\

起動・停止方法

Pleadesから起動する場合

①マーケットプレースからTomcatプラグインをインストールする

②設定を開き、Tomcatのバージョンを選択する

JRETomcatのバージョンに合わせる(Tomcat9ならjava11)

Tomcatの起動アイコンを押下する

⑤URLから起動を確認する
http://localhost:8080/

※開かない場合はマネージャ画面から再ロードを行う

インストール版(Windows)の場合

方法①サービスから起動・停止する

方法②batファイルから起動・停止する
JAVA_HOMEの環境変数設定が必要
起動:startup.bat
停止:shutdown.bat

方法③:Tomcat9w.exeから起動・停止する

マネージャ画面の開き方

tomcat-users.xmlを開く
場所:C:\pleiades\tomcat\9\conf

②下記を追記する
※usernameとpasswordは任意

<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>

③URLを開く
※idとパスワードはxmlで追記した内容を入力
http://localhost:8080/manager

マネージャ画面のアクセス制限

マネージャ画面はデフォルトで自PCでのみアクセスできるようにcontext.xmlで制限されている
場所:C:\pleiades\tomcat\9\webapps\manager\META-INF

ログ

ログファイル 出力内容 設定箇所
catalina.out5 標準出力(catalina.logの内容を含む)+標準エラー出力 catalina.sh
catalina.YYYY-MM-DD.log Tomcat自体のログ logging.properties
localhost.YYYY-MM-DD.log ホスト共通の ServletContext#log logging.properties
manager.YYYY-MM-DD.log manager webapp の ServletContext#log logging.properties
host-manager.YYYY-MM-DD.log host-manager webapp の ServletContext#log logging.properties
localhost_access_log.YYYY-MM-DD.txt ホスト共通の アクセスログ server.xml

【Maven】まとめ

ビルド(Warファイル作成)

①バージョンとパッケージングを確認する

バージョンは出力されるファイル名の一部になる

②pom.xmlに設定を追記する

※下記の書き方はMaven 3系以上

	<properties>
		<!-- コンパイルの設定 -->
		<java.version>11</java.version>
		<maven.compiler.source>${java.version}</maven.compiler.source>
		<maven.compiler.target>${java.version}</maven.compiler.target>
		<!-- エンコーディングの設定 -->
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
	</properties>
③ビルドを実行する

方法1.Maven ビルドを実行する


方法2.Maven Installを実行する

④warファイルを確認する

workspace>プロジェクト>targetの中にwarファイルが作成される

Tomcat連携(自動ビルド)

tomcat-users.xmlにユーザーを追加する

場所:C:\pleiades\tomcat\9\conf
※manager-guiと同じユーザー名にしないこと(エラーになる)
Tomcatを再起動しないとこの設定は反映されない

<role rolename="manager-script"/>
<user username="admin" password="admin" roles="manager-script"/>
②settings.xmlを作成する

場所:C:\Users\(ユーザー名)\.m2

③settings.xmlにサーバー設定を記載する

idは任意。usernameとpasswordはtomcat-users.xmlの内容を記載する

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      https://maven.apache.org/xsd/settings-1.0.0.xsd">
  <servers>
    <server>
      <id>TomcatServer</id>
      <username>admin</username>
      <password>admin</password>
    </server>
  </servers>
</settings>

settings.xmlの参照先が合っていることを確認しておく

④pom.xmlにtomcat7-maven-pluginを設定する

プラグインのバージョンをtomcatのバージョンに合わせる必要はない

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <server>TomcatServer</server>
                    <url>http://localhost:8080/manager/text</url>
                    <path>/${project.artifactId}</path>
                    <update>true</update>
                </configuration>
            </plugin>
        </plugins>
    </build>
server setting.xmlで設定したTomcatの認証情報を指定
url local環境にデプロイする場合は省略で良い。ローカル環境ではない場合は指定が必要(http://サーバのIPアドレス>:ポート番号/manager/text))
path コンテキストパスを指定する
update すでにデプロイされている場合にアンデプロイするかどうかの設定。trueにしておくとredeployをゴールに指定する必要はなくなるのでtrueにしておくと良い。
Tomcatにデプロイする

Tomcatを起動しておかないとエラーになる

tomcat7:deploy

【Linux】コマンド

ディレクトリ移動(cd)

・ホームディレクトリに移動
$ cd 

・ディレクトリを移動(相対パス)
$ cd sample

・ディレクトリを移動(絶対パス)
$ cd /sample/sample2

・1階層上のディレクトリに移動
$ cd ..

・移動前のディレクトリに戻る
$ cd -

ディレクトリ内のファイルを表示(ls)

$ ls


ファイルの一覧や詳細を表示(ll)

「ls -l」の短縮版

$ ll

カレントディレクトリを表示(pwd

$ pwd


画面をクリアする(clear)

Ctrl+Lでも可

$ clear

ファイルの内容を閲覧する(less)

編集不可

コマンド 内容
g 先頭行へ飛ぶ
G 最終行へ飛ぶ
q 終了する
$ less sample.txt

ファイルの内容を編集する(vim

# 開くファイルを指定する
vim sample.txt
コマンドモード⇒入力モード

「i」キーを入力

入力モード⇒コマンドモード

「esc」キーを入力

保存して抜ける

コマンドモードで「:wq」コマンドを入力

保存せず抜ける

コマンドモードで「:q!」コマンドを入力

変更を戻す

コマンドモードで「u」キーを入力

取り消し(上記uの取りやめ)

コマンドモードで「ctr」+「r」キーを入力

ファイル/ディレクトリを検索する(find)

# カレントディレクトリのみで"hello.txt"を検索
find hello.txt

# カレントディレクトリのみで"hello.txt"を検索
find hello.txt

# カレントディレクトリとサブディレクトリから"hello.txt"を検索
find -name hello.txt
find -name "hello*"   #ワイルドカード使用可能(ダブルクォーテーションで囲む必要あり)
find -iname HELLO.txt  # 大文字小文字を区別しない

# testディレクトリとその配下ディレクトリから"hello.txt"を検索
find ./test -name hello.txt

# ファイルのみを対象とする(-type f)
find -name "hello*" -type f

# ディレクトリのみを対象とする(-type d)
find -name "hello*" -type d

# OR条件(-or)
find -name hello.txt -or -name hello2.txt

# 検索したファイルを開く(検索結果が複数の場合 :nで次ファイル、:pで前ファイルに遷移)
find -name hello* | xargs less

対象の文字列を含むファイルを検索する(grep

オプション 内容
-r ディレクトリを指定した場合はサブディレクトリ内のファイルも含めて検索する
-R サブディレクトリも含めて検索、さらにシンボリックリンクの先
-l ファイル名のみ表示する
-i 小文字・大文字の区別なく検索
# 対象のファイルから対象の文字列を検索
grep aiueo hello.txt

# カレントディレクトリと配下のディレクトリから対象の文字列を含むファイルを検索
grep -r aiueo ./   # ヒット箇所も表示
grep -rl aiueo ./  # ヒット箇所は表示しない(ディレクトリ名だけ)

# 検索したファイルを開く
grep -rl aiueo ./ | xargs less


ディレクトリ構成

ディレクトリ名 役割
/ (root) 全てのディレクトリの上位にあるルートディレクトリです
/bin 基本的なコマンドを格納しています
/boot システムの起動に必要なファイルを格納しています
/dev バイス関連のファイルを格納しています
/etc Linuxの設定ファイルを格納しています
/home ユーザのホームディレクトリです
/lib ライブラリのデータを格納しています
/media リムーバブルメディアのマウントポイントです
/mnt マウントポイントです
/sbin システム管理者向けのコマンドを格納しています
/temp 一時ディレクトリーです
/usr 各種コマンドやドキュメントを格納しています
/var ログやキャッシュなどの保存に使用されます

【JavaScript、jQuery】よく使う

値を設定/削除

<input type="text" id="inputText" /><br>
<input type="button" id="insertButton" value="入力" />
<input type="button" id="clearButton" value="クリア" />

<script>
  // 入力ボタンをクリック
  $('#insertButton').on('click', function() {
    // 値を入力
    $('#inputText').val('サンプルです');
  });

  // クリアボタンをクリック
  $('#clearButton').on('click', function() {
      // 値を削除
      $('#inputText').val('');
  });
</script>

ラジオボタンがONの場合のみ項目を表示

<input type="radio" id="isRegistOn" value="true" name="toroku" />登録あり
<input type="radio" id="isRegistOff" value="false" name="toroku" checked/>登録なし<br>
<input type="text" id="userName" value=""/>

<script>
  // 初期表示処理
  if ($('#isRegistOff').is(':checked')){
    // 登録なしにチェックがあれば、対象の項目を非表示
    $('#userName').hide();
  } else {
      // それ以外の場合、対象の項目を表示
    $('#userName').show();
  }

  // 登録ありをクリック
  $('#isRegistOn').on('click', function() {
      // 対象の項目を表示
      $('#userName').show();
  });

  // 登録なしをクリック
  $('#isRegistOff').on('click', function() {
      // 対象の項目を非表示
      $('#userName').hide();
  });
</script>

ラジオボタンの選択/解除/値の取得

<input type="radio" id="rd0" name="radio_test" value="0番" />ラジオテスト0
<input type="radio" id="rd1" name="radio_test" value="1番" />ラジオテスト1
<input type="radio" id="rd2" name="radio_test" value="2番" />ラジオテスト2<br>
<input type="button" id="select1Button" value="1番を選択" />
<input type="button" id="clear1Button" value="1番の選択解除" />
<input type="button" id="clearAllButton" value="全選択解除" />
<input type="button" id="getButton" value="値を取得" />

<script>
  // 1番を選択をクリック
  $('#select1Button').on('click', function() {
    // 選択 (id指定)
    $('#rd1').prop('checked', true);
  });

  // 1番の選択解除ボタンをクリック
  $('#clear1Button').on('click', function() {
    // 選択解除 (id指定)
    $('#rd1').prop('checked', false);
  });

  // 全選択解除ボタンをクリック
  $('#clearAllButton').on('click', function() {
    // 選択解除 (name指定)
    $("input[name='radio_test']").prop('checked', false);
  });

  // 値を取得
  $("#getButton").on('click', function() {
      var radioVal = $("input[name='radio_test']:checked").val();
      alert(radioVal);
  });
</script>

ボタンの二重クリック防止

ボタンはinput type="button"ではなく、buttonにしておくこと
⇒連打しても正しく動作する

<button type="submit" formaction="offer_confirm">確認へ進む</button>

<script>
  // 二重クリック防止
  $('button, input[type="button"]').on('click', function() {
    $(this).prop("disabled", true);
  });
</script>

【JavaScript】ajaxzip3(郵便番号→住所自動入力)

ajaxzip3とは

郵便番号を打つと、住所を自動入力するJavaScriptライブラリ

使い方

パターン1.リンクを読み込んで使う

DL不要。オンラインでのみ使用可能

<body>
  <script src="https://ajaxzip3.github.io/ajaxzip3.js"></script></body>
パターン2.ファイルをダウンロードして使う

オフラインでも使用可能。
GitHub - ajaxzip3/ajaxzip3.github.io

使用例

※自動入力先(都道府県等)はname指定しなければいけない

パターン1


AjaxZip3.zip2addr( '(in)〒上3桁', '(in)〒下4桁', '(out)都道府県', '(out)市区町村', '(out)丁目番地' );

<div>
  <div><input type="text" name="zip" onKeyUp="AjaxZip3.zip2addr(this, '', 'pref', 'city', 'town' );"></div>
  <div>都道府県<input type="text" name="pref"></div>
  <div>市区町村<input type="text" name="city"></div>
  <div>町名番地<input type="text" name="town"></div>
</div>
パターン2


AjaxZip3.zip2addr( '(in)〒上3桁', '(in)〒下4桁', '(out)都道府県', '(out)市区町村', '(out)丁目番地' );

<div>
  <div><input type="text" name="zip1">-<input type="text" name="zip2" onKeyUp="AjaxZip3.zip2addr('zip01', this, 'pref', 'pref' );"></div>
  <div>住所<input type="text" name="pref"></div>
</div>
パターン3

<div>
  <div><input type="text" name="zip" onKeyUp="AjaxZip3.zip2addr( this, '', 'pref', 'address');"></div>
  <div>都道府県
          <select name="pref">
            <option value="">-- 選択してください --</option>
            <option value="北海道">北海道</option>
            <option value="青森県">青森県</option>
            <option value="岩手県">岩手県</option>
            <option value="宮城県">宮城県</option>
            <option value="秋田県">秋田県</option>
            <option value="山形県">山形県</option>
            <option value="福島県">福島県</option>
            <option value="茨城県">茨城県</option>
            <option value="栃木県">栃木県</option>
            <option value="群馬県">群馬県</option>
            <option value="埼玉県">埼玉県</option>
            <option value="千葉県">千葉県</option>
            <option value="東京都">東京都</option>
            <option value="神奈川県">神奈川県</option>
            <option value="新潟県">新潟県</option>
            <option value="富山県">富山県</option>
            <option value="石川県">石川県</option>
            <option value="福井県">福井県</option>
            <option value="山梨県">山梨県</option>
            <option value="長野県">長野県</option>
            <option value="岐阜県">岐阜県</option>
            <option value="静岡県">静岡県</option>
            <option value="愛知県">愛知県</option>
            <option value="三重県">三重県</option>
            <option value="滋賀県">滋賀県</option>
            <option value="京都府">京都府</option>
            <option value="大阪府">大阪府</option>
            <option value="兵庫県">兵庫県</option>
            <option value="奈良県">奈良県</option>
            <option value="和歌山県">和歌山県</option>
            <option value="鳥取県">鳥取県</option>
            <option value="島根県">島根県</option>
            <option value="岡山県">岡山県</option>
            <option value="広島県">広島県</option>
            <option value="山口県">山口県</option>
            <option value="徳島県">徳島県</option>
            <option value="香川県">香川県</option>
            <option value="愛媛県">愛媛県</option>
            <option value="高知県">高知県</option>
            <option value="福岡県">福岡県</option>
            <option value="佐賀県">佐賀県</option>
            <option value="長崎県">長崎県</option>
            <option value="熊本県">熊本県</option>
            <option value="大分県">大分県</option>
            <option value="宮崎県">宮崎県</option>
            <option value="鹿児島県">鹿児島県</option>
            <option value="沖縄県">沖縄県</option>
        </select></div>
  <div>市区町村番地<input type="text" name="address"></div>
</div>

javaScriptで動かす方法

<div>
  <div><input type="text" name="zip"></div>
  <div>都道府県<input type="text" name="pref"></div>
  <div>市区町村<input type="text" name="city"></div>
</div>

<script>
  // 郵便番号を変更したら
  $("[name=zip]").on('change', function() {
    // 郵便番号が未入力なら実行しない
    if (!$(this).val()){
      return;
    }
    // 住所取得
    AjaxZip3.zip2addr('zip', '', 'pref', 'city');
  });
</script>

【Windows11】nasne使用方法

Step1.Wifiの設定を変更(パブリック→プライベート)

1.検索欄から「Wi-Fi設定」と検索し、開く
2.プロパティを開く

3.プライベートを選択する

Step2.共有設定の変更

1.検索欄から「共有の詳細設定の管理」と検索し、開く
2.設定を変更する

Step3.セキュリティ設定の解除

1.キーボードの[Windows]キーと[R]キーを同時に押して[ファイル名を指定して実行]画面を起動する
2.名前欄に「appwiz.cpl」と入力して[OK]をクリックし、「プログラムと機能」を開く
3.左ペインより「Windows 機能の有効化または無効化」をクリックする
4.[SMB 1.0/CIFS ファイル共有のサポート]内の「SMB 1.0/CIFS クライアント」にチェックを入れて[OK]をクリックする
5.設定変更後、[今すぐ再起動]をクリックする

【JavaScript】exValidation

exValidationとは

リアルタイムで入力チェック(バリデーション)を付けられるjQueryプラグイン

1.ファイルをダウンロードする

GitHub - 5509/exValidation

2.ダウンロードしたファイルを配置する

使用するファイル

■scripts配下
・exvalidation.js
・exchecker-ja.js

※exvalidation.jsに下記を記載しておく(二重送信防止のjavaScript制御と連動)

    // Double Press Prevention
    form.on('submit', function(e) {
      _exeValidation()
        ? $(this).find('button[type="submit"], input[type="submit"]').prop("disabled", true)
        : $(this).find('button[type="submit"], input[type="submit"]').prop("disabled", false)
    })


■styles配下
・exvalidation.css

配置する



3.jspで使えるようにする

jqueryも必要

<head>
~~~
<link type="text/css" rel="stylesheet" href="/demo/resources/common/css/exvalidation.css" />
</head>
<body>
~~~
<script src="/demo/resources/common/js/jquery-3.7.1.min.js"></script>
<script src="/demo/resources/common/js/exvalidation.js"></script>
<script src="/demo/resources/common/js/exchecker-ja.js"></script>
</body>

4.ルールを定義する

<form:form modelAttribute="offerForm" method="post">
  <label>ユーザーID:</label>
  <form:input id="userId" path="userId" value=""/><br><br><br>
  <label>名前:</label>
  <form:input id="name" path="name"/><br><br>

  <input type="submit" value="確認へ進む" formaction="offer_confirm"/>
</form:form>

<script>
var validation = $("form")
.exValidation({
    firstValidate: true,
    rules: {
        userId: "chkrequired",
        name: "chkrequired",
        kana: "chkrequired chkkatakana",
        email: "chkrequired chkemail chkhankaku chkgroup",
        email3: "chkrequired chkemail chkhankaku",
        pass: "chkrequired chkmin6 chkmax12",
        repass: "chkrequired chkretype-pass",
        url: "chkrequired chkurl",
        radio: "chkradio",
        street: "chkgroupt chkrequired",
        checkbox: "chkcheckbox",
        pref: "chkselect",
        file: "chkfile"
    },
    stepValidation: true
});
</script>


バリデーションの種類

ルール エラー内容
chkrequired 入力してください
chkmax6 6文字以内で入力してください ※数字は可変
chkmin4 4文字以上で入力してください ※数字は可変
chkhiragana ひらがなで入力してください
chkkatakana カタカナで入力してください
chkfurigana ふりがなはひらがな、全角数字と〜、ー、()が利用できます
chkhankaku 全角文字は使用できません
chkzenkaku 全角文字で入力してください
chknochar 英数字で入力してください
chknocaps 英数字(小文字のみ)で入力してください
chknumonly 半角数字のみで入力してください
chkzip 正しい郵便番号の形式を入力してください
chkemail 正しいメールアドレスの形式を入力してください
chkurl 正しいURLの形式を入力してください
chktel 正しい電話番号を入力してください
chkfax 正しいファックス番号を入力してください
chkretype-xxx 入力内容が異なります ※xxxにはチェック対象のidを記載
chkradio 選択してください ※ラジオボタンで使用
chkselect 選択してください ※セレクトボックスで使用
chkfile ファイルを選択してください ※input type="file"で使用

設定

「exvalidation.js」に動作に関係する設定が記載されている
値を変更することで動作を変更可能

errHoverHide エラーメッセージにカーソルを乗せると消える
errTipCloseBtn エラーメッセージに閉じるボタンを表示するか
errTipCloseLabel 上記で表示する場合の閉じるボタンのテキスト「×」
errMsgPrefix エラーメッセージの先頭文字 「入力してください」の「*」
errTipPos エラーの表示位置 INPUT 等エレメントに対し左右を調整
scrollToErr エラーのあった場所へスクロールするか「送信」ボタン押下時などで重宝します。
customListener どの状態でエラー判定するか
blur」:カーソルがそこから離れた時
「keyup」:1文字でも入力したらすぐ
「change」:変化があれば(selectやcheckbox,radioなど)
「focus」:カーソルを当てたらすぐ