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");

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

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

  • 相关阅读:
    MARKY一下。
    从一个git仓库拷贝到另一个git仓库
    Git:四、连接GitHub远程仓库
    木门工厂木门、门套、套线公式和算法
    设计模式之代理模式
    2018年软件开发状态报告
    产品研发流程与周期(非原创)
    软件工程师的核心竞争力
    linux下安装redis安装使用
    8 个 Tips 让你更好的进行 Code Review
  • 原文地址:https://www.cnblogs.com/ZqNote/p/5863565.html
Copyright © 2011-2022 走看看