いつか、技術ブログを

新人SE(OJT中)が技術ブログを書きたがっているブログです

初心者がmacのターミナルで行末にスペース追加しようとしたけど難しかった

Markdownでこの記事を書いているのですが、はてなブログでは行末にスペースを2個入れないと改行されません、めんどくさいですよね…。
ということで、macのコマンド?シェル?みたいなやつで行末にスペースを2個入れる方法を探してみました!
(初心者で行き当たりばったりで書いてるので、理解しきれてないところがあります)

  • 結論
  • そもそもコマンドの書き方
  • echo
  • パイプ(|)
  • sed
  • まとめ
  • 感想
続きを読む

サーブレットの定型文メモ

サーブレットって、「コレをするにはコレを書かないといけない」っていう決まったコードが多いので、よく使うものをまとめました。
自分のコピペ用メモなので詳細な説明はしていません。時間があったら別記事で書きたいと思います…!

文字データをクライアントに送る

クライアントのブラウザに Hello, world! と表示させるためには、次のように書きます。

response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("Hello, world!");

リクエストパラメータの取得

HTMLのformタグの中で入力された値をサーブレットで使用するためのコードです。

request.setCharacterEncoding("送信元HTMLの文字コード");
String 変数名 = request.getParameter("リクエストパラメータのname");

セッションスコープの取得・基本操作

セッションスコープ(利用者がブラウザを閉じるかプログラムで削除するまで使える)にオブジェクトを保存したり、保存したものを取り出したりする時の書き方です。

// セッションスコープの取得
HttpSession session = request.getSession();
// セッションスコープに保存
session.setAttribute("属性名", インスタンス);
-----------------------------------------
// セッションスコープからインスタンスを取得
型名 変数名 = (型名)session.getAttribute("属性名");

// セッションスコープからインスタンスを削除
session.removeAttribute("属性名");
// セッションを無効化するまでの最大の秒数を指定
session.setMaxInacticeInterval(秒数);

フォワード

フォワードとは、処理をJSPなどに移すことです。ちなみにオブジェクトをサーブレットJSP間で共有するには、リクエストスコープに保存します。

RequestDispatcher dispatcher = request.getRequestDispatcher("フォワード先");
dispatcher.forward(request, response);

// リクエストスコープに保存
request.setAttribute("属性名", インスタンス);
-----------------------------------------
// リクエストスコープからインスタンスを取得
型名 変数名 = (型名)request.getAttribute("属性名");

データベースへの接続・参照

PreparedStatementは、SQL文をデータベースまで運んでくれるもの、というイメージです。
例外処理やクローズ処理は省略してます。

// データベースへの接続
Connection con = DriverManager.getConnection("URLを入力", "ユーザ名", "パスワード");
// PreparedStatementの取得
PreparedStatement pst = con.prepareStatement("SQL文");
// SQL文を実行し、結果をResultSetに取得
ResultSet rs = pst.executeQuery();
// 結果の表示
while(rs.next()){
  String 変数名 = rs.getString("データベースの列名");
}

データベースへの接続・更新

接続の部分は上記の「参照」と同じです。

// データベースへの接続
Connection con = DriverManager.getConnection("URLを入力", "ユーザ名", "パスワード");
// PreparedStatementの取得
PreparedStatement pst = con.prepareStatement("SQLの例:INSERT INTO ~ VALUES (?, ?)");
// ?の部分に代入
pst.setString(1, "文字列"); //1つ目の?
pst.setInt(2, 数値); //2つ目の?
// SQLを実行し、更新した行数を取得
int num = pst.executeUpdate();

DataSourceの使用

DataSourceの設定は、META-INFフォルダ内のcontext.htmlファイルにしておく必要があります。

InitialContext c = new InitialContext();
DataSource source = (DataSource) c.lookup("java:comp/env/ context.xml内のname ");
Connection con = source.getConnection();

Stringクラスの特徴とメソッドまとめ

Java Silverの勉強をしていて、Stringクラスのメソッドをほとんど分かっていなかったのでまとめました!

  • 特徴:immutable(不変)オブジェクトである
  • Stringクラスのメソッドの引数(位置と範囲の指定)
  • concat
  • contains
  • indexOf
  • substring, subsequence
  • charAt
  • replace
  • startsWith, endsWith
  • 参考書籍、参考ページ
続きを読む

はじめて見た予約語まとめ(Java)

こんにちは、毎日楽しく研修中です!
今はJavaの研修をしているのですが、予約語の一覧を見たところ、見たことがないものがいくつかありました。
なので、Java silverのお勉強もかねて、分からない予約語を調べてみました。

  • 予約語の一覧
  • assert
  • const
  • goto
  • native
  • strictfp
  • synchronized
  • transient
  • volatile
  • おわり
続きを読む

JavaサーブレットでHello Worldする最低限のコード

今、本を読みながらサーブレットの勉強をしているのですが、一番最初のサンプルコードからして、とても長いので、何が何だかわからなくなってきました。
なので、「Hello,world」と表示するのに最低限必要なコードを調べて書いてみました。

続きを読む

平成30年度春期 応用情報技術者試験を受けてきました

今日の応用情報を受けてきたので、その感想です!

午前問題

自己採点した結果、71/80でした!!
後半のマネジメント系はわからなくてニュアンスで答えたのが多かったのですが、奇跡的にたくさん正解してました。
解答はこちらです↓ https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2018h30_1/2018h30h_ap_am_ans.pdf
問題は午後ですね…

午後問題

午後の選択は、
・情報セキュリティ
・プログラミング
・システムアーキテクチャ
・データベース
・情報システム開発
にしました。
私の答えは↓です。
注:正答ではありません!
私の自己採点用メモです。

TACさんとかの解答速報は火曜日に出るみたいですね。

良かった点:簡単な問題を選択できた

午後はネットワークを解く予定だったのですが、難しそうだったので避けました。
代わりにシステムアーキテクチャサービスマネジメントで迷って、システムアーキテクチャの方が空欄を埋めやすそうだったので選択したら簡単でした。
試験対策で午後問題をたくさん解くことで、簡単な問題と難しい問題を見極める能力を身につけるっていうのが大事なんだな、と思いました。

反省点:情報セキュリティの勉強が不十分だった

情報セキュリティの問題が壊滅的でした…。
必須なのに、正直あんまり勉強してませんでした。
情報セキュリティは知識問題が多い気がするので、こういうの↓
情報セキュリティ10大脅威 2018:IPA 独立行政法人 情報処理推進機構
とか読んで勉強しておくべきでした。

おわり

応用情報の合否はわからないですが、受かってたら、次はJavaのbronze(またはsilver)か、Oracle masterのbronzeのSQLを受けたいです。

サーブレットを作るときの手順メモ(NetBeans、GlassFish)

いま、この本↓


を読んでいて、プロジェクトやサーブレットクラスの作成を何度もするのですが、その度にやり方を読み返すのが大変なので、簡単にまとめました。

続きを読む