jsp学习笔记——HTML表单
2015-01-05 19:57
176 查看
关于HTML请求的内容可以参考前一章节http://blog.csdn.net/u010724039/article/details/42291985,HTML的请求有两个主要的请求方法,为get和post方法,get方法可以为html超链接(也就是<a></a>格式内容)提交请求,也可以为html表单提交请求,post方法只能为html表单提交请求,并且实现与get方法不同。下面是一个html表单方法:
<html>
<body>
<form action="main.jsp" method="GET">
First Name: <input type="text" name="first_name">
<br />
Last Name: <input type="text" name="last_name" />
<input type="submit" value="Submit" />
</form>
</body>
</html>
如果要实现get方法请求,比如在表单中输入first_name的值为a,last_name值为b,则其http请求的内容如下所示:
GET /hello/checkUser.html?first_name=a&last_name=b HTTP/1.1
Referer: http://localhost:8000/hello/index.html
Accept: */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
Host: localhost:8000
Connection: Keep-Alive
Cookie: JSESSIONID=BBBA54D519F7A320A54211F0107F5EA6
注意:并没有请求主体,仅有一个空行
如果实现post方法请求,http请求内容则如下:
POST /hello/checkUser.html?opt=xxx HTTP/1.1
Referer: http://localhost:8000/hello/index.html
Accept: */*
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: localhost:8000
Content-Length: 20
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: JSESSIONID=BBBA54D519F7A320A54211F0107F5EA6
first_name=a&last_name=b
注意:此时在空行之后,有请求主体。
可以看到无论是get或者是post请求,都是由浏览器生成的,只是get方式会将表单数据进行URL Encoding转换为URL方式进行提交,并且原网址与编码之后的信息用?隔开。而post方式则不需要这一操作,仅将表单数据作为请求主体内容发出,但是存在问题的是,post方法不能使用非法字符,要对字符进行URL Encoding转换。关于转换规则如下:
-字母数字字符 "a" 到 "z"、"A" 到 "Z" 和 "0" 到 "9" 保持不变。
-特殊字符 "."、"-"、"*" 和 "_" 保持不变。
-空格字符 " " 转换为一个加号 "+"。
-所有其他字符都是不安全的,认为是非法字符,因此首先使用一种编码机制将它们转换为一个或多个字节。然后对每个字节用一个包含 3 个字符的字符串 "%xy" 表示,其中 xy 为该字节的两位十-六进制表示形式。推荐的编码机制是 UTF-8。
<html>
<body>
<form action="main.jsp" method="GET">
First Name: <input type="text" name="first_name">
<br />
Last Name: <input type="text" name="last_name" />
<input type="submit" value="Submit" />
</form>
</body>
</html>
如果要实现get方法请求,比如在表单中输入first_name的值为a,last_name值为b,则其http请求的内容如下所示:
GET /hello/checkUser.html?first_name=a&last_name=b HTTP/1.1
Referer: http://localhost:8000/hello/index.html
Accept: */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
Host: localhost:8000
Connection: Keep-Alive
Cookie: JSESSIONID=BBBA54D519F7A320A54211F0107F5EA6
注意:并没有请求主体,仅有一个空行
如果实现post方法请求,http请求内容则如下:
POST /hello/checkUser.html?opt=xxx HTTP/1.1
Referer: http://localhost:8000/hello/index.html
Accept: */*
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: localhost:8000
Content-Length: 20
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: JSESSIONID=BBBA54D519F7A320A54211F0107F5EA6
first_name=a&last_name=b
注意:此时在空行之后,有请求主体。
可以看到无论是get或者是post请求,都是由浏览器生成的,只是get方式会将表单数据进行URL Encoding转换为URL方式进行提交,并且原网址与编码之后的信息用?隔开。而post方式则不需要这一操作,仅将表单数据作为请求主体内容发出,但是存在问题的是,post方法不能使用非法字符,要对字符进行URL Encoding转换。关于转换规则如下:
-字母数字字符 "a" 到 "z"、"A" 到 "Z" 和 "0" 到 "9" 保持不变。
-特殊字符 "."、"-"、"*" 和 "_" 保持不变。
-空格字符 " " 转换为一个加号 "+"。
-所有其他字符都是不安全的,认为是非法字符,因此首先使用一种编码机制将它们转换为一个或多个字节。然后对每个字节用一个包含 3 个字符的字符串 "%xy" 表示,其中 xy 为该字节的两位十-六进制表示形式。推荐的编码机制是 UTF-8。
相关文章推荐
- JSP学习笔记(二)-----使用Tomcat运行JSP文件
- JSP学习笔记(三)-----使用JSP处理用户注册和登陆
- JSP学习笔记(九)-----JSP标签库
- jsp学习笔记(2)
- JSP学习笔记一
- 学习EJB for JBoss 3.2笔记(2)测试jsp
- Jsp&Servelet 学习笔记-编译一个servlet
- Java开发学习笔记之十一:开始JSP之旅
- 动态网页学习:JSP学习笔记全记录
- jsp学习笔记1
- jsp---学习笔记(五)核心技术-语法详解
- JSP学习笔记(八)-----include的运用
- JSP学习笔记(七)-----猜数字游戏
- JSP学习笔记__JSP标签库
- JSP学习笔记
- JSP学习笔记(五)-----JSP中使用JavaBean
- JSP学习笔记(四)-----JSP动作的使用
- jsp---学习笔记(三)配置weblogic+JB X
- Jsp&Servelet 学习笔记-写出一个 servelet 程序
- Jsp&Servelet 学习笔记-第一个jsp程序介绍