職業訓練校での半年間

2013/10月中旬から半年間の記録を書き留める予定。
http://android.wktk.so/ があるのを知って開始しました。

2014年03月


タイトル通りアレコレ試してるだけの状態ですが、
K氏にサブドメ切ってもらって開設しました。
http://water-moon.pg-box.jp/

更新は鈍足になると思いますが
それでも良ければ引き続き見て頂けると幸いです(゜_゜;)

aqua-moonにする予定だったのに忘れてた・・・w 

とりあえず生きているようだ...
久しぶりにみたら訪問者増えてるようで。ありがたいっすねー。
移転するし、記事の頻度も落ちるからあまり意識してなかったですがww

現場の面談時にjspとjavascript出来るとはいったが(ネット見ながら的な)
jspタグがほぼ見当たらないぞ、アレアレオカシイナ?
代わりにJavascriptだらけ。 しかも毎行<% %>だらけでソースまじ可読性低い。。
さてソース読んでてわからなかったのがとりあえず2点あった。

[jsp]
head.submit(); は?headどこよ?。
さすがにわからなくて横の人に聞いてしまった。

・・・javascript、formでnameにセットした値を取得できるのねorz
http://javascriptist.net/ref/form.submit.html

WS000010
★aa.php
<html>
<head>
  <title>testA</title>
</head>
<script type="text/javascript">
<!--
  function test(){
//    window.alert("test");
    head.submit();
  }
-->
</script>
<body>
  <form name="head" method="GET" action="bb.php">
    <input type="button" onclick="test()" value="おしてみよう!">
    <input type="hidden" name="userid" value="12345">
  </form>
</body>
</html>


WS000012
★bb.php
<html>
<head>
  <title>bb</title>
  <script type="text/javascript" src="prototype.js"></script>
</head>
<script type="text/javascript">
window.onload = function(){
  var url = String(window.location);
  var query = url.toQueryParams();
  var a = query['userid'];
  window.alert(a);
}
</script>
<body>
  <p>遷移できました</p>
</body>
</html>


 下記サイトを参考にしました。
ページを読み込み時にfunctionを実行(よく使ってたけど忘れてた)
Getの値を取得(JQueryのが短かったorz)
ウィンドウバックさせないのも使ってるサイトあるねー

あと stmt.executeQuery
http://www.wakhok.ac.jp/~tomoharu/web2004/text/index_c7.html

そして最後にpreparedStatementに値つめるやーつ。
「~ LPAD(?,?) ~」
http://www.javadrive.jp/servlet/database/index10.html

デバックモードしてもSQL文が?が埋まっててなんぞ?!ってなりました…。
今思えばPHPのBindValueもJavaを踏襲してセキュリティ対策の形に変わったのかな?
http://phpspot.net/php/man/php/pdostatement.bindvalue.html


web.xmlをいじるのが面倒なので(1ソース毎にいちいちマッピングしないといけない)
SAStrutsのプロジェクトでお試し。
#JSPのタグ使えるんでいいや、と。

現場で「とりあえずこの画面のソース探してみ?」みたいな状態になって
探せたのは探せたけどどこでDBのテーブルデータ引っ張ってきたんだ・・・?
となりました。

犯人は<jsp:useBean>でした。
詳しくは「http://www.techscore.com/tech/Java/JavaEE/JSP/3-2/」 ですが

★IndexAction.java
※test.actionパッケージ配下にあるものとする。
public class IndexAction {
    @Execute(validator = false)
	public String echo() {
        return "call.jsp";
	}

    @Execute(validator = false)
	public String getString() {
        return "aaa";
	}
}

★call.jsp
-------------------------------------------------------------------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Dolteng Auto Generated</title>
</head>
<body>
<jsp:useBean id="tiger" class="test.action.IndexAction" scope="application" />
<% tiger.getString(); %>
<h1>Hello World!</h1>
</body>
</html>
-------------------------------------------------------------------------

【出力結果】
WS000009


赤字の記述をすることによって
tigerという変数がなんとIndexAction.javaのメソッドを使えるようになります。

今回は手を抜いて"aaa"という文字列を返すだけですが、
DBにSelect文を発行した結果をつめた配列をjsp内で扱えます。

なんかわざわざ面倒なことしてるけど実例ありますな。
http://www5.big.or.jp/~tera/Labo/JSP/Basic3.html

私のパターンはその配列変数を<input type="hidden">で渡してて
ζ*'ヮ')ζ<そこまで見るかよばーかばーか
と分かった時にイラッ★と思いましたわ・・・勉強にはなったけど・・・

ζ*'ヮ')ζ<かかないって言って何日さー

ちょっとK氏がJSONの記事書いてたのでやってしまったw

json.json
{
    "kanto" : [
        {
            "name": "sps渋谷店",
            "address": "東京都渋谷区"
        },
        {
            "name": "sps目黒店",
            "address": "東京都目黒区"
        },
        {
            "name": "sps練馬店",
            "address": "東京都練馬区"
        },
        {
            "name": "sps江東店",
            "address": "東京都江東区"
        },
        {
            "name": "sps千代田店",
            "address": "東京都千代田区"
        }
    ],

    "kansai" : [
        {
            "name": "sps綾部店",
            "address": "京都府綾部市"
        },
        {
            "name": "sps京丹後店",
            "address": "京都府京丹後市"
        },
        {
            "name": "sps城陽店",
            "address": "京都府城陽市"
        },
        {
            "name": "sps福知山店",
            "address": "京都府福知山市"
        },
        {
            "name": "sps舞鶴店",
            "address": "京都府舞鶴市"
        }
    ]
}

a.php
<?php
    $json = file_get_contents('jsondata.json');
    $shops = json_decode($json,true);
    echo $shops['kanto'][0]['name'];
?>


【結果】
sps渋谷店




ちなみにK氏のサイトを実行すると下記のようになります。
PHPやってる人は「連想配列じゃね?!」ってなると思います。

なーのーで
a.phpのような形で取得できたわけです。
18


 

更新とめたままにしてましたが、3/5(水)で学校を退校しました。
なので、この先は気が向いたら来週java(Servlet)のこと書くくらいになります。
ご愛読、ありがとうございました<(_ _)>
#ブログのタイトルと趣旨が変わってくるので移転します。
#移転先は決まったらココで連絡します。

最終日ですが・・・
学校のあとK氏と飲み→定期返金&購入→帰宅(22時頃)
→K氏と時折チャットで進捗連絡しつつ課題作成(26時)

だったのでまー初日グロッキーでしたよねとw
ま、環境構築と顔合わせ位だったから何とかなりましたが(゜_゜>)

で、Servletのソース見て思ったけど、
Servletすっ飛ばしてSAStrutsを構築してたもんだから
DB接続とかジェネリックスメソッドとかVector型とか、、、
覚えなきゃいえない内容がちょいちょいあるなぁーっと(-_-;)

oracle接続(MySQLもPosgreも書き方は少し違うけど手順は同じ)
#後者の方がソースの説明はやさしい
#Oracleのサービスとめてた場合は、開始させとく
#+「メニュー」->「Oracle Database 11g Express Edition」->「データベースの起動」を実行。
http://www.whitemark.co.jp/tec/java/javaExamples8.html
http://www.techscore.com/tech/Java/JavaEE/JDBC/oracle-1/

※ojdbc6(Oracleドライバ)のデフォ設置場所
 (eclipse側は[外部jarの追加]で取り込んでください)
C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib

※ユーザ作成+権限付与(試しにtuser/tpassで作成)
http://oracle.na7.info/4_2_role.html

※SIDの調べかた(OracleXEだったのでxeだった)
http://www.sql-dbtips.com/sqlplus/oracle_sid/

私はOracleXEだったので、下記の形で接続できました!
----------------------------------------------------
conn = DriverManager.getConnection
("jdbc:oracle:thin:@localhost:1521:xe","tuser","tpass");
----------------------------------------------------

ジェネリックス
#「T,?,V,E」のパラメータが少なくともある
「E」:(Element:要素)
#「T」:(Type:型)
#「?」:ワイルドカード
#「V」:Map<k、v>のV・・・Value要素
http://okwave.jp/qa/q6043858.html
http://www.javainthebox.net/laboratory/J2SE1.5/LangSpec/Generics/Generics.html
http://www.techscore.com/tech/Java/JavaSE/JavaLanguage/1-2/
http://oshiete.goo.ne.jp/qa/6194409.html

Vector型
http://msugai.fc2web.com/java/collection/Vector.html


このページのトップヘ