JSP+Postgresqlでスケジュールシステム(携帯向け)

| コメント(0)

本業で最近はJSP,Java,Struts,flash,Oracle なんかを組み合わせてWEBアプリを作ったりする。それで折角自宅に Tomcat/Apache/Postgresql が立ち上がってたりなんかするんで、趣味の剣道の会のスケジュールシステムを2日徹夜で(徹夜はウソ!だけど2、3日夜間でゴソゴソ作るってのは、まあそんなもんでしょ)作ってみた。Struts 使ったりしてもいいけど、面倒くさいので JSP だけでベタ書きの SQLなんかを埋め込んだりした。ほとんどの場合、パソコンでの使用は想定してなくて会のみんなの携帯からアクセスすることを想定している。スケジュールの閲覧(大会参加、イベント、集合時間、場所、誰がとか…)。それと会の役員からはデータの新規登録、修正、削除ができるようにログイン認証機能も作った。

で、普段本業で作るやつはまあアクセス端末がパソコン(しかもイントラ向けだったりするとIE想定とかになってたりする)だけなんで汎用性はあんまり考えなくても大丈夫なんだけど、相手が携帯端末だと問題点噴出する。そもそもJSPなんかでシステム作るのに無理があるのかな? Javaスクリプトは使わないように、ポップアップも使わないようにしたんだがそれでも問題がたくさんでる。

で、問題点
(1)Auからアクセスしてフォームから入力すると文字化けする。もちろんページの文字コードはShift_JIS。getRequest() で文字コードをJava内部コードのUnicodeに変換するときは "MS932" を使っている。Docomo、DDIPocket(AirH”)、それからパソコン(IE、Opera)では文字化けしないことを確認。これについては未だ解決していない。

(2)なんかわかんないけど、Vodafoneの端末からアクセスするとJSPが処理されないというか、端末側で *.jsp ファイルは処理してないんじゃないかな。「表示できません」ってエラー表示になる。おそらくだがファイル名拡張子が問題なんじゃないかと踏んで、まずJSPファイルの拡張子を *.jsp ではなく *.html に変更するという大技(!)に出た。本来 /nantoka/*.jsp というアクセスがあった場合に Tomcat に処理依頼するところを /nantoka/*.html で 処理するように設定変更(mod_jk.conf)。 その場合、Tomcat では *.html はただの html ファイルとして処理してしまうので *.html ファイルも JSP ファイルであるというように設定変更した(web.xml)。 さてさて、これで Vodafone からアクセスした場合どうなりますか…。現在Vodafoneの携帯持ち主にチェック依頼中である。

(3)Docomoの場合、JSPでセッションを有効にしているのに、セッション情報が保持されない。仕方ないので <input type="hidden"> で値を引き継ぐようにした。

これらは携帯端末の機種依存(というかメーカー依存?)の部分なわけだ。iModeやらEzwebやらVodafoneLiveやらなんか、HTMLとは非互換な部分がたくさんあってブラウザも解釈がエー加減だなというのが感想。これだけ非互換な部分が多いと共通的なアプリ(携帯サイト)作るのは大変そうだね。ほんの趣味で2,3日やっただけでもこんなに出てくるんだから…。

もうひとつ。業務ではOracle使っていることが多いのだが、今回はPostgresqlを使っている。DBの文字コードをUnicodeにすると概ね問題は発生しなかったが、UnicodeだとMS-AccessからODBCアクセスしたり、Linux機自体で SQL した時に文字が読めなくて苦労する。それで一旦はUnocodeにしてたものをEUC_JPに変換した。大体は問題ないんだが、例の全角ハイフン【-】をフォーム入力すると文字化けしてしまう。あと、丸数字やらギリシア数字もダメだった。趣味でやってるやつだから別にご愛嬌でいいんだけど…。本業でPostgresql使う日が来ないとも限らない…。

コメントする

ウェブページ

  • about
Powered by Movable Type 5.2.10

このブログ記事について

このページは、よしが2004年7月 8日 06:29に書いたブログ記事です。

ひとつ前のブログ記事は「CPUファン&ファンサイズ変更」です。

次のブログ記事は「激安DVDを使ってみた」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。