Java小白手修炼手册--第二阶段--Java SE--HTTP 请求方法:GET 和 POST表单解析

目录

HTTP 请求方法:GET 和 POST

Get/Post表单解析

Get

Get消息

Post

Post消息

Form表单

From工作原理:

属性

请求常用的请求方式?区别在哪?


HTTP 请求方法:GET 和 POST

Get/Post表单解析

Get

Get---从指定的资源请求数据。

GET:请求参数放在请求地址的后面,请求参数有大小限制只能传递几k的数据,而参数在地址栏中可以看到所以不能传递敏感信息(密码)

  • 浏览器地址栏发出的请求是get
  • 超链接发出的请求是get
  • form表单默认发出的请求是get

Get消息

请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的:

/test/demo_form.asp?name1=value1&name2=value2

有关 GET 请求的其他一些注释:

  • GET 请求可被缓存
  • GET 请求保留在浏览器历史记录中
  • GET 请求可被收藏为书签
  • GET 请求不应在处理敏感数据时使用
  • GET 请求有长度限制
  • GET 请求只应当用于取回数据

Post

Post--- 向指定的资源提交要被处理的数据

Post:请求参数放在请求体里面用户看不到,而且没有大小限制通常.上传文件时或者传递敏感信息时使用POST

只有form表单设置method="post"时发出的才是post请求

Post消息

请注意,查询字符串(名称/值对)是在 POST 请求的 HTTP 消息主体中发送的:

POST /test/demo_form.asp HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2

有关 POST 请求的其他一些注释:

  • POST 请求不会被缓存
  • POST 请求不会保留在浏览器历史记录中
  • POST 不能被收藏为书签
  • POST 请求对数据长度没有要求

 

Form表单

表单在网bai页中主要负责数据采集功能。一个表单有du三个基本组成部分: 表单标zhi签:这里面包含了处理表单数dao据所用CGI程序的URL以及数据提交到服务器的方法。 表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。 表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。

表单数据是指通过表单让用户填写内容,然后提交到服务器上;这些数据被称之为表单数据.

 

From工作原理:

相当于一个控件集合,里面包含很多控件,点“提交”后会把表单中的所有控件的值都传给action到的页面,这里通过post方法传递时会隐藏表单中的所有值,当通过GET方法传递时,可以在URL地址栏看到?号后所跟的值,也就是表单里所有的值.

<form name="表单名" action="a.jsp" method="post">
用户名:<input type=text name="username" >
密码:<input type=text name="password" >
<input type=submit value="提交">

属性

  • action {URL}:一个URL地址,里面写的是url链接,接就是表单提交的地址。

  • method {get/post}:里面写的是数据提交的方式,可以写入get或者post,指定表单以何种方式发送到指定的页面。
    指定的值有:get :form表单里所填的值,附加在action指定的URL后面,做为URL链接而传递。
          post :form表单里所填的值,附加在HTML Headers上。

  • enctype属性,提交数据的编码格式

文本框:
<input type="text" name="username" value="xxx" 
maxLength="5"  readonly="readonly" placeholder="xxxx" >
密码框
<input type="password" name="pwd" value="xxx" maxLength="5" readonly=" readon1y" .
placeholder="xxxx" >
单选
<input id="xxx" type="radio" name="xxx" value="xx"  checked="checked"
< label for=" xxx">xxx</label>
多选
<input id="xxx" type=" checkbox" name="xxx" value="xx" checked=" checked">
日期
<input type="date" name="xxx*">
文件
<input type="file" name="xxxx">
文本域
<textarea name="xxx" cols="20" rows="5" placeholder="xxxx"></textarea>
下拉选 city=bj
	<select name="city">
		<option value="bj">北京</option>
		<option>xxxx</option>
		<option>xxxx< /option>
	</select>

案例演示 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<!-- action 提交地址  
		form表单中所有属性必须要有name属性 不然参数不会传递-->
		<form action="http://www.tmooc.cn" method="get">
			<!-- 文本框  value 设置默认值 placeholder占位文本
				maxlength 最大字符长度 -->
			<input  type="text" name="username" 
			value="小明" placeholder="请输入用户名" 
			maxlength="5"  readonly="readonly"/><!-- readonly 只读 -->
			<!-- type="password" 密码掩饰 -->
			<input type="password" name="pwd" 
			 placeholder="请输入密码"/>
			 <hr >
			 <!-- 单选 必须写value 如果不写 提交过去的内容都是on
			 checked 默认选中  radio 发送-->
			 性别:<input type="radio" name="gender" value="m" checked="checked"/>男
			<input type="radio" name="gender" value="f" id="f"/>
			<!-- label 作用扩充点击范围 点击字触发单选 for和上面的id对应 -->
			<label for="f">女</label>
			<hr >
			<!-- 多选  checkbox 复选框多选 hobby 爱好-->
			兴趣爱好:<input type="checkbox" name="hobby"  value="sy" />抽烟
			<input type="checkbox" name="hobby"  value="hj" />喝酒
			<input type="checkbox" name="hobby"  value="tt" checked="checked"/>烫头
			
			<hr >
			<!-- type="date" 日期选择器 -->
			生日:<input type="date" name="birthday" />
			
			<hr ><!-- type="文件file" 文件选择 后面上传会用到 -->
			靓照:<input type="file" name="pic"/>
			
			<hr >
			<!-- 文本域 获取多行文本 rows 行  cols 列 -->
			自我介绍:<textarea name="intro" rows="4" cols="20"
			placeholder="说点什么...."></textarea>
			
			<hr >
			<!-- 下拉选 -->
			所在城市<select name="city">
				<option value="bj">北京</option>
								<!-- selected="selected"默认选中 写在哪里 默认选哪 -->
				<option value="sh" selected="selected">上海</option>
				<option value="hz">深圳</option>
			</select>
			
			<input type="submit" value="注册"/>
		</form>
	</body>
</html>

请求常用的请求方式?区别在哪

  • post 和 get 方式

在from表单中有一个method属性,定义提交表单中的数据给服务器的方式,其中我们常用的有get和post两种方式,二者区别如下:

1、 get方式发送请求是会将表单所有数据拼接成key=value的形式,拼接在URL中向服务器传输信息;post方式发送请求时浏览器URL并不发生变化,但数据会通过浏览器后台传输给服务器,
2、get方式发送请求时的URL为表单数据的拼接,如果输入的是密码,则密码会显示在url上,不安全;post方式发送请求时浏览器URL并不发生变化,安全性更可靠
3、浏览器地址栏的url链接的长度有限制,如果采用get方式;而表单输入信息过多,会导致请求拼装的URL超出长度限制,采用post方式不会有表单数据长度的限制,故post适用于数据的增加和修改故
4、get是用来从服务器上获得数据,而post是用来向服务器上传递数据
如果提交请求纯粹只是从服务器端获取数据而不是进行其他操作,并且多次提交不会有明显的副作用,应该使用get(适用于数据的查询获取)。
如果提交这个请求会产生其他操作和影响,就应该使用post(适用于数据的增删改)。
如:修改服务器上数据库中的数据;发送一封邮件;删除一个文件等

 

常用的两种请求方式

重点

传输数据形式

传输

安全

get

从服务器上获取资源

通过URL请求,以filed(字段)=value的形式,置于URL后,并用"?"连接,多个请求数据之间用"&"连接,以地址栏的形式传递给服务端,这个过程用户是可见的

传输量小,因为受URL长度限制,效率URL长度限制,效率

不安全,因为URL是可见的,可能会泄露私密信息,如密码等

post

向服务器发送数据

把提交上来的数据全部被包含在请求的消息正文中,提交上来的

可以传输大量数据,当表单含有用户隐私信息或者有上传附件操作时,必须使用post请求。

较get安全

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值