简要回答get方式和post方式有什么区别?
时间: 2023-11-01 17:06:29 浏览: 88
GET方法和POST方法都是HTTP协议中常用的方法,主要用于客户端向服务器提交数据。它们的区别如下:
1. GET方法将请求信息放在URL参数中,而POST方法将请求信息放在HTTP请求体中。
2. GET方法提交的数据量有限,通常不超过2KB,而POST方法提交的数据量没有限制。
3. GET方法提交的数据在URL中可见,不安全;而POST方法提交的数据在HTTP请求体中,不可见,相对较安全。
4. GET方法请求的数据不会被缓存,而POST方法请求的数据可以被缓存。
相关问题
请简要说明get与post提交方式的区别
HTTP协议中,GET和POST是两种常用的请求方法。
GET方法通过URL向服务器请求数据,请求参数包含在URL的后面,以?分隔;POST方法通过请求体向服务器提交数据,请求参数包含在请求体中。
具体区别如下:
1. GET提交的数据会显示在URL中,而POST提交的数据不会显示在URL中。
2. GET提交的数据量有限制,一般不超过2KB;POST提交的数据量没有限制。
3. GET方法请求数据时,浏览器会向服务器发送一个完整的请求,服务器响应后返回数据。而POST方法请求数据时,浏览器会分成两个步骤,先发送一个请求头,服务器响应100 Continue,然后浏览器再发送数据。这也是POST方法相对于GET方法较慢的原因之一。
4. GET方法请求数据时,浏览器会缓存已经请求过的数据,如果再次请求相同的数据,浏览器会直接从缓存中读取数据。而POST方法请求数据时,浏览器不会缓存数据,每次请求都需要重新发送数据。
总之,GET方法适用于请求数据量小、不需要保密的场景,比如搜索、查询等;POST方法适用于请求数据量大、需要保密的场景,比如登录、注册等。
采用GET、POST方式请求表单方式提交用户名、密码,Servlet获取提交表单参数
在Web应用中,当你通过GET或POST方式提交表单数据到Servlet时,通常涉及到HTML表单的构建以及服务器端(如Java Servlet)的数据处理。以下是简要步骤:
**1. HTML表单提交:**
在HTML页面上创建一个表单,使用`<form>`标签,设置method属性为"GET"或"POST",然后添加输入字段如`<input type="text" name="username">`和`<input type="password" name="password">`,这两个字段分别对应用户输入的用户名和密码。
**GET方式示例:**
```html
<form action="/servlet/Login" method="get">
<input type="text" name="username">
<input type="password" name="password">
<input type="submit" value="登录">
</form>
```
在GET方法中,参数会附加在URL后面,以?分割查询字符串。
**POST方式示例:**
```html
<form action="/servlet/Login" method="post">
<input type="text" name="username">
<input type="password" name="password">
<input type="submit" value="登录">
</form>
```
在POST方法中,参数不会显示在URL中,而是包含在请求体中。
**Servlet获取参数:**
在Servlet (`LoginServlet.java`) 中,你可以使用`HttpServletRequest`对象来获取这些参数。例如,对于GET方法:
```java
String username = request.getParameter("username");
String password = request.getParameter("password");
```
而对于POST方法,由于数据在请求体中,你需要读取请求体:
```java
// 需要添加MultipartConfigServletContainerInitializer或实现javax.servlet.Servlet3RequestWrapper
request.setCharacterEncoding("UTF-8");
StringBuffer inputData = new StringBuffer();
InputStream is = request.getInputStream();
byte[] buffer = new byte[1024];
int length;
while ((length = is.read(buffer)) > 0) {
inputData.append(new String(buffer, 0, length));
}
String postData = inputData.toString();
```
最后解析`postData`获取用户名和密码。
阅读全文