Java开发中的编码分析__GET&POST
GET方式提交参数分析

code.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/doget" method="get">
<input type="text" name="name">
<input type="submit" value="提交">
</form>
</body>
</html>
DoGetServlet
1 <Connector connectionTimeout="20000" port="88" protocol="HTTP/1.1" redirectPort="8443">
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//URL的组成
//域名:端口/contextPath/servletPath/pathInfo?queryString //1.不加处理获得的请求参数,获得的结果为"ISO-8859-1"解码后的参数
String name1 = request.getParameter("name");
System.out.println(name1); //name1 = ååå //2.先用"ISO-8859-1"进行编码,再用"UTF-8"进行解码
String name2 = URLEncoder.encode(request.getParameter("name"), "iso-8859-1");
name2 = URLDecoder.decode(name2, "utf-8");
System.out.println(name2); //name2 = 啊啊啊 //3.用String的构造函数对获得的请求参数进行处理,
//通过使用指定的 charset 解码指定的 byte 数组,
//构造一个新的 String。
String name3 =
new String(request.getParameter("name").getBytes("iso-8859-1"),"utf-8");
System.out.println(name3); //name3 = 啊啊啊 }
<Connector connectionTimeout="20000" port="88" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//URL的组成
//域名:端口/contextPath/servletPath/pathInfo?queryString //1.不加处理获得的请求参数,获得的结果为"ISO-8859-1"解码后的参数
String name1 = request.getParameter("name");
System.out.println(name1); //name1 = 啊啊啊 //2.先用"ISO-8859-1"进行编码,再用"UTF-8"进行解码
String name2 = URLEncoder.encode(request.getParameter("name"), "iso-8859-1");
name2 = URLDecoder.decode(name2, "utf-8");
System.out.println(name2); //name2 = ??? //3.用String的构造函数对获得的请求参数进行处理,
//通过使用指定的 charset 解码指定的 byte 数组,
//构造一个新的 String。
String name3 =
new String(request.getParameter("name").getBytes("iso-8859-1"),"utf-8");
System.out.println(name3); //name3 = ??? }
POST方式提交参数分析

code.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/doget" method="post">
<input type="text" name="name">
<input type="submit" value="提交">
</form>
</body>
</html>
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { //1.不加处理获得的请求参数,获得的结果为"ISO-8859-1"解码后的参数
String name1 = request.getParameter("name");
System.out.println(name1); //name1 = ååå }
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { //2.设置请求参数为"UTF-8",获得结果为"UTF-8"解码后的参数
request.setCharacterEncoding("utf-8");
String name2 = request.getParameter("name");
System.out.println(name2); //name1 = 啊啊啊
}
Java开发中的编码分析__GET&POST的更多相关文章
- JAVA WEB 中的编码分析
JAVA WEB 中的编码分析 */--> pre.src {background-color: #292b2e; color: #b2b2b2;} pre.src {background-co ...
- 编写高质量代码:改善Java程序的151个建议(第一章:JAVA开发中通用的方法和准则)
编写高质量代码:改善Java程序的151个建议(第一章:JAVA开发中通用的方法和准则) 目录 建议1: 不要在常量和变量中出现易混淆的字母 建议2: 莫让常量蜕变成变量 建议3: 三元操作符的类型务 ...
- 【JAVA编码专题】 JAVA字符编码系列三:Java应用中的编码问题
这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...
- Java开发中常见的危险信号(上)
本文来源于我在InfoQ中文站原创的文章,原文地址是:http://www.infoq.com/cn/news/2013/12/common-red-flags-in-java-1 Dustin Ma ...
- Java web中常见编码乱码问题(二)
根据上篇记录Java web中常见编码乱码问题(一), 接着记录乱码案例: 案例分析: 2.输出流写入内容或者输入流读取内容时乱码(内容中有中文) 原因分析: a. 如果是按字节写入或读取时乱码, ...
- Java应用中的编码问题(转载)
第三篇:JAVA字符编码系列三:Java应用中的编码问题这部分采用重用机制,引用一篇文章来完整本部分目标.来源: Eceel东西在线 问题研究--字符集编码 地址:http://china.ecee ...
- [ 转载 ] Java开发中的23种设计模式详解(转)
Java开发中的23种设计模式详解(转) 设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类 ...
- Java开发中代码规范有哪些?
Java开发中所要遵守的编码规范大体上有如下7点.命名规范.注释规范.缩进排版规范.文件名规范.声明规范.语句规范以及编程规范. 1.命名规范 (1)所有的标示符都只能用ASCⅡ字母(A-Z或a-z) ...
- Java开发中常用jar包整理及使用
本文整理了我自己在Java开发中常用的jar包以及常用的API记录. <!-- https://mvnrepository.com/artifact/org.apache.commons/com ...
随机推荐
- Windows server 2012 卸载iis 黑屏
转载:https://jingyan.baidu.com/article/ff42efa9fb6f16c19e2202dc.html 1 按 ctrl+alt+end 键,新建运行任务 ,输入cmd ...
- 【BZOJ2208】【JSOI2010】连通数 传递闭包
题目描述 定义一个图的连通度为图中可达顶点对的数目.给你一个\(n\)个点的有向图,问你这个图的连通度. \(n\leq 2000,m\leq n^2\) 题解 一个很简单的做法就是传递闭包:像flo ...
- jqGrid 手册 - 搜索
搜索 类型: colModel Options Toolbar Searching Custom Searching Single field searching Advanced Searching ...
- 【hihocoder 1628】K-Dimensional Foil(线性代数)
hihocoder 1627 The 2017 ACM-ICPC Asia Beijing Regional Contest 北京区域赛 B.K-Dimensional Foil 题意 给定N个点的前 ...
- iptables(3)
----------------------------iptables企业应用 ****************************单机防火墙列表#!/bin/bash#============ ...
- CF1142C U2(计算几何,凸包)
题目大意:平面上有 $n$ 个点,第 $i$ 个点是 $(x_i,y_i)$.问有多少条抛物线(二次项系数为 $1$),经过这些点中不同的两个点,并且内部(不含边界)没有任何这些点.重合的抛物线只算一 ...
- centos7安装mysql5.6(rpm包安装)
应用场景:日常需求安装数据库——MySQL. 安装环境:① 最小化安装的centos7.2(同版本RHEL7适用): ② MySQL 5.6: 具体步骤: 1. 下载mysql 5.6并解压(官网有时 ...
- Electron入门笔记(一)-自己快速搭建一个app demo
Electron学习-快速搭建app demo 作者: 狐狸家的鱼 Github: 八至 一.安装Node 1.从node官网下载 ,最好安装.msi后缀名的文件,新手可以查看安装教程进行安装. 2. ...
- JS截取文件后缀名
let fileName = this.file.name.lastIndexOf(".");//取到文件名开始到最后一个点的长度 let fileNameLength = thi ...
- 洛谷P1896 互不侵犯
又是一道状压DP求方案数的题... 多了一个放k个的限制,于是我们把数组多开一维. f[i][j][k]表示前i行放了j个,第i行状态为k的方案数. 然后老套路DFS转移,这次要多记录一个cnt表示上 ...