大公司網(wǎng)站色彩設(shè)計萬網(wǎng)域名查詢官網(wǎng)
AJAX學(xué)習(xí)筆記3練習(xí)_biubiubiu0706的博客-CSDN博客
在Tomcat10來說,AJAX? GET或者POST接收響應(yīng)都不存在亂碼問題
對于Tomcat9來說
前端測試代碼
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>測試AJAX亂碼問題</title>
</head>
<body>
<script type="text/javascript">window.onload=function (){//GETdocument.getElementById("btn1").onclick=function(){var xhr=new XMLHttpRequest();xhr.onreadystatechange=function (){if(this.readyState==4){if(this.status==200){document.getElementById("mydiv").innerHTML=this.responseText}else{alert("請求發(fā)送失敗")}}}var username=document.getElementById("username").valuexhr.open("get","/ajax/luanma?username="+username,true)xhr.send()}//POSTdocument.getElementById("btn2").onclick=function(){var xhr=new XMLHttpRequest();xhr.onreadystatechange=function (){if(this.readyState==4){if(this.status==200){document.getElementById("mydiv").innerHTML=this.responseText}else{alert("請求發(fā)送失敗")}}}var username=document.getElementById("username").valuexhr.open("post","/ajax/luanma",true)xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded")xhr.send("username="+username)}}
</script><input type="text" id="username">
<button id="btn1">發(fā)送AJAX GET請求,測試亂碼問題</button>
<button id="btn2">發(fā)送AJAX POST請求,測試亂碼問題</button><div id="mydiv"></div>
</body>
</html>
后端測試代碼
package com.web;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;/*** @author hrui* @date 2023/9/4 6:02*/
@WebServlet("/luanma")
public class AjaxRequestLuanma extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//接收的中文會不會亂碼String username = req.getParameter("username");System.out.println(username);//響應(yīng)中文會亂碼嗎PrintWriter writer = resp.getWriter();writer.print("GET響應(yīng)");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//接收的中文會不會亂碼String username = req.getParameter("username");System.out.println(username);//響應(yīng)中文會亂碼嗎PrintWriter writer = resp.getWriter();writer.print("POST響應(yīng)");}
}
解決方式
package com.web;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSet;/*** @author hrui* @date 2023/9/4 6:02*/
@WebServlet("/luanma")
public class AjaxRequestLuanma extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//接收的中文會不會亂碼String username = req.getParameter("username");System.out.println(username);//響應(yīng)中文會亂碼嗎resp.setContentType("text/html;charset=utf-8");PrintWriter writer = resp.getWriter();writer.print("GET響應(yīng)");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//接收的中文會不會亂碼req.setCharacterEncoding("utf-8");//解決body體亂碼問題String username = req.getParameter("username");System.out.println(username);//響應(yīng)中文會亂碼嗎resp.setContentType("text/html;charset=utf-8");PrintWriter writer = resp.getWriter();writer.print("POST響應(yīng)");}
}