关于servlet out.print方法 写出中文乱码的解决

碰到一个问题,在action中,最后用PrintWriter out = response().getWriter();
out.print("<script>alert('保存成功')</script>");在页面上乱码.
jsp中用的UTF-8,过滤器也是UTF-8,服务器的设置也没有问题.只有当使用out.print();这种方式时会出现乱码,开始想着,因为页面用的utf-8,所以找了个转换器,将中文转换成utf-8编码直接alert编码.不行...后面转成acs码,,,也不行...再用.net包的eURLEncoder,不行...然后string的构造方法...不行...本来都改成英文了,,,突然发现.response().setContentType("text/html; charset=UTF-8 " );可以了!!!
问题解决.
但是发现charset=GBK gb2312都可以...没有乱码..不知道为什么...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用`response.sendRedirect(url)`函数时,会向客户端浏览器发送一个重定向响应。重定向响应会告诉浏览器需要重新发送一个请求到新的 URL。因此,在使用`response.sendRedirect(url)`函数时,如果在该函数之后还使用`out.print`进行输出,那么`out.print`的输出内容会被忽略,因为该输出已经无法被浏览器显示。 以下是一个示例代码,可以演示在使用`response.sendRedirect(url)`函数时`out.print`失效的情况: ```java @WebServlet("/redirect") public class RedirectServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 重定向到百度首页 response.sendRedirect("https://www.baidu.com"); // 输出一行文本 PrintWriter out = response.getWriter(); out.print("重定向已完成!"); } } ``` 在上面的代码,当用户访问`/redirect`路径时,服务器会调用`doGet`方法来处理请求。该方法首先会使用`response.sendRedirect("https://www.baidu.com")`将请求重定向到百度首页,然后会使用`response.getWriter()`获取输出流,并使用`out.print()`输出一行文本。但是,由于在重定向之后还进行了输出,这行文本输出会被忽略,浏览器不会显示这行文本。 因此,在使用`response.sendRedirect(url)`函数时,如果需要输出内容,应该在重定向之前进行输出,或者使用客户端脚本来实现页面跳转。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值