タグ: Java

  • [Java]パッケージjakarta.servletは存在しません

     javacでコンパイルするとき『-classpath “%CATALINA_HOME%\lib\servlet-api.jar”』を追加してみましょう。

     なお『import javax.servlet』は『import jakarta.servlet』に変更になっています。

  • [言語比較]切り上げ・切り捨て・四捨五入

    [言語比較]切り上げ・切り捨て・四捨五入

    Excel

     切り上げ

    =ROUNDUP(数値,桁数)
     「数値」:切り上げしたい数値または、セルの位置を指定します。
     「桁数」:切り上げしたい桁数を指定します。

    切り捨て

    =ROUNDDOWN(数値,桁数)
    =TRUNK(数値,桁数)
     「数値」:切り捨てしたい数値またはセルの位置を指定します。
     「桁数」:切り捨てしたい桁数を指定します。※桁数のあつかいに関しては、ROUND 関数と同様です。
    
    =INT(数値)
    =TRUNK(数値)
     小数点以下の数値を切り捨てて整数にするときに使う関数です。

    四捨五入

    =ROUND(数値,桁数)
     「数値」:四捨五入したい数値または、セルの位置を指定します。
     「桁数」:四捨五入したい桁数を整数で指定します。指定した桁数のひとつ下の桁が四捨五入されます。

    Java

    整数除算

    整数 = 整数 / 整数;
     整数(intやlong)同士の割り算(/)の結果は整数になります

    Lotus Script

    切り捨て

    整数 = Fix(数値)
     絶対値が小さい方向に丸めます
     (例)98 = Fix(98.7)
     (例)-98 = Fix(-98.7)
    整数 = Int(数値)
     値が小さいほうに丸めます
     (例)98 = Fix(98.7)
     (例)-99 = Fix(-98.7)

    整数除算

    数値 = 整数 ¥ 整数
     ¥(エンマーク)での割り算は、割り算をする前に値を整数にします
     3÷3.3は、3÷3としてから割り算されます

    Lotus 式言語

    切り捨て

    整数 = @Integer(数値)
  • [言語比較]変数の初期値(既定値)

    [言語比較]変数の初期値(既定値)

    Java, C#, Python

    初期化されていない変数を使うとエラーになります

    Lotus Script

    • 数値型: 0
    • 文字値型: ブランク
    • Boolean型: False
    • オブジェクト型: Nothing
    • Variant型: Empty
    • List型: 初期化されません。アクセスする前に Redim で初期化します

    注意
    Variant型変数を Empty に戻すには、未使用の Variant型変数を利用します
    例: Variant型変数 = 宣言したまま使用していない Variant型変数

    VbScript

    • Variant型: Empty

    注意
    Variant型変数を Empty に戻すには、Empty を使用します
    例: Variant型変数 = Empty

    Lotus 式言語

    • Variant型: Empty
  • [言語比較]””{}|| : 文字列定数をあらわす記号

    [言語比較]””{}|| : 文字列定数をあらわす記号

     文字列を囲う記号を整理してみましょう。

    Java

    • ”文字列値”

    C#

    • @”文字列値” : ¥をそのまま円マークとして扱う
    • ”文字列値”

    Python

    • r”文字列値” : ¥をそのまま円マークとして扱う
    • ”文字列値”

    PHP

    • ‘文字列値’
    • ”文字列値” : $から始まる変数を設定できます

    Lotus Script 言語

    • ”文字列値”
    • {文字列値}
    • |文字列値|

    VbScript 言語

    • ”文字列値”

    Lotus 式言語

    • ”文字列値”
    • {文字列値}

    {}(ちゅうかっこ)は””(ダブルコーテーション)に自動変換されます

  • [言語比較]& : 文字列連結演算子

    [言語比較]& : 文字列連結演算子

    Java

    • 文字値 = 文字値 + 文字値;

    C#

    • 文字値 = 文字値 + 文字値;
    • 文字値 += 文字値;
    • 文字値 = $”文字値{変数名}文字値”;

    Python

    • 文字値 = 文字値 + 文字値
    • 文字値 += 文字値

    Lotus Script 言語

    • 文字値 = 値 & 値
    • 文字値 = 文字値 + 文字値

    &(アンド)は異なる意味でも使われますので、半角空白を使わずに詰めて書くとコンパライラに誤解されることがあります

    注意
    & は両辺が null のときに null を返します
    + は片方が null のときに null を返します
    + は数値とあわせて使うと、数値に変換できる文字値を数値へ変換して加算することがあります

    演算子ではないところで使用される&記号
    変数名や値の末尾に&を付けると、Long型ですよという意味になります(接尾辞)
    &B、&O、&H は、それぞれ2進数、8進数、16進数ですよという意味になります(接頭辞)
    演算子として&記号を書くときは、コンピューターが困惑しないように、&の前後に空白をはさむとよいでしょう

    VbScript 言語

    • 文字値 = 値 & 値

    注意
    & は両辺が null のときに null を返します

    演算子ではないところで使用される&記号
    &O、&H は、それぞれ8進数、16進数ですよという意味になります
    演算子として&記号を書くときは、コンピューターが困惑しないように、&の後に空白をはさむとよいでしょう

    Lotus 式言語

    • 文字値 = 文字値 + 文字値
  • [Java]初めてApache Tomcatをセットアップ

    [Java]初めてApache Tomcatをセットアップ

     Javaでウェブサイトを作りたくて Windows クライアントに Apache Tomcat をセットアップしました。色々なサイトを参考にしましたので、わたしもまとめ情報を公開します。

     でもね、開発するだけなら Tomcat も HTTP Server も不要でした。詳しくはこちら↓で紹介しています
    Spring Initializrで始めるウェブ開発

    セットアップするソフトウエア

     ダウンロードしたファイルは次のものになります。今回はすべてZIPファイルをダウンロードしました。ダウンロード先のリンクを貼っておきます。

    JDK (Java Development Kit)

     まずはJDKからセットアップします。
     ダウンロードしたZIPファイル内の[jdk-23]フォルダを任意のローカルディスクに保存します。わたしはフォルダ名を[jdk]に変更しました。

     次にWindowsのシステム環境変数を設定します。Tomcatでも設定しますので、あとでまとめて設定しても良いです。
     [スタート]から[環境変数]を検索して、[システム環境変数の編集]を開きます。[システムのプロパティ]-[詳細設定]タブが開きますので、右下の[環境変数]ボタンを押します。

     [JAVA_HOME]を追加して値をJDKのフォルダ名にします。例えば D:\webservice\jdk になります。
     また[Path]にJDKのフォルダの中の[bin]を追加します。例えば D:\webservice\jdk\bin になります。

    Apache Tomcat

     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

     最後に 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

    MariaDB

     MySQLを使おうかMariaDBにしようか、色々と悩みました。色々と調べてみるとMySQLとMariaDBには際立った違いはなく、こだわらない人には「どちらでもよい」と感じられる程度の差異があるとの認識に達しました。今回はMariaDBを使うことにします。

     MSIファイルをダブルクリックしてセットアップを始めます。
     パスワードやインストール先パスを入力し、「Use UTF8 as default server’s character set」のチェックを入れます。

     これでMariaDBのセットアップが終わり、サービスとしてMariaDBが動作しています。

     次にWindowsのシステム環境変数を設定します。[Path]にMariaDBのフォルダの中の[bin]を追加します。例えば D:\webservice\MariaDB\bin になります。

    MariaDB Connector/J

     ダウンロードしたjarファイルを次の2つのフォルダに保存します。

    • jdk/lib
    • tomcat/lib

     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 を終わらせます。

    https

     これでローカルPCにサーブレットとJSPの実行環境が整いました。
     本番環境では https が使われますので、http から変更する設定が必要になります。でもドメインが必要になりますので、ローカル環境では難しいとおもいます。別の機会に紹介できればいいなとおもいます。

    アプリを動かす設定

     Tomcat/webapps のフォルダに アプリ名(コンテキストルート)/WEB-INF のサブフォルダを作ります。例えば tomcat\webapps\hello\WEB-INF という風です。

    サーブレットファイルを配置

     サンプルのサーブレットファイル(なんとか.class)は WEB-INF フォルダに classes サブフォルダを作って保存します。

    web.xml を配置

     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サンプルプログラム

  • [Java]Spring Initializrで始めるウェブ開発

     Spring Bootのサンプルプログラムをつくってビルドしてみました
     OSはWindowsを使いました

     内容は Spring クイックスタートガイド に沿っています

    準備

     Javaが使えるようになっていることが必要です。JDKのセットアップの詳細はこちら↓に記載しています
    JDK (Java Development Kit) - [Windows]初めてApache Tomcatをセットアップ

     Maven, Tomcat, Spring Boot はインストール不要です

    Spring Initializrでひな形をつくります


     まずは Spring Initializr のサイト↓を開きます
    Spring Initializr

     次のような感じで設定します。
     Spring Boot のバージョンは、特に制約が無ければ括弧がないものの中で大きな数値を選びます。Packaging はウェブ用の『War』を選びます。Java のバージョンはお使いの環境にあわせます
     右側のDependencies で『Spring Web』を追加します

     設定が終わったら『GENERATE』ボタンを押します。ダウンロードが始まります

    ひな形を更新します

     ダウンロードしたひな形を展開します
     これからは、先の『Package name』に設定した値を『パッケージ名』、『Name』に設定した値を『ネーム名』と表記します
     展開したフォルダの中にある src\main\java\パッケージ名\ネーム名Application.java をメモ帳で開きます

    元はこんな感じです↓

    package パッケージ名;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class HelloApplication {
    
    	public static void main(String[] args) {
    		SpringApplication.run(HelloApplication.class, args);
    	}
    
    }

    追記したものはこんな感じになります↓ 太字の行を追加します

    package パッケージ名;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;
    
    @SpringBootApplication
    @RestController
    public class HelloApplication {
    
    	public static void main(String[] args) {
    		SpringApplication.run(HelloApplication.class, args);
    	}
    
    	@GetMapping("/hello")
    	public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
    		return String.format("Hello %s!", name);
    	}
    
    }

     ファイルを保存して閉じます

    ビルドします

    次の手順でビルドと動作確認ができます

    1. Windowsコマンドプロンプトを開きます
    2. ひな形の中にある pom.xml が置かれたフォルダへ移動します
    3. 『mvnw clean package spring-boot:run』コマンドを実行します
    4. 『… : Started HelloApplication in …』と表示されて画面が止まるまで待ちます(コマンドは終了しません)
    5. ブラウザを開きます
    6. http://localhost:8080/hello へアクセスします
    7. ブラウザに『Hello World!』と表示されます

     Windowsコマンドプロンプトを終わるときはキーボードから「Ctrl + C」キーを押します

     Windowsバッチをつくるとこうなります

    cd /d "%~dp0"
    call mvnw clean package spring-boot:run
  • [Java]SPRING BOOT CLIインストール

     EclipseやVisual Studio Codeを使うばあいは不要です
     Spring Initializrを使っても良いかもしれません

     次のページの『手動インストール』部分にある圧縮ファイル(例えば spring-boot-cli-3.3.5-bin.zip)をダウンロードします
    Spring Boot のインストール - Spring

     任意のフォルダに保存します。

     [スタート]から[環境変数]を検索して、[システム環境変数の編集]を開きます。[システムのプロパティ]-[詳細設定]タブが開きますので、右下の[環境変数]ボタンを押します。

    Windows環境変数

     [Path]にSpring Boot CLIフォルダの中の[bin]を追加します。例えば D:\webservice\spring_CLI\bin になります

  • [Java]Tomcat-MariaDBサンプルプログラム

    [Java]Tomcat-MariaDBサンプルプログラム

     Java Servletの開発環境をつくったあと、テストするためにつくったJavaファイルとコンパイルバッチを無料ダウンロードできます

    ダウンロードファイルの中身は次のものです
    • HelloWorld.java
    • コンパイル(管理者として実行).bat
    コンパイルするときのファイルの配置は次のようにしています

    %CATALINA_HOME%\webapps\hello\WEB-INF
     web.xml
     src\HelloWorld.java
     classes\HelloWorld.class (コンパイル結果)

     『コンパイル(管理者として実行).bat』はどこにあっても構いません
     Tomcatのサービス名は『Tomcat10』としています

     『HelloWorld.java』内の{ユーザー名、パスワード}は実行環境にあわせて変更してください

    実行環境を構築する記事はこちらです

    [Windows]初めてApache Tomcatをセットアップ

    『HelloWorld.java』の動作

     ダウンロードできる『HelloWorld.java』はTomcatおよびMariaDBを使ったServletの開発環境が正しく構築できているか確認するためにつくりました

    プログラムがおこなうこと

     HelloWorld.javaは次の順番で動作し、ログをHTMLで表示します

    1. MariaDBに接続します
    2. 8桁の今日の日付でデータベースをつくります
    3. つくったデータベースに6桁の今の時刻でテーブルをつくります
    4. つくったテーブルに1行のデータを追記します
    5. テーブルの中身を取得します
    6. つくったデータベースを削除します
    7. MariaDBから切断します