人間はオモシロイ

作者はyu-です(・▽・)@今までありがとうございました、完結です

ぷろぐらむ@Java

[ リスト | 詳細 ]

資格勉強が終わったらこっちに切り替えようとかと思う次第…まだ手付かずです、はい(・▽・)
記事検索
検索

全3ページ

[1] [2] [3]

[ 次のページ ]

卒研-Servletに管理者モード作成(・▽・)

咽喉もと過ぎればなんとやら(・▽・)

いや、卒研のシステムは最低限は完成させたけど、今後課題として精度向上とかもある。

ついでに、完成は最低限であり、実は論文に記載しながらできてない機能があった。

それが今回の要のつもりだったのだが、なんだか師事する先生には受けが悪い。

ぶっちゃけ、いらないんぢゃない?それみたいなニュアンスは何度か言われたけど、

卒論も終わったことだし(再提出を控える輩が何を…)


で、なんとなく作ってみた。

うん、やっぱり必要なかったかもねorz (ほんと何を今更…


まぁ、そのついでにデバッグサポートのつもりで管理者モードを作成。

Tomcatサーバへのアクセスするアドレスは

1) http://XXX.XXX.XXX.XXX:8080/hogehoge/main

みたいなアドレスでアクセスできるのだが、それを下記のようにしてアクセスできるようにした。

2) http://XXX.XXX.XXX.XXX:8080/hogehoge/main?admin


Servletのメソッドでは req.getParameter("admin"); って具合に受け取るんだけど、

CGIではadminパラメータがない場合は普通の空の文字列って感じに扱ってた。

ところがServletではパラメータにない文字列をgetParameterしてアクセスするとヌルポを起こす。(NullPointerExceptionね)

でもって、私の中では main?admin=on って感じにわざわざ書くのも面倒だったので、

boolean isAdmin = false;
if ( req.getParameter("admin") != null ) isAdmin = true;

って感じにした。

こーするとわざわざadminパラメータに値を入れなくても

 ?admin って示すだけで内部では管理者モードになってしまう (*´д`*)ハァハァ

もちろん 1) のアクセスの時も admin があるかどうかを見ているだけだから

問題なく通常モードとして動かすことができる。



とりあえずこの管理者モードでやったことは、さっきも言ったけどデバッグサポート。

メニューにセレクトフォームを表示して、各段階ごとの好きな時に途中経過が表示できる。

(ちなみに管理者モードでなければこのセレクトフォームの代わりにhiddenで固定パラメータを渡す)

もし結果でエラーが出たら、結果が出る一歩前の段階で表示してみる、んでやっぱエラーが出たら〜で繰り返し、

どの段階まではエラーがなく進んでいるのかが、パッと見でわかりやすくなった。




ところで、メイン開発が終わって、こーゆーの作るってどうよ?

よっぽど余裕がなかったんだねぇ…

閉じる コメント(0)

閉じる トラックバック(0)

卒研-システム見た目完成(・▽・)

なんだかんだで卒研もちょこちょこやってました(・▽・)

もーどーでもいーやヽ(*´▽`*)ノ

って手を抜き出すと進むから不思議です。


なんで文字列と文字列で比較できないのでしょう?(文字コード依存で失敗してる可能性あり

わざわざ文字をコードに直して比較しないといけないのでしょう?(文字コード経由で全角が文字化けしてしまうため

Javaでそういうのサポートしてくれないのでしょうか?(どこで勝手にUnicodeに変換してるかわからん

してるけど私の組み方が間違ってるのでしょうか?


ぶつくさ考えながらも、とりあえず動けばいいやヽ(*´▽`*)ノ

って感じに作ってるけど、最近気付いたこと。

この1年で、卒研のテーマに近いものがGoogleに実装されているってどうなんだろ( ゜Д゜)

シメは私に先見の明がありました、とでもすればいいのかなぁ?と思いつつ、

わざわざJavaだServletだ動かさなくても、Google検索かまして結果を取得していじるコードを書いたら済むように感じましたorz


そんな卒研も見た目は完成しました。

あとは中にアルゴリズムを実装すれば最低限の機能は備わるはずです。

閉じる コメント(0)

閉じる トラックバック(0)

卒研-開発ちう(・▽・)

まぁ、卒研です(・▽・)

卒研の内容なんで多少は中身について触れても問題ないから気楽に愚痴が書けていいですわww


昨日一日でリセットされたサーバーだが、今日、再び以前と同じエラーが起きてしまった。

しかしさっきやった作業を逆にこなし戻していくと原因が判明した。

なんとTomcatがHTML出力できないファイルが エ ラ ー ですと言っているだけだった

理由がわかればなんのことはない。

WEB-INF->classesの中のコンパイル用に置いておいたgoogleapi.jarを消滅させれば無事実行可能になった。


(#゚Д゚)ゴルァ!!


おまえのせいでサーバーリセットしたじゃないか!!

おかげでHDがキレイになったぞ、バカヤロウ!



隣で作業していた子も卒研にGoogleapiを使い苦戦していたので、

やっぱまたGoogleが悪さしていたのね…

とありがたいコメントを頂きました。

ちなみに彼女が言う悪さとは、googleapiで取得した結果を

obj.param とかいう形でアクセスできないというものであり、

実際には、obj["param"] とハッシュ配列でアクセスすべき点を間違えていたことでした。

個人的にはそっちの方をツッコミたいのですが…(いっしょに調べて私が訂正したしね



まぁ、なんだかんだで卒研の成果物がServletで出来てきました。

JSPと比べるとこっちの方が純粋なJavaの記述形式に近いので、ようやく私の領域に引っ張りこんだ!って感じです。

ここまで来れば実際にLinuxでサンプルを作らなくても、Windowsか私の頭の中で試作ができます。


もー少し調べる必要があるけど、文字コードの関係が一番苦戦するのではないでしょうか?

SQLとJavaを行き来する時にコーディングしなければならないと思いますが、そこだけは実機テストが必要です。


はふぅ…締め切りまでに間に合うのかしら?

あと22日?(・▽・)

閉じる コメント(0)

閉じる トラックバック(0)

JDBC DriverManagerとDataSource(・▽・)

とりあえず今日はJSP上にてMySQLへアクセスするサンプルの動作を成功させた(・▽・)

はふー、これだけで丸半日使っちゃったよ…orz


色々と調べてみるとJavaでDBに接続する方法が2種類あるみたい。

それがDriverManager方式とDataSource方式だ。

出力結果は当然同じものになるのだが、JNDIサービスが動いていてDataSourceが扱える環境では、

DataSourceの方が安全性が高いため推奨されているらしい。

当然サンプルの作成はDataSourceから行ったのだが、どーもうまくいかない。

もしかしたらJNDIサービスとやらがサービスしてくんないからかもしれないけど、確認方法もわからなかった。

なので自分はDriverManager方式で成功させたのだが、

両者の違いはDriverManager方式がソース上にユーザーやらパスワードやらアクセスURLなど全てを記述してしまうというもの。

対しDataSource方式は別のサーバー設定ファイルに記述し、コンテンツの実行時にそこへアクセスしインポートするようなものみたいだ。

なるほど、重要データを分散させるという意味でもDataSourceの方が推奨される理由がよくわかった。

しかし、自分は「javax.servlet.ServletException」を起こし、

「Name jdbc is not bound in this Context」とかいう理由で失敗した。

これが直るならこっちの方式のほうがいいのだが、いかんせん、色々と時間もなさすぎる。

せめてプログラム全体の枠組みでも出来上がっていればもう少し環境構築に時間をかけたのだが…。

まぁ、今回は動作最優先ということでDriverManager方式で作成していくことにした。





どーでもいいけどDriverManagerとDataSourceって、略すとDMとDSだよね…






ドMとドSに見えたのはナイショ…(ぉ

閉じる コメント(0)

閉じる トラックバック(0)

JavaでGoogle Web APIを(・▽・)

やっぱ ぐーぐる でしょ♪(・▽・)(日本酪農乳業協会のCM風に!

いや、別にGoogleでなくてもいいんだけど・・・いや、よくないか。


卒研の関係で研究室に置いてあった『Google Hacks―プロが使うテクニック&ツール100選』という本に目を通した。
(Amazon@http://www.amazon.co.jp/exec/obidos/ASIN/4873111366

技術本として定評のあるオライリー社のものにしては技術者でない人にも読みやすい、

かといって薄い内容ではなく、今から使えるGoogle検索についての使役指南が細かく書かれていた。

今回、特に知りたかった部分は Google Web API についてである。

Googleの検索機能や結果を自分で作るプログラムに取り込める!これは非常に魅力的な言葉だろう。

それを実現してくれるのが Google Web API なのだ。

私は得意のプログラム言語上Javaで行うが、Perl、PHP、Python、etc...と

Web用のライトウェイ言語でもほとんど扱えるというのがすばらしい。


まぁ、卒研に特に必要な部分はあまりに薄かったのだが、

とりあえずJavaでアクセスするサンプルソースが載っていた。

現在手元に本がないが、ネット上の資料を元にサンプルソースを構成してみたいと思う。


=======================================
GoogleTest.java
=======================================
import com.google.soap.search.*;

public class GoogleTest {
 public static void main(String args[]){
  try {
   GoogleSearch gs = new GoogleSearch();
   
   gs.setQueryString(args[0]);//検索ワード
   gs.setLanguageRestricts("lang_ja");//言語設定
   gs.setKey("qaswderftgyhujikol");//ライセンスキー
   gs.setSafeSearch(true);//有害サイトのブロック
   
   GoogleSearchResult gsr = gs.doSearch();//検索実行
   GoogleSearchResultElement[] elements = gsr.getResultElements();//検索結果の取り出し
   for (int i = 0 ; i < elements.length-1 ; i++ ){//検索結果件数分の繰り返し
    System.out.println( elements[i].getTitle() );//サイト名
    System.out.println( elements[i].getSnippet() );//サイト説明
    System.out.println( elements[i].getURL() );//サイトURL
   }
  } catch( Exception x /* GoogleSeachFault gsf */ ){//検索時のエラーを検出
  }
 }
}
=======================================
・コンパイルコマンド
「javac -classpath googleapi.jar GoogleTest.java」
・実行コマンド
「java -classpath googleapi.jar; GoogleTest 検索ワード」
=======================================

うみゅ、コンパイルできないからタイプミスがあるかもしれーん。
(※2006,10/31 コンパイル可能に修正)

gs.setKey() の部分のライセンスキーはGoogleから発行されたものをいれなければダメっすね。

今回入れたのは適当に「あqsでrftgyふじこl」と打ち込んだものです(ぉぃ


その他の設定項目

gs.setMaxResults(100);//最大出力件数
gs.setStartResult(1);//出力開始インデックス

参考サイト@http://tokyo.atso-net.jp/pukiwikip/?GoogleAPI

閉じる コメント(0)

閉じる トラックバック(0)

全3ページ

[1] [2] [3]

[ 次のページ ]


.
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
  今日 全体
訪問者 10 15638
ブログリンク 0 2
コメント 0 183
トラックバック 0 30

wei*s*well*_ca*l
人気度

ヘルプ

Yahoo Image

検索 検索

開設日: 2005/3/10(木)


プライバシーポリシー -  利用規約 -  ガイドライン -  順守事項 -  ヘルプ・お問い合わせ

Copyright (C) 2012 Yahoo Japan Corporation. All Rights Reserved.