- PR -

サーブレットで数値を受取る場合は?

投稿者投稿内容
nabeママ
常連さん
会議室デビュー日: 2003/04/11
投稿数: 39
投稿日時: 2003-04-16 13:31
ここのところ毎日お世話になってます。m(__)m

フォーム等で入力した数値をサーブレットで受取る場合、どう書けばいいのですか?
文字型だと
String GetNo=request.getParameter("No");
でいいですが、
int GetNo=request.getParameter("No");
では、エラーになります。

知識がなくてすみません。よろしくお願いします。

[ メッセージ編集済み 編集者: nabeママ 編集日時 2003-04-16 16:39 ]
へげもん
ベテラン
会議室デビュー日: 2002/04/14
投稿数: 87
お住まい・勤務地: 埼玉県
投稿日時: 2003-04-16 13:43
request.getParameter()の戻り値は文字列になってます。
文字列strから整数値GetNoに変換するには、次のようにします。
GetNo=Integer.parseInt(str);
tabby
ベテラン
会議室デビュー日: 2002/06/26
投稿数: 55
お住まい・勤務地: 埼玉県・東京都
投稿日時: 2003-04-16 13:48
public java.lang.String getParameter(java.lang.String name)
なので、Stringしか返りません。Stringで取得してintに変換するしかないです。

手抜きで書けばこれでintに出来ます。
Integer.valueOf(request.getParameter("No")).intValue();

パラメータがないときのNullPointerExceptionと
パラメータが数字でないときのNumberFormatExceptionの
2つの例外が想定されますので、それなりの処理が必要になります。

多分、こんな感じで。

int no = 0;
String value = request.getParameter("No");
if (value != null) {
try {
no = Integer.valueOf(value).intValue();
} catch (NumberFormatException e) {
// 例外処理
}
} else {
// パラメータがないときの処理
}
tabby
ベテラン
会議室デビュー日: 2002/06/26
投稿数: 55
お住まい・勤務地: 埼玉県・東京都
投稿日時: 2003-04-16 14:01
自己フォロー

Integer.valueOf(value).intValue();
より
Integer.parseInt(value);
の方が処理は早いと思います。

valueOfの中でparseIntを呼んでいるようです。
yuu
大ベテラン
会議室デビュー日: 2002/06/12
投稿数: 152
お住まい・勤務地: 美味しいケーキ店のそば
投稿日時: 2003-04-16 14:15
nabeママさん、
はじめまして

>ここのところ毎日お世話になってます。m(__)m
>知識がなくてすみません。よろしくお願いします。

この掲示板の方たちは優しい方が多いみたいで nabe ママさんの初歩的な質問に答えてくれてますが・・・
nabeママさんは お仕事で Javaをやってるんですよね? だとしたら、まず本屋さんに行って Java, J2EE(Servlet/JSP)関連の本を買ってきて2〜3日で集中して勉強される事を
<b> 強く強く </b> おすすめします


_________________
ユゥミ ♪♪
nabeママ
常連さん
会議室デビュー日: 2003/04/11
投稿数: 39
投稿日時: 2003-04-16 15:31
みなさんレスありがとうございます。

tabbyさんの丁寧なレスどおりに書いて実行しました下記のエラーでした。

type Exception report

message Internal Server Error

description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.

exception

java.lang.NumberFormatException: null

最初に実行されると必ずnullが入ります。
なぜでしょう?よろしくお願いします。

yuuさん、手痛いレスありがとうございます。
本は数冊買って勉強していますが簡単なことしか書いていないんですよね(泣)
毎日本屋さん行って探してますが、どの本も似たりよったりで・・・(地方なもので)
会社にJavaプログラミング経験者がいませんから聞く人もなく、こういうHPに頼るしかないんです。それこそ時間があればじっくり勉強できますが、作成猶予があまりありませんのでつい頼ってしまいます。皆さんに申し訳ないと思ってますが、できればおつきあい願いたいと切に思っています。
raystar
ぬし
会議室デビュー日: 2003/01/16
投稿数: 251
お住まい・勤務地: Tokyo/Japan
投稿日時: 2003-04-16 15:43
どういった設計でしょうか。
いきなり、アクセスしてデータを取り出そうとすると
パラメータが存在しないので
NullPointerExceptionがでます。

ちゃんと、データ渡さないといけません。
nabeママ
常連さん
会議室デビュー日: 2003/04/11
投稿数: 39
投稿日時: 2003-04-16 16:34
raystarさん、ありがとうございます。

どういった設計・・・うまく説明できませんがたとえば、
ログイン画面があって、ログインするとDBを検索してログイン者やパスワードが違っていたら再入力してもらう時、最初のログインするサーブレットと違っていた場合のサーブレットを別にしないで同じサーブレットで実行していると思うのですが、この場合最初に実行したらログイン者やパスワードってnullですよね。

raystarさんの仰るとおりデータを渡すようにやり直します。
長々とありがとうございました。

スキルアップ/キャリアアップ(JOB@IT)