2016-08-02 5 views
1

サーブレットにデータを持つURLとして1つのリクエストを送信しましたが、デフォルトではサーブレットはデータを変更してリクエストとして送信しています。サーブレットに渡されたデータを同じままにしてリクエストURLを維持する方法をお勧めしますか?リクエストパラメータがサーブレットで変更されました

例: - 私はそれは文字列abc = request.getParameterのように、要求としてserveltで上記のURLを使用する場合に

http://localhost/helloservlet/servlet/ppd.abcd.build.coupons.CouponValueFormatterServlet?dsn=frd_abc_abcde&lang=ENG&val=PRCTXT|12345 & ABCDEFG

をサーブレットにデータを渡すいます(」 val ")、val属性は自動的にトリムされ、" val = PRCTXT | 12345 "として割り当てられますが、" val = PRCTXT | 12345 & ABCDEFG "のようになります。これで私を助けてください。

+3

'&'はURLエンコードする必要があります。現在、値なしの 'ABCDEFG'という変数があります。 coupValImg.source = "/" + Model.site.siteInfo.webContext + \t \t \t \t \t "/servlet/cpd.campaign.build.coupons.CouponValueFormatterServlet?lang=" +: –

答えて

0

サーブレットは、URLの各&を新しいパラメータの開始点として解釈します。したがって、& ABCDEFGと表示されている場合、ABCDEFGという名前の新しいパラメータを値なしで送信していると考えられます(これは技術的には仕様に応じて「キーレス値」です)。

これを修正するには、まず&を実際に送信するときは、代わりに%26を使用します。これはパラメータを分割するコードではスキップされますが、パラメータの値では実際の&に変換されます。

第2に、スペースを+で置き換えることです。 URLのスペースは時々動作しますが、問題がある可能性があります。

だからあなたの実際の要求URLは次のようになります。

http://localhost/helloservlet/servlet/ppd.abcd.build.coupons.CouponValueFormatterServlet?dsn=frd_abc_abcde&lang=ENG&val=PRCTXT|12345+%26ABCDEFG 

あなたはJavaScriptでこれらのパラメータを構築している場合、あなたはあなたのためのすべての問題の文字を修正するencodeURIComponentで()を使用することができます。だからこのようなことをすることができます:

var userInput = *get some input here* 
var addr = 'http://www.example.com?param1=' + encodeURIComponent(userInput); 
+0

は、基本的には、このようにフレックスからサーブレットURLを渡します&zoomFactor.toString()+ "&bgcolor =" + cmpnLanguage + "&val =" + variable.value + "&width =" + variable.width + "&height =" + variable.height + \t \t \t \t \t variable.bgColor + "&fgcolor =" + variable.fontColor; URL内の – Ravikanth

+0

、私はvariable.value = "ABCDEF&12345"として値を渡しており、URLは完全にサーブレットに渡しています。しかし、サーブレットがrequest.getAttribute( "val")で値を使用しているときに、値として渡された完全長の文字列を表示しない "ABCDEF"だけが表示されます。私に教えてください、これを達成するために、encodeURLComponent(val)を試してみても、うまくいきません。 – Ravikanth

+0

私はメソッド名を誤って入力しました。それは 'encodeURIComponent()'でなければなりません。上記を訂正。私はFlexについて何も知らないが、ブラウザコンソールに構築されたURLを送り、 'val'値を修正しているかどうか確認してください。 'console.log(coupValImg.source)' –

関連する問題