이전에 Sina Blogjs가 AJAX를 호출할 때 Get 및 post의 잘못된 코드에 대한 솔루션에 글을 썼지만, js 코드를 사용하는 것이 더 번거롭기 때문에 데이터 상호작용에 ajax를 사용할 때 성숙한 프레임워크를 사용할 수 있습니다. js---jQuery의 .
웹사이트를 디자인할 때 등록, 로그인, 페이징 검색 등 필수 페이지 데이터를 얻으려면 매개변수를 서버에 제출해야 합니다. 페이지 새로 고침으로 인해 발생하는 사용자의 고통을 줄이기 위해 ajax가 탄생했습니다. 그러나 초보자가 프로젝트를 개발할 때 매우 짜증나는 문제에 직면하게 됩니다: 중국어 문자가 깨집니다.
아래에서는 문자 왜곡이 발생할 수 있는 위치와 이를 해결하는 방법을 간단한 예를 통해 설명하겠습니다.
우리의 예는 주로 사용자가 등록할 때 사용자 이름이 올바른지(이미 존재하는지) 구현합니다. 포커스가 사용자 이름 텍스트에서 멀어지면 사용자 이름이 비동기적으로 제출되고 서블릿이 결과를 추출하고 판단하여 결과를 반환합니다. 해당 프롬프트를 만드는 페이지입니다.
첫 번째 단계는 새 웹 프로젝트(기본 GBK 형식)를 만들고 이름을 jQuery_Ajax로 지정하는 것입니다. WebRoot 디렉터리에 새 js 파일 패키지를 만들고 그 안에 jquery-1.4.4.js를 배치합니다.
두 번째 단계는 src 아래에 서블릿 패키지를 만들고 Vali.java를 작성하는 것입니다.
package servlet;
import java.io.IOException;
import java.net.URLDecoder; import javax.servlet .ServletException;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse
공용 클래스 Vali는 HttpServlet을 확장합니다.
@ Override
protectedvoid service(HttpServletRequest 요청, HttpServletResponse 응답)
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(); equals("张三")){
pw.println("Error");
}else{
pw.println("올바른")
}
}
}
코드에서 알 수 있듯이 인코딩 형식을 포함하는 명령문은 문자 깨짐을 해결하는 방법 중 하나입니다.
코드 참고 사항:
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(userName.getBytes("iso-8859-1"),"utf-8")
세 번째 단계는 간단한 등록 페이지 ajax .jsp를 작성하는 것입니다.
코드 복사