アットウィキロゴ
note4recurrent @ ウィキ
掲示板 掲示板 ページ検索 ページ検索 メニュー メニュー

note4recurrent @ ウィキ

JAVA 応用

最終更新:

匿名ユーザー

- view
だれでも歓迎! 編集

2022/08/24

  • 動的web
    • html:httpサーバー(Apacheなど)がファイル(htmlやimg)を送り返すだけ。今どきのページではJavascriptで埋め込んだコンテンツ(動画など)を同時に送り返すものも多いが。
    • JAVAの動的web:httpサーバーからアプリケーション・サーバー上で実行されているプログラム(JAVAなど)を呼び出して実行された結果をhtmlで受け取とる。
      • JAVAの場合、サーブレットとJSPで実装される。
      • サーブレットはクラスファイル:JAVAのクラスの一種。htmlを出力するメソッドを持っているイメージ。
      • JSPファイルで中身はhtmlに近い。htmlにjavascriptを埋め込んだようなイメージ。

サーブレット

  • javaプログラムとhtmlの部分以外は、決り文句なのでコピペでOK。
  • doGet(),doPost() で受け取る
    • doGet はブラウザのアドレスバーから呼び出されたような場合やgetメソッドで呼び出された時に実行されるメソッド。
    • doPost()は他のサーブレットやJSP、htmlのリンクから呼び出された時に実行される。
  • htmlを書き出すときは「PrintWriter out = response.getWriter()」 で宣言したインスタンス(この場合はout)のprintlnメソッドにhtml文字列を引数として渡す。このパターンで覚えておけばいい(前に書いたものからコピペすればいい)。
  • サーブレットの特徴
    • サーブレットはメソッドだが、「サーバー上で実行」されたときにインスタンス化されているので、どこかでnewすることはない。サーバー上に常駐し、リクエストを待っている状態と考えればよい。
    • サーブレットはクラスなので、htmlの書き出し部分でもjavaで作った変数をそのまま使える。
    • サーブレットはJAVAのクラスなので、src配下に置く。
    • URLパターン:サーブレットを呼び出すためのURLは、基本的にはサーバー/プロジェクト名/サーブレット名と考えれば良い。サーブレット名はサーブレット内の@WebServlet("/ExServlet") に書かれる。

2022/08/29

  • 前先生

JSP

  • JavaServletPage
  • Eclipsの管理上はhtmlと同じフォルダに置く。(授業ではWebContent)サーブレットと異なることに注意。
  • htmlにJAVAのコードを埋め込むような感じなので、凝ったレイアウトのhtmlファイルを作りやすい。作り込んだhtmlをもらってJAVAを埋め込むといった使い方が主流。
  • JAVAのifやloopでhtmlの出力を動的に変えることが可能。
  • サーブレットと同様、htmlとJSPの決り文句はコピペでOK。
  • コメントの書き方が異なるので注意。間違えると、画面に表示されたりサーバーエラーになる。
    • if分やfor分のブロックを閉じる閉じのカッコ”<%}%>”を忘れやすいので注意。インデントを勝手にやってくれないので見ずらい。
  • 練習問題
  • 通常のJAVAクラスを作って、JSPから呼び出す練習をした。
    • import する必要がある。それ以外は普通のクラスの呼び出しと一緒。

Form

  • html 部分は通常のhtmlファイルと同様。
  • submit を post でするとURLに入力した値は表示されない。getだと表示される。
  • ラジオボタンとチェックボックスの取得方法は次回。

2022/08/31

  • フォーム
  • StringBuilder sb = new StringBuilder();
    • sb.append(value);
    • ストリング変数に+で追加するよりメモリ効率が良く速い。Stirngはオブジェクトで+すると新しくオブジェクトを作って値を入れる。
  • forward  は同じプログラム内のサーブレット、JSPしか呼べない
  • Redirect は制限がない。ネットでつながっているところならどこでも呼べる。
  • 下の行はコメントアウトすること
    //response.getWriter().append("Served at: ").append(request.getContextPath());
    
  • knowledge.length : 配列の個数を調べるときは()がいらない。普通はhensu.length()

2022/09/07

10章

  • 練習課題:7章の例題をコピペすればOK。来週の修了テストもほとんど同じなので、回答をもらって名前とLogicを触ればいい(はず)。
  • model:
    • DataType: データをやり取りするためのjavabeans(クラス):input,input2,input3とそれぞれのgetter,setterを持つだけ。
    • Logic: 入力された文字列をつないでDataTypeのinput3にsetするだけのクラス(Control.javaの中で呼び出される:引数はDataType)
  • servlet
    • Control.servlet :postを受けてDataTypeをnewし、Logicで文字列をつないでリクエストスコープにDataTypeを保存して、 result.jspをforward
  • WebContent
    • index.jsp:入力フォーム:postでControlに文字列を2つ投げるだけ
    • Web-INF(フォルダ)jsp(フォルダ)
      • output.jsp: Control.servlet からforward で呼び出される。リクエストスコープに入っている DataTypeを受け取って表示するだけ。

2022/09/08

import java.sql.*;

mySQLの場合

	public static void m01() throws Exception {
		System.out.println( "===== m01() Mysql Sys に接続" );
		Class.forName("com.mysql.cj.jdbc.Driver");
		String dburl = "jdbc:mysql://localhost:3306/sys?characterEncoding=UTF-8&serverTimezone=Asia/Tokyo";
		String sql = "SELECT * FROM version"; ----テーブル名
		Connection conn = DriverManager.getConnection(dburl, "root", "root");---MySQLのログイン情報
		Statement statement = conn.createStatement();
	//	statement.executeUpdate(sql);       ---select 以外
		ResultSet rs = statement.executeQuery(sql);---select の場合
		//結果の表示
		while( rs.next() ) {
			String sysVer = rs.getString("sys_version");
			String mysqlVer = rs.getString("mysql_version");
			System.out.println( sysVer + ", " + mysqlVer );
		}
//開いた順番と逆に閉じる事
		rs.close();
		statement.close();
		conn.close();
	}

  • MySQL につなぐための準備 connector/j をダウンロード
    • https://dev.mysql.com/downloads/connector/j/8.0.html
    • https://dev.mysql.com/downloads/file/?id=513221
    • "C:\pleiades\tomcat\9\lib\mysql-connector-java-8.0.30.jar"
    • ビルドパスの構成が必要になるので注意。(外部JARを追加する)
      • ビルドパス>ビルドパスの構成(ダイヤログ)>ライブラリータブ選択>モジュールパスを選択>外部JARの追加ボタン>ファイルダイヤログでダウンロードしたJARを選択>適用して閉じる

動的webプロジェクト作成手順:スッキリわかるサーブレット&JSP入門第2版に合わせるための設定

  • java11,tomcat9 を使うこと
  1. ファイルメニュー「新規」:動的webプロジェクト
  2. プロジェクト名入力
  3. ターゲット・ランタイム確認:
  4. 構成ボタンを押す
    • javaのバージョンが一致しているか確認(今は11)。必要があれば修正:次へボタン
  5. 表示されているフォルダを選んで「除去」ボタンを押し消す
  6. 「フォルダーの追加」ボタンを押し、 「src」 を作成:「次へ」ボタン
  7. コンテンツ・ディレクトリーを「WebContent」に変更し完了
  8. (出来上がったプロジェクトをパッケージ・エクスプローラーで開く)
  9. srcフォルダを右クリックし「新規」フォルダー:model
  10. srcフォルダを右クリックし「新規」フォルダー:servlet
  11. WebContentの中のWEB-INFフォルダを右クリックし「新規」フォルダー:jsp

運用

  • javaのクラスファイルはmodelフォルダに入れる
  • servlet はservlet フォルダに入れる
  • jspファイルはWebContent/ENF-WEB/jsp に入れる。ここに置いたjspファイルはservletから(redirect,forward)で呼ばないと開かない。
  • 外部からアクセスできるjspは WebContent 直下に入れる

スコープ:共有みたいなところ

  • スコープにはインスタンス(クラスからnewしたもの)しか置けない。
  • intやdoubleは置けないが String はおける(Stringはそれ自体がオブジェクトだから)。

添付ファイル:macのファイルなのでwindowsで関係ないファイルが見えることがあるかもしれません。削除しても放置しても構いません。

  • Chap99.zip 基本
  • Chap99 -remake.zip フッターを動的インクルードで入れたもの
  • JAVApdf Chap99の説明
  • java2.pdf  入力チェックの説明

2022/09/14

  • 正規表現 数値でマイナスと小数点を受け付ける:"^[+-]?([1-9]\\d*|0)(\\.\\d+)?$"

タグ:

+ タグ編集
  • タグ:
最近更新されたスレッド
ウィキ募集バナー