zoukankan      html  css  js  c++  java
  • Servlet转码问题

    HttpServletRequest获取页面数据

    提交表单时,Servlet直接从页面通过HttpServletRequest对象的getParameter(String arg0)获取参数时

    默认编码解码方式为iso8859-1,而浏览器会对中文参数值进行编码(会使用表单所在页面时的字符集编码);

    编码和解码方式不一致时就会出现乱码。解决方式:

    一般页面的编码集为utf-8(注意页面使用的编码集),所以在服务端采用这种方式解码就行了;

    但是由于请求方式不同有不同解决方法:

    1.get的请求方式时:

      可以在tomcat的配置文件server.xml中配置的节点添加(加粗部分)

    <Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

    2.post的请求方式时:

      需要直接在获取参数之前设置解码方式

    request.setCharacterEncoding("utf-8");

    3.两种情况都适用的方法(麻烦、不适用)

      就是按默认解码方式获取的数据取得后,再自己写代码去解码再编码,但是每个会乱码的参数都需要,所以很麻烦

    byte[] bs = user.getBytes("iso8859-1");
    user = new String(bs,"utf-8");

    HttpServletResponse返回数据

    可以在返回数据前设置,通知容器使用指定的字符集

    response.setContentType("text/html;charset=utf-8");

    或者单独设置

    response.setCharacterEncoding("utf-8");

    注册博客园已经半年了,看了很多大神的文章,也解决了不少问题,很多次想写下自己的第一篇博客,但是一直很忐忑

    没有一次开始,今天终于下定决心,虽然写的很简单,也不够清晰的感觉,但是走出了自己的第一步,希望自己能够在这条路走得更远。

  • 相关阅读:
    大道至简第四章读后感
    进度条08
    大道至简第五章读后感
    加密算法
    程序从命令行接收多个数字,求和之后输出结果。
    用JAVA制作简单登录窗口
    进度条07
    冲刺07
    冲刺06
    冲刺05
  • 原文地址:https://www.cnblogs.com/ZqNote/p/5863565.html
Copyright © 2011-2022 走看看