• AJAX学习笔记4解决乱码问题


    AJAX学习笔记3练习_biubiubiu0706的博客-CSDN博客

    在Tomcat10来说,AJAX  GET或者POST接收响应都不存在乱码问题

    对于Tomcat9来说

    前端测试代码

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>测试AJAX乱码问题</title>
    6. </head>
    7. <body>
    8. <script type="text/javascript">
    9. window.onload=function (){
    10. //GET
    11. document.getElementById("btn1").onclick=function(){
    12. var xhr=new XMLHttpRequest();
    13. xhr.onreadystatechange=function (){
    14. if(this.readyState==4){
    15. if(this.status==200){
    16. document.getElementById("mydiv").innerHTML=this.responseText
    17. }else{
    18. alert("请求发送失败")
    19. }
    20. }
    21. }
    22. var username=document.getElementById("username").value
    23. xhr.open("get","/ajax/luanma?username="+username,true)
    24. xhr.send()
    25. }
    26. //POST
    27. document.getElementById("btn2").onclick=function(){
    28. var xhr=new XMLHttpRequest();
    29. xhr.onreadystatechange=function (){
    30. if(this.readyState==4){
    31. if(this.status==200){
    32. document.getElementById("mydiv").innerHTML=this.responseText
    33. }else{
    34. alert("请求发送失败")
    35. }
    36. }
    37. }
    38. var username=document.getElementById("username").value
    39. xhr.open("post","/ajax/luanma",true)
    40. xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
    41. xhr.send("username="+username)
    42. }
    43. }
    44. </script>
    45. <input type="text" id="username">
    46. <button id="btn1">发送AJAX GET请求,测试乱码问题</button>
    47. <button id="btn2">发送AJAX POST请求,测试乱码问题</button>
    48. <div id="mydiv"></div>
    49. </body>
    50. </html>

    后端测试代码

    1. package com.web;
    2. import javax.servlet.ServletException;
    3. import javax.servlet.annotation.WebServlet;
    4. import javax.servlet.http.HttpServlet;
    5. import javax.servlet.http.HttpServletRequest;
    6. import javax.servlet.http.HttpServletResponse;
    7. import java.io.IOException;
    8. import java.io.PrintWriter;
    9. /**
    10. * @author hrui
    11. * @date 2023/9/4 6:02
    12. */
    13. @WebServlet("/luanma")
    14. public class AjaxRequestLuanma extends HttpServlet {
    15. @Override
    16. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    17. //接收的中文会不会乱码
    18. String username = req.getParameter("username");
    19. System.out.println(username);
    20. //响应中文会乱码吗
    21. PrintWriter writer = resp.getWriter();
    22. writer.print("GET响应");
    23. }
    24. @Override
    25. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    26. //接收的中文会不会乱码
    27. String username = req.getParameter("username");
    28. System.out.println(username);
    29. //响应中文会乱码吗
    30. PrintWriter writer = resp.getWriter();
    31. writer.print("POST响应");
    32. }
    33. }

    解决方式

    1. package com.web;
    2. import javax.servlet.ServletException;
    3. import javax.servlet.annotation.WebServlet;
    4. import javax.servlet.http.HttpServlet;
    5. import javax.servlet.http.HttpServletRequest;
    6. import javax.servlet.http.HttpServletResponse;
    7. import java.io.IOException;
    8. import java.io.PrintWriter;
    9. import java.sql.ResultSet;
    10. /**
    11. * @author hrui
    12. * @date 2023/9/4 6:02
    13. */
    14. @WebServlet("/luanma")
    15. public class AjaxRequestLuanma extends HttpServlet {
    16. @Override
    17. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    18. //接收的中文会不会乱码
    19. String username = req.getParameter("username");
    20. System.out.println(username);
    21. //响应中文会乱码吗
    22. resp.setContentType("text/html;charset=utf-8");
    23. PrintWriter writer = resp.getWriter();
    24. writer.print("GET响应");
    25. }
    26. @Override
    27. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    28. //接收的中文会不会乱码
    29. req.setCharacterEncoding("utf-8");//解决body体乱码问题
    30. String username = req.getParameter("username");
    31. System.out.println(username);
    32. //响应中文会乱码吗
    33. resp.setContentType("text/html;charset=utf-8");
    34. PrintWriter writer = resp.getWriter();
    35. writer.print("POST响应");
    36. }
    37. }

  • 相关阅读:
    asp.net -web -pdf -预览-编辑 RAD PDF.NET cRACK
    樱花(筛素数+约数)
    双十一购买什么最划算,最值得入手的几款数码好物推荐
    R155法规有没有要求上Secure Boot功能?
    一起Talk Android吧(第五百五十三回:解析Retrofit返回的数据)
    适合引流的运动步数打卡抽奖小程序源码开发
    代码随想录45——动态规划:70爬楼梯(进阶版)、322零钱兑换、279完全平方数
    zabbix监控H3C设备
    es6 基础知识详解 变量 字符串 解构赋值 函数 对象 从入门到精通
    MyBatis注解开发
  • 原文地址:https://blog.csdn.net/tiantiantbtb/article/details/132660943