ajax返回中文,页面显示成问号

场景:
基本所有地方都设置为utf-8

页面中
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />


filter中
httpResponse.setCharacterEncoding(encoding); // encoding为utf-8
httpResponse.setContentType("text/html; charset=utf-8");

<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


服务器端中文都是正确的
客户端中文全是问号"?",一个中文字对应一个问号

原因
推测为服务器端和客户端的编码方式不一样

解决方法
给servlet和action的response都加上
response.setCharacterEncoding("utf-8");

ps
不知道为什么这么做就ok,每个servlet和action都要加,特别麻烦
上面的filter中已经加了一次了,貌似没有起作用,可能对filter理解还有问题

ps
写个BaseServlet,中间定义个writeJson()方法
在该方法内处理编码
所有的servlet继承自它
调用打印json串到页面的方法

filter是请求之前或之后拦截
貌似对此不起作用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 JSP 页面显示 AJAX 请求返回的参数,你可以使用 JavaScript 和 DOM 操作。以下是一个示例代码: 1. 在 JSP 页面中添加一个元素用于显示返回的参数,比如 <div id="result"></div>。 2. 编写一个 JavaScript 函数用于发送 AJAX 请求并将返回的参数显示页面上,示例如下: ``` function sendAjaxRequest() { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("result").innerHTML = this.responseText; } }; xhttp.open("GET", "ajax_request.jsp", true); xhttp.send(); } ``` 3. 在 JSP 页面中添加一个按钮或链接,用于触发 AJAX 请求,比如 <button onclick="sendAjaxRequest()">发送请求</button>。 4. 在服务端编写一个 JSP 页面,用于处理 AJAX 请求并返回参数,比如 ajax_request.jsp。在这个页面中,你可以通过 request 对象获取请求参数,通过 response 对象返回响应参数,比如: ``` <% String param = request.getParameter("param"); String result = "Hello, " + param + "!"; response.setContentType("text/plain"); response.setCharacterEncoding("UTF-8"); response.getWriter().write(result); %> ``` 当你点击发送请求按钮时,JavaScript 函数 sendAjaxRequest() 会向 ajax_request.jsp 发送一个 AJAX 请求,并在返回参数后将其显示页面上。注意,ajax_request.jsp 返回的参数必须是一个纯文本字符串,否则显示可能会出现问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值