フォルダの空いているところでマウスの右ボタンをクリックし、[新規作成]-[テキスト ドキュメント]を選びます。
ちなみにメモ帳を新しく開くと『ANSI』のこともあれば『UTF-8』のこともありました。でも、今みると『UTF-8』でした!パソコンによって異なるのかなぁ?
フォルダの空いているところでマウスの右ボタンをクリックし、[新規作成]-[テキスト ドキュメント]を選びます。
ちなみにメモ帳を新しく開くと『ANSI』のこともあれば『UTF-8』のこともありました。でも、今みると『UTF-8』でした!パソコンによって異なるのかなぁ?
Javaでウェブサイトを作りたくて Windows クライアントに Apache Tomcat をセットアップしました。色々なサイトを参考にしましたので、わたしもまとめ情報を公開します。
でもね、開発するだけなら Tomcat も HTTP Server も不要でした。詳しくはこちら↓で紹介しています
Spring Initializrで始めるウェブ開発
ダウンロードしたファイルは次のものになります。今回はすべてZIPファイルをダウンロードしました。ダウンロード先のリンクを貼っておきます。
まずはJDKからセットアップします。
ダウンロードしたZIPファイル内の[jdk-23]フォルダを任意のローカルディスクに保存します。わたしはフォルダ名を[jdk]に変更しました。
次にWindowsのシステム環境変数を設定します。Tomcatでも設定しますので、あとでまとめて設定しても良いです。
[スタート]から[環境変数]を検索して、[システム環境変数の編集]を開きます。[システムのプロパティ]-[詳細設定]タブが開きますので、右下の[環境変数]ボタンを押します。
[JAVA_HOME]を追加して値をJDKのフォルダ名にします。例えば D:\webservice\jdk になります。
また[Path]にJDKのフォルダの中の[bin]を追加します。例えば D:\webservice\jdk\bin になります。
JDKに続いて Apache Tomcat をセットアップします。
ダウンロードしたZIPファイル内の [apache-tomcat-10.1.30] フォルダを任意のローカルディスクに保存します。わたしはフォルダ名を[tomcat]に変更しました。
次に設定ファイルを更新します。
Tomcatのフォルダにある conf\server.xml をメモ帳で開きます。
<Connector port=”8080″ から /> までをコメントアウトして無効にします。
<Connector protocol=”AJP/1.3″ から /> までをコメントアウトから外して有効にします。
<Connector protocol=”AJP/1.3″ から /> の間に secretRequired=”false” を追記します。
<Host から </Host> の間に <Valve className=”org.apache.catalina.valves.RemoteAddrValve” allow=”127.0.0.1″ /> を追記します。
ファイルを保存して閉じます。
(Windowsのみ)
Tomcatのフォルダにある conf\logging.properties をメモ帳で開きます。
java.util.logging.ConsoleHandler.encoding = UTF-8 行を java.util.logging.ConsoleHandler.encoding = SJIS に変更します。
次にWindowsのシステム環境変数を設定します。
[CATALINA_HOME]を追加して値をTomcatのフォルダ名にします。例えば D:\webservice\tomcat になります。
また[Path]にTomcatのフォルダの中の[bin]を追加します。例えば D:\webservice\tomcat\bin になります。
サービスとして起動するには、コマンドプロンプトを開いてトムキャットの bin ディレクトリへ移動して次のコマンドを実行します。
service.bat install
もし「[error] [ 3540] 指定されたサービスは既に開始されています。」と表示されたら、既にサービスに登録されていることを疑ってみます。サービス名はAから始まる「Apache Tomcat ・・・」です。
次にWindowsサービスの一覧を開いて「Apache Tomcat ・・・」を見つけます。
「スタートアップの種類」が手動になっていますので、自動へ変更します。
最後に Apache Http Server をセットアップします。
ZIPファイル内の [Apache24] フォルダを任意のローカルディスクに保存します。わたしはフォルダ名を[apache]に変更しました。
次に設定ファイルを更新します。
Apache HTTP Serverのフォルダにある conf\httpd.conf をメモ帳で開きます。
Define SRVROOT “パス” のパスを実際のパスに書き換えます。例えば D:/webservice/apache になります。
次の2行の先頭にある#を取り除いて有効にします。
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
次の2行を追記します。
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
ファイルを保存して閉じます。
サービスとして起動するには、コマンドプロンプトを開いてアパッチの bin ディレクトリへ移動して次のコマンドを実行します。
httpd.exe -k install
MySQLを使おうかMariaDBにしようか、色々と悩みました。色々と調べてみるとMySQLとMariaDBには際立った違いはなく、こだわらない人には「どちらでもよい」と感じられる程度の差異があるとの認識に達しました。今回はMariaDBを使うことにします。
MSIファイルをダブルクリックしてセットアップを始めます。
パスワードやインストール先パスを入力し、「Use UTF8 as default server’s character set」のチェックを入れます。
これでMariaDBのセットアップが終わり、サービスとしてMariaDBが動作しています。
次にWindowsのシステム環境変数を設定します。[Path]にMariaDBのフォルダの中の[bin]を追加します。例えば D:\webservice\MariaDB\bin になります。
ダウンロードしたjarファイルを次の2つのフォルダに保存します。
Tomcatが開始されているときはファイル保存後に再起動します。
最初に Tomcat を開始します。
Tomcat のフォルダにある bin\startup.bat をダブルクリックで Tomcat を開始します。
[JAVA_HOME]に関するエラーが表示されたばあいは、環境設定のパスを再確認します。パスをコピペしてみると良いでしょう。
次に Apache Http Server を開始します。
Apache HTTP Serverのフォルダにある bin\httpd.exe をダブルクリックで Apache Http Server を開始します。
最初に開始するときは Windows によって PC が保護されます。
これを回避するために bin\httpd.exe ファイルのプロパティを開いて、[全般]タブの下側にある[許可する]にチェックを入れて[適用]します。これで bin\httpd.exe ファイルをダブルクリックで実行できるようになりました。
ブラウザーを開いて http://localhost を開きます。Apache Tomcat の画面が表示されれば成功です。
開いている httpd.exe の画面の右上にある X をクリックして閉じます。
次に Tomcat のフォルダにある bin\shutdown.bat をダブルクリックで Tomcat を終わらせます。
これでローカルPCにサーブレットとJSPの実行環境が整いました。
本番環境では https が使われますので、http から変更する設定が必要になります。でもドメインが必要になりますので、ローカル環境では難しいとおもいます。別の機会に紹介できればいいなとおもいます。
Tomcat/webapps のフォルダに アプリ名(コンテキストルート)/WEB-INF のサブフォルダを作ります。例えば tomcat\webapps\hello\WEB-INF という風です。
サンプルのサーブレットファイル(なんとか.class)は WEB-INF フォルダに classes サブフォルダを作って保存します。
Tomcat/conf/web.xml を WEB-INF フォルダにコピペして、メモ帳で開きます。次のブロックを探しましょう。
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
・・・
<load-on-startup>1</load-on-startup>
</servlet>
↑これを、↓このように書き換えて保存します。
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>アプリ名(コンテキストルート)</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
Tomcatを再起動することで設定が読み込まれます。
ブラウザーを開いてURL「http://localhost/アプリ名(コンテキストルート)」を開きます。
無事に開きましたでしょうか?
稼働確認のためにつくったプログラムはこちらからダウンロードできます
[Java]Tomcat-MariaDBサンプルプログラム
MariaDBをインストールするとHeidiSQLが付いてきます。このHeidiSQLを開いて新しくデータベースを作成してみます
画面左側の [localhost] - [新規作成] - [データベース] を選びます
[データベースを作成] 画面で、任意の [名前] をいれます
[照合] は何を選んだらいいの?というのが今回のお話しの中心になります
データを比較するときにどうするかというものです
日本語対応のUTF-8にするのでutf8mb4にしますが、utf8mb4から始まるものがたくさんあります
細かいことは列の設定でもできるそうなので、データベースの設定としてはutf8mb4_binにします
binはバイナリ比較をするという意味で、アルファベットの大文字小文字や平仮名片仮名を別の文字として比較します
データベースを作成するときに名前と照合が必要でした
MariaDBはOS2/400と同様に、あらかじめ列を定義する必要がありそうです
Notes/Dominoはデータベースのパスとタイトルを決めればOKで、基本の NoteID と UniversalID のふたつのテーブルは一律に自動作成されました
こういうところがMariaDBとNotes/Dominoの違いなんだねと感じます
先程作成したデータベース名のところでマウス右ボタンクリックして、[新規作成] - [テーブル] を選びます
インターネットで見つけた『掲示板サーブレットを作成する』記事のデータベースならこんな感じになるのかなとサンプルを作ってみました
Windowsコマンドプロンプトを開いて新しくデータベースを作成してみます
例えば次のように操作できます
mariadb -u ユーザー名 -p
(パスワード入力)
create database `データベース名`;
show databases;
use `データベース名`;
create table `テーブル名` (`カラム名` 型 オプション,`カラム名` 型 オプション,・・・);
show tables;
select count(*) from `テーブル名`;
drop table `テーブル名`;
drop database `データベース名`;
exit;
MariaDB中のデータベース名やテーブル名などの前後は「`(バッククォート:Shift + @)」で囲みます。バッククォートを忘れると次のようなエラーが出ます
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '*' at line *
名前によってはバッククォートを付けなくても大丈夫なこともあります。例えば先頭文字が英字でコマンドとは異なる文字列のばあいです
StarServerに配置するPythonのCGIは、文字コードUTF-8、改行コードLFにしないと動きませんでした。