質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

Q&A

解決済

2回答

2153閲覧

JSPのパラメーターを自分で分割する方法は確実で容易なものはどのような方法がありますか?

退会済みユーザー

退会済みユーザー

総合スコア0

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

0グッド

1クリップ

投稿2015/11/22 18:24

JSPに暗号化されて届いたパラメーターを解読し、
こうもくごとに分離させたいのですが、どこかで失敗しているらしく、すべてがnullになります。

※知人からもらったソースで、知人はうごいているということです。
★もしかしたら、データのパターンにより、上手くできたりできなかったりするのでは?と考えています。

原因と、対策を教えていただけないでしょうか?

解読後、下記のようになった場合、
「 &customer_id=1232&customer_name=山田 太郎&birthday=1990-01-01&memo=ここは、'、&、=、"、\、などが入った文字列です。create_datetime=2015-10-10 13:09:58 」

■下記で、分割しているのですが、上手く分割是出来ていないらしく、customer_id=null、customer_name=null、など全てnull。

private java.util.Hashtable g_para = new java.util.Hashtable(); public void go_decord(byte[] angou_data) { String para = ""; byte output[] = null; output = Angou.Kaidoku(angou_data); // 復号したデータ para = new String(output, "UNI_CODE"); if(!para.equals("")){ String[] aaa = para.split("&"); if(aaa != null){ for(int iII = 0; iII < aaa.length; iII++){ String[] bbb = aaa[iII].split("="); if(bbb != null && bbb.length == 2){ g_para.put(bbb[0], bbb[1]); } } } } }

■上記を取り出すときは、下記を使っています。

public String get_data(String para) { String reStr = null; if(h_para.get(para) != null){ reStr = (String)g_para.get(para); } return reStr; }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

izkn

2015/12/07 09:49

こちらの質問が他のユーザから「質問の範囲が広すぎる」という評価を受けています わからない点を明確にし、調査したこと・試したことと共に記入していただくと、回答が得られやすくなります。
guest

回答2

0

ベストアンサー

解決できなく、時間がたったので、クローズ致します。

投稿2015/12/07 09:46

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

書いていただいたプログラムで、全部nullになるというと、まず、どこでうまくいっていないのか特定しないといけません。para変数、aaa変数、bbb変数などをコンソールに出してみると原因がわかりそうな気がします。思いつくのは以下のようなものです。

  • 復号がうまくできていない
  • 復号はできたが文字列に変換する際に「文字化け」を起こしている
  • パース(パラメータの解析)がうまくできていない
  • データ内容がプログラムの想定外

ついでですが、上のプログラムではパラメータの条件と矛盾していませんか?
パラメータの部分に「memo=ここは、'、&、=、"、\、などが入った文字列です。」と書かれています。もしこの日本語の意味どおりパラメータ内に「&」や「=」が入っているならば、上のプログラムではパースできません。例えば=があった場合、=で分割しているbbb配列の大きさは3になって、HashTableに格納するロジック( if(bbb != null && bbb.length == 2))を通りません。

投稿2015/11/22 22:05

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/12/07 09:44

ご回答ありがとうごじざいます。 ご指摘は、当然承知しており、エスケープやエンコードなどしているので、大丈夫です。 が、結局解決しないので、クローズさせて頂きます。 お手数をおかけしたのに申し訳ございません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問