ホームページ  >  記事  >  ウェブフロントエンド  >  jQuery が AJAX_jquery を呼び出すときの Get および post の一般的なコード文字化け解決策の説明例

jQuery が AJAX_jquery を呼び出すときの Get および post の一般的なコード文字化け解決策の説明例

WBOY
WBOYオリジナル
2016-05-16 17:32:521107ブラウズ

以前 Sina Blog で書きましたjs が AJAX を呼び出すときの Get と post のコードが文字化けする問題の解決策 ですが、データのやり取りに ajax を使用すると、js コードを使用する方が面倒になります。 js---jQuery の。

Web サイトを設計する場合、登録、ログイン、ページング検索のいずれであっても、必要なページ データを取得するためにパラメーターをサーバーに送信する必要があります。ページの更新によるユーザーの苦痛を軽減するために、ajax が誕生しました。しかし、初心者がプロジェクトを開発すると、中国語の文字化けという非常に厄介な問題に遭遇することになります。

以下では、簡単な例を使用して、文字化けが発生する場所とその解決方法を説明します。
この例では、主にユーザーが登録するときにユーザー名が正しい (既に存在する) かどうかを実装し、フォーカスがユーザー名のテキストから離れると、ユーザー名が非同期で送信され、サーブレットが結果を抽出して判断し、結果を に返します。対応するプロンプトを作成するページ。

最初のステップは、新しい Web プロジェクト (デフォルトの GBK 形式) を作成し、jQuery_Ajax という名前を付けることです。 WebRoot ディレクトリに新しい js ファイル パッケージを作成し、その中に jquery-1.4.4.js を配置します。

2 番目のステップは、src の下にサーブレット パッケージを作成し、Vali.java を作成することです。

コードをコピーします コードは次のとおりです:

パッケージ サーブレット;
import java.io.PrintWriter; import javax.servlet .ServletException;
import javax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
@ Override
protectedvoid service(HttpServletRequest request, HttpServletResponse response)
throwsServletException, IOException {
StringuserName = URLDecoder.decode(request.getParameter("userName"),"utf-8");
System.out.println(userName);
response.setContentType("text/html;charset=utf-8");
PrintWriter pw =response.getWriter(); =("张三")){
pw.println("エラー");
}else{
pw.println("正しい");
}


コードからもわかるように、エンコード形式を含むステートメントは文字化けを解決する方法の 1 つです。

コード内の注:

1.URLDecoder.decode(request.getParameter("userName"),"utf-8") - ページからのデータの形式を変換して抽出します。
2.response.setContentType("text/html;charset=utf-8") - 応答の戻り値を utf-8 でエンコードし、ページに戻ります
3. 2 の変換に特に注意してください。このメソッドのすべての応答の前に記述する必要があります。そうしないと失敗する可能性があります
4. このサーブレットによるデータの形式エンコードは、送信メソッドが GET の場合にのみ適しています。ページを抽出するコードは、データは次のとおりです:


コードをコピー


コードは次のとおりです:
request.setCharacterEncoding( "utf-8"); StringuserName = request.getParameter(" userName"); userName= new String("iso-8859-1"); 🎜> 3 番目のステップは、簡単な登録ページを作成することです ajax .jsp


コードをコピーします

コードは次のとおりです以下のように:

<%@ page language="java"import="java.util.*" pageEncoding="utf-8"%>
文字列パス = request.getContextPath();
StringbasePath =request.getScheme() "://" request.getServerName() ":" request.getServerPort() パス "/";
%>


<頭>

私の JSP 'ajax.jsp' 開始ページ








function vali(){
$.ajax({
type:"POST",
url:"/jQuery_Ajax/Vali",
data:encodeURI(encodeURI("userName=" $(":text").val())),
success:function(data){
$("span").text(data);
}
});
}



用户名:

秘密:



在代码中の注意:
1.页面要设定设设 utf-8、および導入jquery-1.4.4.js
2.ajax通过POST

GET メソッドを使用してページ データを送信する場合、js コードは次のようになります:
复制代码代码如下:

function vali(){
$.ajax({
type:"GET",
url: "/jQuery_Ajax/Vali",
data:encodeURI("userName=" $(":text").val()),
success:function(data){
$("span") .text(データ);
}
});
}

最後の一步、在web.xml 構成サーブレットと映射
复制代次のように:

<サーブレット>
これは私の J2EE コンポーネントの説明です
これは J2EE コンポーネントの表示名です
Valiサーブレット名>
servlet.Valiサーブレットクラス>


Valiサーブレット名>
/Vali


上のコードの書き込みを介して、この注釈テストのアイテムが完了し、tomcat に配置され、ネットワーク経由でアクセスされます。方法

1. 次のように、トップページコードを utf8 に設定します。 2. doPost または doGet メソッドに次のようなサーブレットを追加します:
response.setContentType("text/xml;charset=utf-8");
3. tomcat 文書を変更します。TOMCAT_HOME/conf/server.xml 文書内に URIEncoding=”utf8” を追加します:

4. プロセスで新しいフィルタが追加され、コード形式が utf8
に設定され、4 回以上の操作が行われた後、バージョンは古いままになります。 Firefox の http ヘッダー、コンテンツタイプ フィールドを参照:
contentType:"application/x-www-form-urlencoded"
6.Firefox の http ヘッダー、コンテンツ タイプ フィールドを参照:
contentType: "application/x-www-form-urlencoded;charset=UTF-8"
比 5,6 の 2 つを削除します。 "application/x-www-form-urlencoded" が次のページに変更されました
contentType:"application/x-www-form-urlencoded;charset=UTF-8"
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。