区别1:安全性方面
在表单中,method取值post或get,其主要区别体现在数据发送方式和接收方式上:get方式在通过URL提交数据时,提交信息会显示在地址栏中。一般说来,应尽量避免使用get方式提交表单,因为这样有可能会导致安全问题。例如,在登录表单中用get方式,用户输人的用户名和密码将在地址栏中暴露无遗。在开发Web程序时,一定会接触到表单信息的提交以及接收,因此不可避免地会使用request对象以及使用post提交表单。
给几个图吧:
POST:
GET:
区别2:乱码方面
书上相关的知识我举个例子:
先用GET方法举例:
<%@ page language="java" contentType="text/html; charset=gbk"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Insert title here</title>
<style>
body {text-align: center}
</style>
</head>
<body>
<form action="4_messy1.jsp" method="get">
<label>请输入提交内容:</label><input type="text" name="text">
<input type="submit" value="提交">如何出现乱码<br>
</form>
<%
if(request.getParameter("text")!=null){%>
<%=request.getParameter("text") %><!-- out.print(request.getParameter("text")); -->
<%}
%>
</body>
</html>
这里charset设置的gbk,提交数据后显示的结果如图 :
(仅提交的数据乱码)
如果把gbk改成utf-8:
如果把utf-8改成iso-8859-1:
(不论是页面本身的内容还是提交的数据都是乱码)
如果把传值方式改成post(注意:charset此时为utf-8):
如果在第一次使用request.getParameter()方法前加上request.setCharacterEncoding(“utf-8”);:
另外get方法对数据传输的长度有限制,而post没有!