2

AJAX 呼び出しを使用してサーバーに値を渡してencodeURIComponentいますが、サーバー側request.getParameter()では自動的にデコードされません。値をデコードするにはどうすればよいですか? 私は春のMVCを使用しています。

$.ajax({  
    type: "POST",
    url: "test/editTest.do",
    data: "id=" + encodeURIComponent(id)
})

ヘルプとガイダンスをいただければ幸いです

ありがとう

4

2 に答える 2

0

Javaで次のことを試すことができますか:

URLDecoder.decode(request.getParameter("id").replace("+", "%2B"), "UTF-8").replace("%2B", "+");

decodeURIComponentこれは、Java 側でシミュレートする必要があります。Java の URLDecoder はプラス記号をスペースにデコードするため、replace 関数が使用されます。

于 2015-01-29T11:55:44.507 に答える
0

web.xml の最初のフィルターとして charset フィルターを追加します。

<filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

また、Tomcat がコネクタに URIEncoding を追加するなど、サーバーが適切に構成されていることを確認できます。

<connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>

URI のデコードに使用する文字エンコーディングを指定します。Tomcat を使用していない場合は、サーバーに相当するものを見つける必要があります

于 2015-01-29T11:15:06.730 に答える