请求响应编码问题一文全解决

请求编码、响应编码及URL编码的原理 1 请求编码 1.1 直接在地址栏中给出中文 请求数据是由客户端浏览器发送服务器的,请求数据的编码是由浏览器决定的。例如在浏览器地址栏中给出:http://localhost:8080/hello/AServlet?name=传智,那么其中“传智”是什么编码的呢?不同浏览器使用不同的编码,所以这是不确定的! IE:使用GB2312;   FireFox:使用GB2312; 阅读详情

1 编码介绍

编码分为:

  • ISO-8859-1:用于欧洲国家的编码
  • 中文:如果想支持中文,可以使用UTF-9、GB2312、GBK等,其中UTF-8是国际化的,哪个国家都支持,所以推荐使用UTF-8。

2 Servlet获取数据时中文乱码问题

servlet中涉及的编码问题已过时,因为开发中不使用servlet了。

乱码问题分为:

  • 请求乱码:浏览器发给服务器的数据,服务器收到解析出现乱码。我们应该告诉服务器我使用的请求编码格式
  • 响应乱码:服务器发给浏览器的数据,浏览器收到解析出现乱码
2.1 请求编码:POST方式

乱码原因:

* post方式:会乱码
浏览器默认的数据编码格式是ISO-8859-1,浏览器发的是ios8859-1,tomcat解析是用给定utf-8,会乱码 。

对于POST方式,它采用的编码是由页面来决定的即ContentType("text/html; charset=GBK")。当通过点击页面的submit按钮来提交表单时,浏览器首先会根据ContentType的charset编码格式来对POST表单的参数进行编码然后提交给服务器,在服务器端同样也是用ContentType中设置的字符集来进行解码,这就是通过POST表单提交的参数一般而言都不会出现乱码问题。
    
当然这个字符集编码我们是可以自己设定的,通过:
    request.setCharacterEncoding(charset)
    设置编码,然后通过request.getParameter获得正确的数据。

解决方案:

方法1:在 service 方法中使用:

req.setCharacterEncoding(“utf-8”);

方法2:(实际更常用)

springMVC已经提供了轮子给我们使用,在web.xml添加post乱码filter:
在web.xml中加入:

<!-- 字符编码过滤器 -->
<filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <!-- 设置请求编码 -->
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <!-- 设置响应编码格式为也是encoding -->
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern><!-- 拦截所有用户请求 -->
</filter-mapping>
2.2 请求编码:GET方式

乱码原因

get请求方式的参数是放到了URL后面。这时设置content-type是没用的。
tomcat收到这个请求就会根据设置的调用默认的URIEncoding来进行解码,默认为ISO8859-1,并封装成request对象。
Tomcat8及以上版本不存在乱码问题,请求URL默认的编码是UTF-8,但是请求体还是使用的ISO-8859-1
Tomcat7及之前的服务器使用的是ISO8859-1编码,不支持中文

解决方案:

方法一(String编码,不推荐):

new String(request.getParameter("name").getBytes("iso-8859-1"),"utf-8");
//原来以为的解析方式是8859的,所以我们先用8859解出来字节,再用utf8重新编码字符

方法二(server设置):

解决方案是通知设置tomcat编码URL的格式与请求体一致,或单独设置URL编码格式
在 tomcat 服务器目录下的 conf 文件下找到 server.xml 文件,打开进行如下配置:
<Connector port="8080" protocol="HTTP/1.1"  maxThreads="150" 
           connectionTimeout="20000"
           redirectPort="8443"
           URIEncoding="utf-8"/> (单独设置了URL编码格式)
---------------或 -------------------------
<Connector port="8080" protocol="HTTO/1.1"
    connectionTimeout="20000"
    redirection="8443" 
    useBodyEncodingForURI="true">(设置URL的编码格式与请求体一致)
然后再使用req.setCharacterEncoding("");//设置请求体编码格式
----------------------------------------
(默认是iso-8859-1)。
2.3 响应编码
设置响应编码格式:告诉浏览器接收的格式
response直接使用ISO-8859-1编码然后交给浏览器
    3.1 在使用response对象之前设置编码格式
    (不用)response.setCharacterEncoding("UTF-8");//通知服务器用什么编码集将字符转为字节//只能让字符串不乱吗,浏览器还是不知道如何解析页面字符串
    3.2 在使用response对象之前设置一个响应头,通知浏览器以什么编码打开,告诉response对象如何读取字符串
response.setContentType("text/html;charset=Utf-8");
//或resp.setHeader("content-type","text/html;charset=utf-8");//等价
//只要设置过ContentType,服务器自动识别编码会自动设置response.setCharacterEncoding("")

https://blog.youkuaiyun.com/qq_38409944/article/details/80637980

2.4 SpringMVC中的编码Filter
springMVC已经提供了轮子给我们使用,在web.xml添加post乱码filter:
在web.xml中加入:

<!-- 字符编码过滤器 -->
<filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <!-- 设置请求编码 -->
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <!-- 设置响应编码格式为也是encoding -->
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern><!-- 拦截所有用户请求 -->
</filter-mapping>

服务器启动的时候就会创建Filter,将init-param中的参数加载,注入到CharacterEncodingFilter 类中,浏览器每次发送请求都会经过这个过滤器,然后调用doFilterInternal

在这里插入图片描述

可以看到CharacterEncodingFilter继承OncePerRequestFilter,OncePerRequestFilter是个抽象类,其中的抽象方法doFilterInternal被CharacterEncodingFilter实现,同时OncePerRequestFilter实现了doFilter方法,调用了doFilterInternal方法。

@Override
protected void doFilterInternal(
    HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
    throws ServletException, IOException {

    if (this.encoding != null && (this.forceEncoding || request.getCharacterEncoding() == null)) {//条件为设置的encoding不为空 且 (传入了forceEncoding或CharacterEncoding为空)
        request.setCharacterEncoding(this.encoding);//关键语句//设置请求编码格式
        if (this.forceEncoding) {// 关键语句
            response.setCharacterEncoding(this.encoding);//设置响应编码格式
        }
    }
    filterChain.doFilter(request, response);
}

3 JSP中的编码原理

流程:JSP源文件首先被web容器转换为java源文件,接着JSP编译器对此进行自动编译,产生临时的Servlet类的Class类文件。客户请求到来时,web容器调用JVM来运行Class类文件,JVM获取表单提交的参数或从后台数据库读取数据,把数据写入数据库或者把输出发送给浏览器。

JSP的三个阶段:

第一阶段:转译(.jsp -> .java;pageEncoding -> UTF-8)。

(第一次访问时)web容器将jsp编译成Servlet(.java)文件,它会根据pageEncoding的设定读取jsp。在编译过程中,根据pageEncoding=“XXX”的指示,找到编码的规则为“XXX”,然后服务器将JSP文件编译成.java文件时会根据pageEncoding的设定读取jsp,结果是由指定的编码方案翻译成统一的UTF-8编码的JAVA源码(即.java,也就是Servlet)。

第二阶段:编译(.java -> .class;UTF-8 -> UTF-8)。

从Servlet文件(.java)到Java字节码文件(.class),从UTF-8到UTF-8。在这一阶段中,不论JSP编写时候用的是什么编码方案,经过这个阶段的结果全部是UTF-8的encoding的java源码(JVM读取java会默认认为java的编码格式是utf8)。JAVAC用UTF-8的encoding读取java源码,编译成UTF-8编码的二进制码(即.class),这是JVM对常数字串在二进制码(Java encoding)内表达的规范。这一过程是由JVM的内在规范决定的,不受外界控制。

第三阶段:编译(UTF-8 -> contentType)。

从服务器到浏览器输出的结果,也就是在客户端见到的,这时隐藏在阶段一和阶段二的参数contentType就发挥了功效。这一过程中用到的指令是contentType。Tomcat(或其的application container)服务器载入和执行由第二阶段生成出来JAVA二进制码,输出的结果,也就是在客户端可见到的结果,在这次输出过程中,由contentType属性中的charset来指定,将UTF8形式的二进制码以charset的编码形式来输出。如果没有人为设定,则默认的是ISO-8859-1的形式。

下面内容涉及字符编码转换:
  • 1 JSP–>java转译过程中的转码(JSP–>Servlet(java)编码)
  • 2 JVM对客户端表单提交的参数转码(请求编码)
  • 3 JVM运行历史Servlet类文件后产生输出的转码(响应编码)
  • 4 JSP源文件在数据库的入口和出口涉及字符编码的转换(数据库编码)

4 JSP中可以设置编码的地方:

4.1 pageEncoding=”UTF-8”

<%@ page pageEncoding="UTF-8"%>

只是指明了 JSP 页面本身的编码格式,跟页面显示的编码没有关系。pageEncoding=”UTF-8” 的作用是设置JSP编译成Servlet时使用的编码。jsp页面中有中文的时候,保存的时候会报错(此时报错是保存JSP文件时报错,而不是浏览器访问时的报错),因为默认的是ISO-8859-1。例如,你的 JSP文件中含有中文字符,而在JSP中却指定pageEncoding=”iso-8859-1”,就会导致中文字符显示异常。

  • 如果pageEncoding属性存在,那么JSP页面的字符编码方式就由pageEncoding决定,
  • pageEncoding属性不存在,就由contentType属性中的charset决定,如果charset也不存在,JSP页面的字符编码方式就采用默认的ISO-8859-1。

可以在Eclipse中设置新建JSP的格式,设置完后就会发现JSP中的pageEncoding部分改变了。

例子:

<%@ page language="java" pageEncoding="iso-8859-1" import="java.util.*" %>
<html>
  <head>
    <title>哈哈</title>
  </head>
  <body>
     中文 <br>
  </body>
</html>

在其编译为Servlet后,其源码(片段)如下所示:

public void _jspService(HttpServletRequest request, HttpServletResponse response)
        throws java.io.IOException, ServletException {
    
	// ...
  out.write("<html>\r\n");
  out.write("  <head>\r\n");
  out.write("    <title>哈哈</title>\r\n");
  out.write("  </head>\r\n");
  out.write("  <body>\r\n");
  out.write("   \t 中文 <br>\r\n");
  out.write("  </body>\r\n");
  out.write("</html>\r\n");

  // ...
}

访问该页面,页面显示如下:

我们可以看到,由于pageEncoding被指定为”iso-8859-1”,导致其在由服务器将JSP文件编译成.java文件过程中,在使用 “iso-8859-1” 读取jsp并翻译成统一的UTF-8编码的JAVA源码时,所有的中文字符被转成乱码,并使得其呈现给用户的响应也包含乱码。特别地,该属性还有一个功能,就是在JSP中不指定contentType参数,也不使用response.setCharacterEncoding方法时,指定对服务器响应的内容进行编码。

4.2 contentType=”text/html;charset=UTF-8”

<%@ page contentType="text/html; charset=UTF-8"%>

contextType指定了两个内容:

  • MIME类型的默认值是“text/html”;
  • 字符编码方式的默认值是“ISO-8859-1”

contentType=”text/html;charset=UTF-8” 的作用是将上述第二阶段所生成的UTF8形式的二进制码以charset的编码形式来输出到客户端,如果设置不当的话,会出现乱码。看下面的例子:

<%@ page language="java" contentType="text/html;iso-8859-1" import="java.util.*" 
    pageEncoding="utf-8"%>
<html>
  <head>
    <title>哇哈哈</title>
  </head>

  <body>
     哇哈哈 <br>
  </body>
</html>

在其编译为Servlet后,其源码(片段)如下所示:

public void _jspService(HttpServletRequest request, HttpServletResponse response)
        throws java.io.IOException, ServletException {
	// ...

  out.write("<html>\r\n");
  out.write("  <head>\r\n");
  out.write("    <title>哇哈哈</title>\r\n");
  out.write("  </head>\r\n");
  out.write("  <body>\r\n");
  out.write("   \t 哇哈哈 <br>\r\n");
  out.write("  </body>\r\n");
  out.write("</html>\r\n");

  // ...
}

访问该页面,页面显示如下:原因是没告诉浏览器的接收方式

pageEncoding和contentType的关系:pageEncoding的内容只是用于jsp输出时的编码,不会作为header发出去的; contentType是告诉web Server的jsp页面按照什么编码输出,即web服务器输出的响应流的编码;

4.3 request.setCharacterEncoding(“UTF-8”)

在JSP中java代码中写  request.setCharacterEncoding(“UTF-8”)

用来指定对浏览器发送来的数据以特定的字符集进行重新编码,常用于对 POST 请求参数进行解码。具体见https://blog.youkuaiyun.com/justloveyou_/article/details/55827718

request.setCharacterEncoding()设置请求编码,
response.setCharacterEncoding() 设置响应编码

4.4 response.setCharacterEncoding(“UTF-8”)

response.setCharacterEncoding(“UTF-8”)的作用是:在服务器将响应返回到浏览器前,对响应使用指定字符集进行重新编码。一旦使用了该种方式,即使该响应页面指定了具体的 contentType,也将失效。看下面的例子:

<%@ page language="java" contentType="text/html;iso-8859-1" import="java.util.*" 
    pageEncoding="utf-8"%>

<html>
  <head>
    <title>哇哈哈</title>
  </head>

  <body>
     哇哈哈 <br>
  </body>
</html>

在其编译为Servlet后,其源码(片段)如下所示:

public void _jspService(HttpServletRequest request, HttpServletResponse response)
        throws java.io.IOException, ServletException {
// ...

  out.write("<html>\r\n");
  out.write("  <head>\r\n");
  out.write("    <title>哇哈哈</title>\r\n");
  out.write("  </head>\r\n");
  out.write("  <body>\r\n");
  out.write("   \t 哇哈哈 <br>\r\n");
  out.write("  </body>\r\n");
  out.write("</html>\r\n");

  // ...
}

访问该页面,页面显示如下:

4.5 JSP中html页面charset:(无需设置)

<META http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
web页面输入编码: 输入框输入的字体编码

5 四种编码设定方式之间的相互影响以及优先级

根据上文内容,我们得出以下三点:

  • 在指定JSP编译成Servlet时使用的编码时,优先级为: pageEncoding=”UTF-8” > contentType=”text/html;charset=UTF-8”

  • 在指定服务器对响应内容的编码时,优先级为:response.setCharacterEncoding(“UTF-8”)> contentType=”text/html;charset=UTF-8” > pageEncoding=”UTF-8”

  • request.setCharacterEncoding(“UTF-8”)只用来指定对浏览器发送来的请求数据的解码方式。

假如html后的排序为:

和contentType效果一样的设置方式还有 
- html页面charset, 
- response.setCharacterEncoding(),
- response.setContentType(),
- response.setHeader(); 
其中,
优先级对最高的是:response.setContentType(),response.setHeader();
其次是response.setCharacterEncoding();
再者是 <%@page contentType="text/html; chareset=gbk"%>,
最后是<meta http-equiv="content-type" content="text/html; charset=gb2312" />
前面的会覆盖后面的

推荐阅读:

  • https://blog.youkuaiyun.com/justloveyou_/article/details/58048879
  • https://blog.youkuaiyun.com/justloveyou_/article/details/55827718
网络返回解析 response.characterset iso-8859-1 gzip 解压 gzip 解压 response.characterset iso-8859-1 阅读详情

相关推荐

项目管理-(补充)七种基本质量工具

七种基本质量工具,用于PDCA循环的架构内 解决与质量相关的问题,分为老七工具和新七工具。 1)老七种:刘英只点劣质茶(流程图、因果图、直方图、散点图、帕累托图、控制图、核查表)2)新七种:锯树联亲测动优(矩阵图、树形图、关联图、亲和图、过程决策程序图、活动网络图、优先矩阵)

weixin_42081167的博客 4602

修改 SpringBoot 默认响应为 UTF-8 (原 charset: ISO-8859-1)

起因 由于 MediaType.APPLICATION_JSON_UTF8_VALUE 已经被废弃, 且推荐我们使用 MediaType.APPLICATION_JSON_VALUE , 原因是认为我们的浏览器都能自动分辨并解析 UTF-8 格式. 但现实是, 经过层层处理, 返回的响应被解析成 application/json;charset=iso-8859-1, 导致我们的文字都变成了问号 ?, 这明显是不行的. 网上有很多文章讲了如何设置默认为 UTF-8, 但都过于麻烦. 比如, 设置一个转换器

howeres的博客 1万+

Ubuntu 26.04 本地安装 GitLab CE 完整教程(非 Docker 方式)

本文详细介绍了在Ubuntu 26.04系统上通过Omnibus包安装GitLab CE的完整流程。主要内容包括:环境准备(系统要求、依赖安装)、配置清华镜像源、执行安装命令、修改配置文件、服务管理命令以及常见问题解决方法。文章特别强调了内存要求(建议4GB以上)、首次登录密码获取、HTTPS安全配置等关键点,并提供了性能优化建议和安全设置指导。相比Docker方式,Omnibus安装具有性能更好、管理方便等优势,适合需要私有化部署GitLab的场景。

1369

python中utf-8和gbk编码格式,如何使用cURL或python请求将参数编码为gbk而不是utf-8?...

I have a strange API, it just accept gbk parameters, I capture the data in Windows IE browser, show data with this command:$ cat 12_Request.txt| iconv -f GBK -t UTF-8GET http://10.202.15.197:20176/?us...

weixin_35281210的博客 529

第三篇:AMD 和 Intel

它像“乐高积木”一样,可以通过标准化的接口与其他部分组合,构建复杂系统。理解组件后,你会发现从操作系统到微服务,现代软件本质上都是组件的组合!

u013089100的博客 1030

ISCE+Mintpy进行SBASInSAR处理(持续更新)

通过调用pairs_misregistration方法,利用safe_dict中的数据信息,对每对SLC数据进行配准误差的计算和分析,以确定数据之间的精确差异,为后续的时间序列处理提供基础。给定同一地区的两景SAR影像,经过配准之后,对应像元进行共轭相乘得到相位差,并形成干涉图,但是从干涉图中得到的相位差实际上是主值,即在(-π,π)呈周期性变化,为了还原其真实的相位差,必须在主值的基础上加或减整数倍的相位周期2π,把被卷叠的相位展开,才能顺利地反演出地面目标的高程和形变。

Cyy2511250589的博客 3732

HttpMediaTypeNotSupportedException: Content type ‘text/plain;charset=ISO-8859-1‘ not supported

httpclient调用本地其他服务,或者第三方系统接口,出现 HttpMediaTypeNotSupportedException: Content type 'text/plain;charset=ISO-8859-1' not supported

jake_Aaron的博客 4805

pdf.js 移动端手势缩放功能实现与原生事件集成

本文详细解析了如何为pdf.js的viewer.html移动端页面实现流畅的双指捏合手势缩放功能。通过深入分析pdf.js的缩放机制,并利用原生触摸事件(touchstart、touchmove、touchend)进行集成,在不修改核心源码的前提下,为用户提供媲美原生应用的顺滑缩放体验,有效提升了移动端PDF阅读的专业性和用户满意度。

brandy的博客 488

解决 HTTP 请求中的编码问题:从乱码到正确传输

在现代的 Web 开发中,HTTP 请求是客户端与服务器之间通信的核心方式。然而,由于编码问题,开发者常常会遇到乱码问题,尤其是在处理中文字符时。本文将通过一个实际的案例,深入探讨 HTTP 请求中的编码问题,并提供解决方案。

李长渊的博客 3765

MATLAB仿真耗散孤子共振与金兹堡-朗道方程解析

耗散孤子共振(DSR)是非线性光学中的特殊脉冲现象,通过平衡非线性效应、色散与能量耗散实现稳定传输。其核心数学模型金兹堡-朗道方程(GLE)描述了光脉冲在增益介质中的演化规律,采用分步傅里叶方法(SSFM)可高效求解这类非线性偏微分方程。该技术在光纤激光器设计、高速光通信系统优化等领域具有重要价值,特别是在需要高能量脉冲保持稳定传输的场景。MATLAB数值仿真为理解DSR物理机制提供了直观工具,通过参数扫描可验证脉冲能量与宽度的线性关系特征,并为实际器件设计提供预测依据。

weixin_31240035的博客 256

OpenClaw赚钱实录:从“养龙虾“到可持续变现的实践指南

OpenClaw已经开源3个月有余,作为深耕AI Agent领域的博主,我亲身探索了各种基于OpenClaw的赚钱方法,也踩过坑、付出了时间与精力。现在,我将这些真金白银砸出来的实战经验,毫无保留地总结成这个专栏,分享给不想从零开始摸索的你。博主在优快云已有7万+粉丝和1100万+阅读量,但这却是我的第一个付费专栏。正因如此,我比任何人都更珍惜这个“第一次”。我会像一个手艺人打磨作品一样,死磕每一篇文章的质量,并持续根据订阅者的反馈优化内容。也许你的疑问就是当篇文章的优化点。

冯·诺依曼 2437

JavaWeb——响应编码与请求编码

一、引言 二、response 重定向; 定时刷新; 缓存; 三、request 客户端信息; reference; 请求包含与请求转发; 获取请求参数; 四、总结

xcymorningsun的专栏 3160

使用强化学习快速让AI学会玩贪食蛇游戏(轻量级二十分钟训练+代码)

如何让AI玩会贪食蛇,甚至比你厉害概述构建问题(强化学习求解的一般步骤)环境动作定义状态定义奖励设计训练奖励值收敛图效果代码 概述 所用技术:强化学习(Deep Reinforcement Learning),属于一种无监督学习,利用奖励rewardrewardreward教会智能体AgentAgentAgent在合适的场景做合适的决策。 采用算法:试过两种算法D3QN和离散版本的PPO算法,最终采用离散版本PPO算法+GAE(PPO是我用过的性能最好的算法之一) 编程语言与深度学习框架:Python3.

ZYunfei的博客 2万+

请求编码和响应编码乱码原因及解决方案

1. 响应编码   * 当使用response.getWriter()来向客户端发送字符数据时,如果在之前没有设置编码,那么默认使用iso,因为iso不支持中文,一定乱码   * 在使用response.getWriter()之前可以使用response.setCharaceterEncoding()来设置字符流的编码为gbk或utf-8,当然我们通常会选择utf-8。这样使用response.g...

乔治大哥的博客 3094

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Http请求和响应的编码问题

前言: 今天来谈谈Tomcat服务器和网页之间编码和解码之间的关系。 关于URL编码的问题可以看 链接:廖雪峰 修正:百度现在编码也是UTF-8 关于编码之间的转换问题可以看 链接:编码转换问题 浏览器端的编码: 影响form提交数据的编码的因素包括:form的accept-charset属性、html文档的编码方案即document.charset。其中,form的accep...

qq_38409944的博客 4万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

请求与响应的乱码问题

在 Web 应用开发中,字符编码的不一致常常导致请求和响应中出现乱码,尤其是在处理中文等非 ASCII 字符时。本文将详细探讨编码与解码的基本概念、乱码产生的根源、默认编码设置,以及如何有效解决请求与响应中的乱码问题。通过以上详细的说明和最佳实践,可以有效预防和解决 Web 应用中常见的请求与响应乱码问题,确保用户能够正确地输入和查看多语言字符内容。处理请求乱码需要根据请求的方法(GET 或 POST)采取不同的措施。处理响应乱码需要在服务器发送响应前,明确设置响应的字符编码和内容类型。

buzhidaowobuhui的博客 1425

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

JavaWeb(五)响应与请求中的编码问题+JSP

1 响应与请求中的编码问题 2.1.1什么是JSPJSP(JavaServerPages)是JavaWeb服务器端的动态资源。它与html页面的作用是相同的,显示数据和获取数据。2.1.2JSP的组成JSP=html+Java脚本(代码片段)+JSP动态标签。...

Zhangxiangyiyi的博客 1210

Http响应和请求的编码问题

1.HttpServletRequest请求中的编码一致     通过Html的表单向服务器提交数据,在Servlet中通过request.getParameter(key)来获得参数值,由于Http请求的默认字符编码为ISO-8859-1,需要在获得参数值之后进行字符编码转换。E.g.   Html表单: "/TestPro/servlet/CheckServlet">     输入:

天马行空的专栏 9552

请求与响应中内容的编码问题

1 从服务器响应回浏览器的中文编码问题(response) 告诉浏览器,服务器响应回来的数据类型与编码格式。 设置中文编码: response.setCharacterEncoding("utf-8"); response.setHeader("Content-Type","text/html"); 或 response.setHeader("Content-Type","text/html;charset=utf-8"); 实际开发中的使用的设置中文编码: response.setCont

MustangYL的博客 612

请求与响应编码

1 请求编码 1.1.在页面中发出请求 1.2 GET请求解读编码 1.3 POST请求解读编码 2.响应编码

m0_64404567的博客 578

解决乱码问题(请求&响应)

今天说说关于请求和响应中的字符编码设置。我们web程序在接收请求并处理过程中,如果不注意编码格式及解码格式,很容易导致中文乱码,引起这个问题的原因到底在哪里?如何解决?

斗鹰的技术专栏 2810

Servlet请求及响应中文乱码问题

解决Servlet请求和响应的中文乱码 请求参数的中文乱码问题 post方式 setCharacterEncoding() 该方法只对post请求方式有效,get请求方式无效 HttpServletRequest接口提供了一个setCharacterEncoding()方法,该方法用于设置request对象的解码方式。 public void doPost(HttpServletRequest...

大树 2347

JavaWeb 请求与响应乱码问题全面解决方案

JavaWeb 请求与响应乱码问题全面解决方案

weixin_51288065的博客 1118

javaweb请求响应编码问题详解

javaweb请求响应编码问题详解javaweb请求响应编码问题详解1、请求html文件乱码问题2、JSP页面乱码问题 javaweb请求响应编码问题详解 1、请求html文件乱码问题 为什么请求html文件会乱码? 由于网页的编码方式和内容的编码方式不一样。在解析时就会出现乱码问题。 如何查看网页的编码方式? 打开浏览器控制台输入:document.characterSet 示...

Goblin_E的博客 718

java设置响应编码_JAVA请求与响应编码详解

在介绍编码问题前,先介绍一下java平台(JVM)上的编码转化情况。首先要说明的一点,在JVM中,即java平台上,运行的程序一定都是Unicode编码方式的。对于代码中的字符串常量,根据代码页的设置,转化为Unicode编码。对于输入,在输入进程序中JVM已经把输入的内容根据原先输入的编码方式转化为Unicode。若未指明,则是用系统默认的编码方式去转化为Unicode。对于输出,则是把Unic...

weixin_30837611的博客 2520

请求和响应

请求和响应 1.请求对象 请求,顾名思义,就是使用者希望从服务器端索取一些资源,向服务器发出询问。在B/S架构中,就是客户端浏览器向服务器发出询问。在我们的JavaEE工程中,客户浏览器发出询问,要遵循HTTP协议所规定的。 请求对象,就是在JavaEE工程中,用于发送请求的对象。我们常用的对象就是ServletRequest和HttpServletRequest,它们的区别就是是否和HTTP协议有关。 2.响应对象 概述:响应,它表示了服务器端收到请求,同时也已经处理完成,把处理的结果告知用户。简单

晓宁的博客 3257
上一篇: mybatis笔记-9、订单商品数据模型
下一篇: SpringMVC笔记--1 SpringMVC简介
hancoder
博客等级 码龄9年 4135粉丝 167原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值