转自: http://joe5456536.blog.163.com/blog/static/8537477320123176154590/
表单form中的“method=get”与“method=post”的区别:
使用get时,form数据集被附加到form元素的action属性所指定的URI后面。使用post时,form数据集被包装在请求的body中并被发送。
区别:
1、 安全性
如果用get提交一个验证用户名和密码的form,一般认为是不安全的,因为用户名和密码将出现在URL上,进而出现在浏览器的历史记录中。显然,在对安全性有要求的情况下,应该使用post。
2、 编码
get只能向服务器发送ASCII字符,而post则可以发送整个ISO10646(Unicode)中的字符。
3、 提交的数据长度
IE将请求的URL长度限制为2083个字符,从而限制了get提交的数据长度,如果URL超出了这个限制,提交form时IE不会有任何反映。
4、 缓存
由于一个get得到的结果直接对应到一个URI,所以get的结果页面有可能被浏览器缓存。而post一般则不能
5、 引用和SEO
可以用一个URI引用一个get的结果页面,而post的结果则不能,所以必然不能被搜索引擎搜到。
请求中的中文显示
由于Tomcat/Jboss Server 对请求字符串的编码为ISO8895-1,而ISO8859-1只支持英文和西欧文字,不支持中文字符,所以当为中文字符时,会出现乱码。为了解决这种问题通常有以下的办法:
① 当form表单中的method=”GET”时,要在Tomcat/JBoss6.0 中的server.xml 中的
<Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443"/>
添加 URIEncoding="UTF-8"
<a href="welcome.jsp?name=王二">王二</a> 用上面的方法也能显示中文
② 当form表单中的method=”POST”时,需要在Servlet Class 文件中添加request.setCharacterEncoding("UTF-8");
或是写个Filter Class 文件:
public class SetCharacterEncodingFilter implements Filter {
protected String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true;
@Override
public void destroy() {
this.encoding = null;
this.filterConfig = null;
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws
IOException,ServletException{
if (ignore || (request.getCharacterEncoding() == null)) {
String characterEncoding = selectEncoding(request);
if (characterEncoding != null)
request.setCharacterEncoding(characterEncoding);
}
// Pass control on to the next filter
chain.doFilter(request, response);
}
@Override
public void init(FilterConfig fConfig) throws ServletException {
this.filterConfig = fConfig;
this.encoding = fConfig.getInitParameter("encoding");
String value = fConfig.getInitParameter("ignore");
if (value == null) this.ignore = true;
else if (value.equalsIgnoreCase("true")) this.ignore = true;
else if (value.equalsIgnoreCase("yes")) this.ignore = true;
else this.ignore = false;
}
protected String selectEncoding( @SuppressWarnings("unused") ServletRequest request){
return (this.encoding);
}
}
然后在web.xml中添加:
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>com.demo.filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
③ 在Servlet Class 文件中 添加:
String username = request.getParameter("username");
username = new String(username.getBytes("ISO8859-1"),"UTF-8");
这种方法对“GET”和“POST”都有效。
在JPS文件中要把所有的charSet值都要改为“UTF-8”:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
字符集兼容顺序:ASCII →ISO8859-1→GB2312→GBK→GB18030→ISO10646/Unicode(UTF-8)
ASCII:只支持英文。ISO8859-1支持英文和西欧文字。BG2312、GBK、GB18030支持英文、西欧文、中文。
ISO10646/Unicode(UTF-8)支持全球所有文字。
分享到:
相关推荐
浅析Get与Post的区别 Get和Post是两种常用的表单提交方式,在Web开发中经常被使用。但是,很多人并不了解这两种方式的区别,导致在实际开发中出现问题。本文将详细阐述Get和Post的区别,以便读者更好地理解和使用这...
"GET与POST的区别" GET和POST是HTTP协议中两种最常用的请求方法,它们都是用来从客户端向服务器端发送请求的,但它们之间有很多不同之处。 GET方法 GET方法是从服务器上获取数据的请求方法。它的主要特点是将参数...
### AJAX POST 与 GET 提交的区别详解 #### 一、GET与POST基本概念及应用场景 在探讨AJAX中GET和POST的区别之前,我们先来了解一下这两种请求方式的基本概念。 **GET**请求通常用于获取资源信息,它将参数拼接到...
HTML的Form是网页中用于收集用户输入数据的重要元素,它提供了两种主要的提交方式:GET和POST。这两种方法在处理用户交互和数据传输时有着不同的特性和用途。 **GET方法** GET方法是最常见的一种提交方式,它将表单...
例如,假设我们有一个表单,包含一个文本框,名称为“Text”,那么在get方式中,提交的URL将是“getpost.asp?Text=http://leewei.blogchina.com”。而在post方式中,表单内各个字段与其内容将被放置在HTML HEADER内...
### GET与POST方法的区别 在Web开发中,GET与POST是最常见的两种HTTP请求方式,它们在功能、安全性、数据传输等方面存在显著差异。本文将基于提供的文件内容对这两种方法进行详细解析。 #### 1. 基本概念 - **GET...
本文将深入探讨GET和POST的区别、应用场景以及VB(Visual Basic)中如何使用它们。 GET和POST是HTTP请求的核心方法,用于从服务器获取数据或向服务器发送数据。GET主要用于从服务器获取资源,它的参数通常显示在URL...
#### GET与POST的区别 - **数据位置**:GET方法将参数附加在URL中,而POST方法将参数放在请求体中。 - **安全性**:由于GET方法将参数暴露在URL中,因此不适合传输敏感信息;POST方法相对更安全。 - **数据大小限制...
Ajax 技术中 get 与 post 两种请求方式是许多开发者经常遇到的疑问,以下将详细解释两者的区别,并提供实例代码。 一、get 与 post 的基本区别 1. 参数传递方式:get 请求将参数数据队列加到提交表单的 ACTION ...
#### 四、GET与POST的主要区别 1. **数据位置**:GET将参数数据队列加到URL中,而POST则将数据放在HTTP消息头内。 2. **数据可见性**:GET方式数据可见,而POST方式数据不可见。 3. **数据大小**:GET方式的数据量...
总结来说,C#中的GET和POST请求是与服务器交互的基础,它们分别适用于不同的数据传输场景。GET请求用于获取信息,数据通过URL传递;而POST请求用于提交数据,数据包含在请求体中,适合传递大量或敏感信息。在C#的Web...
在Form表单提交中,POST方法会将表单数据封装在请求体中发送到服务器,而不是像GET那样将其附加到URL后面。这样可以确保数据的安全性,并且对数据长度没有限制。 二、C#实现POST表单提交的步骤 1. 创建HTTP客户端:...
### jsp中post和get传输方式的区别 在Web开发领域,特别是使用Java Server Pages (JSP) 进行网页开发时,GET与POST是两种最常见的HTTP请求方法。这两种方法各有其适用场景及特点,理解它们之间的区别对于提高网站的...
了解了这些基础知识后,你可以创建一个简单的HTML页面,如`formsubmit.html`,用来模拟对某个API的GET和POST请求,特别是使用JSON格式传递POST数据。这对于测试API接口或者进行前端开发验证非常有帮助。通过这种方式...
一、HTTP GET与POST的区别 1. GET:主要用来获取资源,它是幂等的,即多次执行同一个GET请求,结果是一样的。参数通过URL传递,显示在地址栏中,一般对数据量有限制,通常不超过2KB。 2. POST:常用于提交数据,可以...
一个很简单很实用的将html中的a标签的get提交转换成form的post提交的小插件
**ASP.NET中的GET与POST处理**: 在ASP.NET中,我们通常使用ASPX页面来处理HTTP请求。对于GET请求,参数会出现在URL中,可以直接通过`Request.QueryString`访问;而对于POST请求,数据在请求体中,我们可以使用`...
首先,让我们了解一下GET和POST的区别。GET方法是向服务器发送一个查询,通常用于获取资源,例如网页、图片等。它将参数附加到URL上,因此请求的数据量有限,且请求历史会被浏览器记录。POST方法则更适用于提交数据...
在Go语言中,Gin框架是一个...总结,Gin框架在处理GET和POST请求参数时提供了多种方法,包括从URL查询字符串、JSON请求体以及Form数据中获取参数。这使得Gin成为构建Web服务的强大工具,特别是在Go语言的生态系统中。