• 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. }

  • 相关阅读:
    LabVIEW比较LabVIEW类对象 LabVIEW接口
    如何解决 Critical dependency: the request of a dependency is an expression ?
    jQuery—validate验证框架的简单使用
    JavaScript面向对象学习递归(三)
    react源码中的协调与调度
    三车道交通流元胞自动机研究(matlab代码实现)
    灵活好用的sql monitoring 脚本 part4
    Vue-----循环渲染
    springboot毕设项目校园运动会管理系统6wumc(java+VUE+Mybatis+Maven+Mysql)
    【底层服务/编程功底系列】「大数据算法体系」带你深入分析MapReduce算法 — Shuffle的执行过程
  • 原文地址:https://blog.csdn.net/tiantiantbtb/article/details/132660943