当前位置:文档之家› curl返回常见错误码

curl返回常见错误码

curl返回常见错误码
curl返回常见错误码

curl返回常见错误码

CURLE_UNSUPPORTED_PROTOCOL(1)

你的URL传递给libcurl的使用协议,这libcurl的不支持。支持可能是你没有使用一个编译时的选项,它可以是一个拼写错的协议字符串,或者只是一个协议的libcurl没有代码。

CURLE_FAILED_INIT(2)

非常早期的初始化代码失败。这可能是内部错误或问题,资源问题,一些基本的东西可能无法完成初始化时间。

CURLE_URL_MALFORMAT(3)

该网址的格式不正确。

CURLE_NOT_BUILT_IN(4)

libcurl的内置在一个编译时决定所要求的功能,协议或购股权没有被发现。这意味着,一个功能或选项是不启用或明确禁用的libcurl建时,为了得到它的功能,你必须得到一个重建的libcurl的。

CURLE_COULDNT_RESOLVE_PROXY(5)

无法解析代理服务器。代理主机无法得到解决。

CURLE_COULDNT_RESOLVE_HOST(6)

无法解析主机。给定的远程主机没有得到解决。

CURLE_COULDNT_CONNECT(7)

connect()的主机或代理失败。

CURLE_FTP_WEIRD_SERVER_REPLY(8)

连接到一个FTP服务器后,libcurl的预期得到一定的回复返回。这个错误代码表示,它有一个奇怪的或坏的答复。指定的远程服务器可能不是一个确定的FTP服务器。

CURLE_REMOTE_ACCESS_DENIED(9)

我们被拒绝访问的资源的URL。对于FTP,发生这种情况而力图改变的远程目录。

CURLE_FTP_ACCEPT_FAILED(10)

在等待服务器的连接时,一个主动FTP会话使用,被送到控制连接或类似的错误代码。

CURLE_FTP_WEIRD_PASS_REPLY(11)

发送到服务器的FTP密码后,libcurl的预计正确的答复。此错误代码指示返回了意外的代码。

CURLE_FTP_ACCEPT_TIMEOUT(12)

在当前的FTP会话在等待服务器连接,CURLOPT_ACCEPTTIMOUT_MS(或内部默认),超时过期。

CURLE_FTP_WEIRD_PASV_REPLY(13)

libcurl的失败作为一个PASV或EPSV命令从服务器得到一个合理的结果。服务器是有缺陷的。

CURLE_FTP_WEIRD_227_FORMAT(14)

FTP服务器返回一个227行作为一个PASV命令的响应。如果libcurl的无法解析该行,此返回代码被传递回。

CURLE_FTP_CANT_GET_HOST(15)

内部故障查找主机使用新的连接。

CURLE_FTP_COULDNT_SET_TYPE(17)

收到一个错误,当试图传送模式设置为二进制或ASCII。

CURLE_PARTIAL_FILE(18)

文件传输,短于或大于预期。发生这种情况时,服务器首先报告预期的传输大小,然后提供数据不匹配前面给出的大小。

CURLE_FTP_COULDNT_RETR_FILE(19)

这是一个奇怪的回答“RETR”命令或一个零字节传输完成。

CURLE_QUOTE_ERROR(21)

当发送到远程服务器,自定义的“QUOTE”命令的一个命令返回的错误代码为400或更高(对于FTP)或表示不成功的完成命令。

CURLE_HTTP_RETURNED_ERROR(22)

这是返回CURLOPT_FAILONERROR设置为TRUE和HTTP服务器返回的错误代码是> = 400。

CURLE_WRITE_ERROR(23)

发生错误,写作时接收到的数据到本地文件,或者返回错误libcurl的一个写回调。

CURLE_UPLOAD_FAILED(25)

开始上载失败。对于FTP,服务器通常否认的STOR命令。通常的错误缓冲区包含了服务器的解释。

CURLE_READ_ERROR(26)

有一个问题读取本地文件或返回一个错误的读回调。

CURLE_OUT_OF_MEMORY(27)

内存分配请求失败。这是严重的不良和活动,如果发生过严重搞砸了。

CURLE_OPERATION_TIMEDOUT(28)

操作超时。根据条件达到指定的超时期间。

CURLE_FTP_PORT_FAILED(30)

FTP PORT命令返回错误。这主要是当你还没有足够的地址指定了一个良好的libcurl的使用。SeeCURLOPT_FTPPORT。

CURLE_FTP_COULDNT_USE_REST(31)

FTP REST命令返回错误。如果服务器是明智的,这不应该发生。

CURLE_RANGE_ERROR(33)

服务器不支持或接受范围请求。

CURLE_HTTP_POST_ERROR(34)

这是一个奇怪的错误,主要发生是由于内部的混乱。

CURLE_SSL_CONNECT_ERROR(35)

出现问题的地方,在SSL / TLS握手。你真正想要的的错误缓冲区和阅读邮件,因为它针对问题稍微。可能是证书(文件格式,路径,权限),密码,和其他人。

CURLE_BAD_DOWNLOAD_RESUME(36)

下载无法恢复,因为指定的偏移量为文件的边界。

CURLE_FILE_COULDNT_READ_FILE(37)

无法打开的文件FILE :/ /。最有可能的,因为该文件的路径不能识别现有文件。你是否检查文件的权限?

CURLE_LDAP_CANNOT_BIND(38)

LDAP无法绑定。LDAP绑定操作失败。

CURLE_LDAP_SEARCH_FAILED(39)

LDAP搜索失败。

CURLE_FUNCTION_NOT_FOUND(41)

函数没有找到。一个必需的zlib的功能没有被发现。

CURLE_ABORTED_BY_CALLBACK(42)

通过回调中止。返回的回调“中止”libcurl的。

CURLE_BAD_FUNCTION_ARGUMENT(43)

内部错误。函数调用了一个错误的参数。

CURLE_INTERFACE_FAILED(45)

接口错误。指定的出接口不能使用。设置接口使用传出连接的源IP地址与CURLOPT_INTERFACE。

CURLE_TOO_MANY_REDIRECTS(47)

过多的重定向。以下重定向时,libcurl的创下的最高金额。设置您的与CURLOPT_MAXREDIRS

限制。

CURLE_UNKNOWN_OPTION(48)

无法识别的选项传递给libcurl的/。请参阅相应的文档。这是最有可能在程序中使用libcurl的问题。的的错误缓冲区可能包含准确的选项,它涉及更具体的信息。

CURLE_TELNET_OPTION_SYNTAX(49)

telnet选项字符串被非法格式化。

CURLE_PEER_FAILED_VERIFICATION(51)

远程服务器的SSL证书或SSH的MD5指纹被认为是不正常的。

CURLE_GOT_NOTHING(52)

没有从服务器返回的,和得到什么的情况下,被认为是一个错误。CURLE_SSL_ENGINE_NOTFOUND(53)

未找到指定的加密引擎。

CURLE_SSL_ENGINE_SETFAILED(54)

设置所选的SSL加密引擎,默认情况下失败!

CURLE_SEND_ERROR(55)

发送网络数据失败。

CURLE_RECV_ERROR(56)

如果接收网络数据。

CURLE_SSL_CERTPROBLEM(58)

与当地的客户端证书的问题。

CURLE_SSL_CIPHER(59)

无法使用指定的密码。

CURLE_SSL_CACERT(60)

同侪凭证不能与已知的CA证书进行身份验证。

CURLE_BAD_CONTENT_ENCODING(61)

无法识别的传输编码。

CURLE_LDAP_INVALID_URL(62)

无效的LDAP URL。

CURLE_FILESIZE_EXCEEDED(63)

最大文件大小超过。

CURLE_USE_SSL_FAILED(64)

要求FTP SSL水平失败。

CURLE_SEND_FAIL_REWIND(65)

在做了一个发送操作卷曲,倒带重传的数据,但的倒带操作失败。CURLE_SSL_ENGINE_INITFAILED(66)

SSL发动机启动失败。

CURLE_LOGIN_DENIED(67)

远程服务器拒绝卷曲登录(加入7.13.1)

CURLE_TFTP_NOTFOUND(68)

TFTP服务器上找不到文件。

CURLE_TFTP_PERM(69)

TFTP服务器上的权限问题。

CURLE_REMOTE_DISK_FULL(70)

出在服务器上的磁盘空间。

CURLE_TFTP_ILLEGAL(71)

非法的TFTP操作。

CURLE_TFTP_UNKNOWNID(72)

未知TFTP传输ID。

CURLE_REMOTE_FILE_EXISTS(73)

文件已经存在,并不会被覆盖。

CURLE_TFTP_NOSUCHUSER(74)

这个错误不应该被返回正常工作的TFTP服务器。CURLE_CONV_FAILED(75)

字符转换失败。

CURLE_CONV_REQD(76)

调用者必须注册转换回调。

CURLE_SSL_CACERT_BADFILE(77)

问题读取SSL证书(路径的访问权限?)CURLE_REMOTE_FILE_NOT_FOUND(78)不存在的URL引用的资源。

CURLE_SSH(79)

未指定的错误发生在SSH会话。

CURLE_SSL_SHUTDOWN_FAILED(80)

关闭SSL连接失败。

CURLE_AGAIN(81)

Socket是没有准备好发送/接收等待,直到它准备好了,然后再试一次。此返回代码仅返回

从curl_easy_recv(3)和(3)(加入7.18.2 curl_easy_send),

CURLE_SSL_CRL_BADFILE(82)

无法加载CRL文件(在7.19.0版加入)

CURLE_SSL_ISSUER_ERROR(83)

发行人检查失败(在7.19.0版加入)

CURLE_FTP_PRET_FAILED(84)

FTP服务器不理解的PRET命令,所有不支持给定的参数。要小心时

usingCURLOPT_CUSTOMREQUEST,自定义列表“命令将发送PRET CMD前PASV以及。(添加在7.20.0)

CURLE_RTSP_CSEQ_ERROR(85)

RTSP的Cseq号码不匹配。

CURLE_RTSP_SESSION_ERROR(86)

RTSP会话标识符不匹配。

CURLE_FTP_BAD_FILE_LIST(87)

无法,解析FTP文件列表(在FTP通配符下载)。

CURLE_CHUNK_FAILED(88)

块回调报告错误。

CURLE_OBSOLETE *

这些错误代码永远不会返回。它们被用来在一个老的libcurl版本,当前未使用

========================================CURL状态码列表(详细)

CURL状态码列表

状态原因解释

状态

0正常访问

1错误的协议未支持的协议。此版cURL 不支持这一协议。

2初始化代码失败初始化失败。

3URL格式不正确URL 格式错误。语法不正确。

4请求协议错误

5无法解析代理无法解析代理。无法解析给定代理主机。

6无法解析主机地址无法解析主机。无法解析给定的远程主机。

7无法连接到主机无法连接到主机。

8远程服务器不可用FTP 非正常的服务器应答。cURL 无法解析服务器发送的数据。

9访问资源错误FTP 访问被拒绝。服务器拒绝登入或无法获取您想要的特定资源或目录。最

有可

能的是您试图进入一个在此服务器上不存在的目录。

11FTP密码错误FTP 非正常的PASS 回复。cURL 无法解析发送到PASS 请求的应答。

13结果错误FTP 非正常的的PASV 应答,cURL 无法解析发送到PASV 请求的应答。14FTP回应PASV命令FTP 非正常的227格式。cURL 无法解析服务器发送的227行。

15内部故障FTP 无法连接到主机。无法解析在227行中获取的主机IP。

FTP 无法设定为二进制传输。无法改变传输方式到二进制。

17设置传输模式为二进

18文件传输短或大于预

部分文件。只有部分文件被传输。

19RETR命令传输完成FTP 不能下载/访问给定的文件,RETR (或类似)命令失败。

21命令成功完成FTP quote 错误。quote 命令从服务器返回错误。

22返回正常HTTP 找不到网页。找不到所请求的URL 或返回另一个HTTP 400或以上

错误。

此返回代码只出现在使用了-f/--fail 选项以后。

23数据写入失败写入错误。cURL 无法向本地文件系统或类似目的写入数据。

25无法启动上传FTP 无法STOR 文件。服务器拒绝了用于FTP 上传的STOR 操作。

26回调错误读错误。各类读取问题。

27内存分配请求失败内存不足。内存分配请求失败。

28访问超时操作超时。到达指定的超时期限条件。

30FTP端口错误FTP PORT 失败。PORT 命令失败。并非所有的FTP 服务器支持PORT

命令,请

尝试使用被动(PASV)传输代替!

31FTP错误FTP 无法使用REST 命令。REST 命令失败。此命令用来恢复的FTP 传输。33不支持请求HTTP range 错误。range "命令"不起作用。

34内部发生错误HTTP POST 错误。内部POST 请求产生错误。

35SSL/TLS握手失败SSL 连接错误。SSL 握手失败。

36下载无法恢复FTP 续传损坏。不能继续早些时候被中止的下载。

37文件权限错误文件无法读取。无法打开文件。权限问题?

38LDAP可没有约束力LDAP 无法绑定。LDAP 绑定(bind)操作失败。

39LDAP搜索失败LDAP 搜索失败。

41函数没有找到功能无法找到。无法找到必要的LDAP 功能。

42中止的回调由回调终止。应用程序告知cURL 终止运作。

43内部错误内部错误。由一个不正确参数调用了功能。

45接口错误接口错误。指定的外发接口无法使用。

47过多的重定向过多的重定向。cURL 达到了跟随重定向设定的最大限额跟48无法识别选项指定了未知TELNET 选项。

49TELNET格式错误不合式的telnet 选项。

peer 的SSL 证书或SSH 的MD5指纹没有确定。

51远程服务器的SSL证

52服务器无返回内容服务器无任何应答,该情况在此处被认为是一个错误。

53加密引擎未找到找不到SSL 加密引擎。

54设定默认SSL加密失

无法将SSL 加密引擎设置为默认。

55无法发送网络数据发送网络数据失败。

56衰竭接收网络数据在接收网络数据时失败。

57

58本地客户端证书本地证书有问题。

59无法使用密码无法使用指定的SSL 密码。

60凭证无法验证peer 证书无法被已知的CA 证书验证。

61无法识别的传输编码无法辨识的传输编码。

62无效的LDAP URL无效的LDAP URL。

63文件超过最大大小超过最大文件尺寸。

64FTP失败要求的FTP 的SSL 水平失败。

65倒带操作失败发送此数据需要的回卷(rewind)失败。

66SSL引擎失败初始化SSL 引擎失败。

67服务器拒绝登录用户名、密码或类似的信息未被接受,cURL 登录失败。68未找到文件在TFTP 服务器上找不到文件。

69无权限TFTP 服务器权限有问题。

70超出服务器磁盘空间TFTP 服务器磁盘空间不足。

71非法TFTP操作非法的TFTP 操作。

72未知TFTP传输的ID未知TFTP 传输编号(ID)。

73文件已经存在文件已存在(TFTP) 。

74错误TFTP服务器无此用户(TFTP) 。

75字符转换失败字符转换失败。

76必须记录回调需要字符转换功能。

77CA证书权限读SSL 证书出现问题(路径?访问权限?) 。

URL 中引用的资源不存在。

78URL中引用资源不存

79错误发生在SSH会话SSH 会话期间发生一个未知错误。

80无法关闭SSL连接未能关闭SSL 连接。

81服务未准备

82无法载入CRL文件无法加载CRL 文件,丢失或格式不正确(在7.19.0版中增加) 。83发行人检查失败签发检查失败(在7.19.0版中增加) 。

表单_基础知识

表单 表单form是Internet和服务器之间进行信息交流的一种重要工具。包括按钮、文本框、单选按钮、复选按钮等,它们被称之为表单对象。表单的使用包括两部分:一是用户界面,提供用户输入数据的元件;另一部分是处理程序,可以是客户端程序而在浏览器执行,也可以是服务器程序,处理用户提交的数据,返回结果。 一.可插入的表单对象 Dreamweaver中,在“插入”面板中,有一个“表单”分类,选择该分类,可插入的表单对象快捷按钮就会出现。如下图: 可插入的对象,从左至右,包括: ?表单 ?文本字段 ?隐藏域 ?文本区域 ?复选框 ?单选按钮 ?单选按钮组 ?列表/菜单 ?跳转菜单 ?图像域 ?文件域 ?按钮 1.插入表单域 要在网页中插入表单对象,首先应该插入一个表单域,否则服务器将无法处理用户填写的信息。操作步骤如下: 步骤1:“插入”面板中,选择“表单”分类,单击左边第1个“表单”按钮,随即插入到网页中一个表单域,表单域在设计视图中显示为一个红色虚线框的范围。如图所示: 如果没有红色虚线框,执行菜单栏“查看/可视化助理/不可见元素”命令即可。 步骤2:设置表单域属性。使用鼠标单击虚线的边框,此时虚线框内出现黑色区域,表示该表单域被选中,属性面板如下: 表单域属性面板包括:

?表单名称:标识表单的唯一名称。 ?动作:指定处理该表单的动态页或脚本的路径。可以键入完整的路径,也可以单击“浏览文件”按钮指定到同一站点中包含该脚本或应用程序页的相应文件夹。如果没有相关程序支持的话,也可以使用E-mail的方式来传输表单信息,这种方式在动作文本框中键入:“mailto:电子邮件地址”。表示提交的信息将会发送到作者的邮箱中。比如 ?方法:用于选择表单数据传输到服务器的方法。可选择速度快但携带数据量小的GET方法,或者数据量大的POST方法。一般使用POST方法。 ?目标:指定打开窗口的方式。 ?MIME类型:指定对提交给服务器进行处理的数据使用MIME编码类型。 ?类:定义好的CSS样式。 2.插入文本域 当浏览者浏览网页需要输入文字资料时,像姓名、地址、E-mail或稍长一些的个人介绍等栏目,在制作时就可以使用文本域,它在浏览器中将显示为一个文本框。 具体操作如下: 步骤1:插入文本域前请确定首先插入了一个表单域,并且将光标放入表单域中。如果在表单域外插入文本域,Dreamweaver会弹出提示框,是否创建一个表单域。 步骤2:在“插入”面板中,选择“表单”分类,单击左边第2个“文本字段”按钮,随即插入到网页中一个文本域。可以在文本域前加入说明的文字,如“用户名”,告知浏览者需要填入的内容的类型。 步骤3:单击文本域,对文本域的属性面板进行设置: 文本域:输入文本字段的名称,该名称在该网页中是唯一的名称。名称不能包含空格或 特殊字符,可以使用字母数字字符和下划线的任意组合。 字符宽度:设置文本域中最多可显示的字符数。 最多字符数:设置单行文本域中所能输入的最多字符数。如果是空白,则可以输入任意 数量的文本。(最好对不同内容的文本域进行不同数量的限制,防止个别浏览者恶意输入大量数据,维护系统的稳定性。) 初始值:输入文本域中默认状态时显示的内容,当浏览者键入资料时初始文本被替代。 类型:显示了当前文本域的类型,包括“单行”、“多行”和“密码”。其中, ---单行是默认选项,只显示一行文本。 ---多行表示插入的文本可显示多行(如图)。

表单作业

实验3.8 表单的应用 【相关知识】 1. 表单是用于申请或提交某些信息而填写的交互网页,属于网页动态元素。它是网站 管理者与浏览者之间沟通的桥梁。 2. 表单域是具有相互联系的、能够完成一定功能的表单对象的集合。一个网页中可有 多个表单域。 3. 表单对象指表单域中专门处理用户输入数据的元素。表单对象一般都添加在表单域 中。网页中的表单对象包括文本域、单选按钮、复选框、下拉列表、按钮等。 4. 表单不能嵌套,但是一个网页中可以有多个表单。 5. 提交表单的方法有两种:POST和GET。POST方法将在HTTP请求中嵌入表单数据, 通常用来传送大量数据。GET方法将表单数据附加在请求页面的URL地址后面,通常用来传送少量数据。 一、实验目的和要求 掌握使用表单设计新用户注册页面的方法。页面的设计效果如图3-8所示。 图3-8 “新用户注册”页面的效果图

二、实验步骤 1. 新建一个网页文档 启动Dreamweaver。单击【文件】→【新建】菜单命令,新建一个网页文档。 2. 插入表单域 (1)将光标放在网页上要插入表单域的位置。 (2)单击【插入】→【表单】→【表单】菜单命令,或者打开【表单插入栏】,单击上面的【表单】按钮。在网页中插入表单域。 3. 插入表格 (1)将光标放在表单域中,单击【文件】→【表格】菜单命令,打开【表格】对话框。 (2)在对话框中,设置【行数】为“13”;设置【列数】为“2”;设置【表格宽度】为“600像素”;单击【确定】按钮。插入一个13行2列的表格。 (3)选中该表格。在属性面板的【对齐】下拉列表中选择“居中对齐”。 4. 添加表单对象 (1)将光标放在第1行第1列的单元格中。单击【插入】→【表单】→【文本域】菜单命令,或者单击【表单插入栏】上面的【文本字段】按钮,插入一个文本域。在【输入标签辅助功能属性】对话框的【标签文字】文本框中输入“会员号”。选中该文本域,在属性面板中,设置【字符宽度】为“20”;设置【最多字符数】为“20”;在【类型】处选择“单行”。将光标放在第1行第2列的单元格中,输入文字“(必填)”。 (2)将光标放在第2行第1列的单元格中。单击【插入】→【表单】→【文本域】菜单命令,或者单击【表单插入栏】上面的【文本字段】按钮,插入一个文本域。在【输入标签辅助功能属性】对话框的【标签文字】文本框中输入“密码”。选中该文本域,在属性面板的【类型】处选择“密码”;设置【字符宽度】为“10”;设置【最多字符数】为“10”。将光标放在第2行第2列的单元格中,输入文字“(必填)”。 (3)将光标放在第3行第1列的单元格中。输入文字“性别”。单击【插入】→【表单】→【单选按钮】菜单命令,或者单击【表单插入栏】上面的【单选按钮】按钮,插入一个单选按钮。在【输入标签辅助功能属性】对话框的【标签文字】文本框中输入“男”。 用同样的方法插入另一个单选按钮。在【输入标签辅助功能属性】对话框的【标签文字】文本框中输入“女”。 (4)将光标放在第4行第1列的单元格中。单击【插入】→【表单】→【列表/菜单】菜单命令,或者单击【表单插入栏】上面的【列表/菜单】按钮,插入一个列表/菜单。 在【输入标签辅助功能属性】对话框的【标签文字】文本框中输入“常住地点”。选中该列表/菜单对象,在属性面板的【类型】处选择“列表”;设置【高度】为“2”;选中【允许多选】复选项。单击【列表值】按钮,打开【列表值】对话框。单击按钮,输入如表3-3所示的“常住地点”列表值数据。 表3-3 “常住地点”列表值数据 项目标签值 北京 1 上海 2 天津 3 广东 4

第八章 表单

第八章表单 表单是网页中提供的一种交互式操作手段,在网页中的使用十分广泛。无论是提交搜索的信息,还是网上注册等都需要使用表单。用户可以通过提交表单信息与服务器进行动态交流。表单主要可以分为两部分:一是用HTML源代码描述的表单,可以直接通过插入的方式添加到网页中;二是提交后的表单处理,需要调用服务器端编写好的脚本对客户端提交的信息作出回应。 1 表单的概念 表单通常用来做调查表、注册登录界面、搜索界面等。通过表单收集到的用户反馈信息,通常是以某种分隔符分隔的文字形式提交到服务器。 表单使用的

标记是成对出现的,在首标记和尾标记
之间的部分就是一个表单。 表单form基本语法:
….
?name:给定表单名称,表单命名之后就可以用脚本语言(如JavaScript 或VBScript)对它进行控制。 ?action:指定处理表单信息的服务器端应用程序。 ?method:用于指定表单向服务器提交数据的方法,method的值可以为get或是post,默认方式是get。 (1)get方法,使用get方法提交数据,浏览器将把表单中的各个值添加 到action指定的URL后(这两者之间用问号进行分隔)并向服务器发 送get请求,每个值之间用符号“&”链接。 (2)post方法,如果采用post方法,浏览器将首先与action属性中指定 的表单处理程序建立联系,一旦建立连接之后,浏览器就会按分段 传输的方法将数据发送给服务器。 (3)get将表单中的数据按照“变量=值”的形式,添加到action所指向 的URL后面,并且两者使用“?”连接,而各个变量之间使用“&” 连接;post是将表单中的数据放在表单的数据体中,按照变量和值相 对应的方式,传递到action所指向的URL。 (4)get是不安全的,post的所有操作对用户来说都是不可见的。 (5)post可以传输大量的数据,所以在上传文件时只能使用post。 (6)get是表单的默认方法。 2 输入 是个单标记,它必须嵌套在表单标记中使用,用于定义一个用户的输入项。 格式:

表单multipart(form-data)

Java中,当表单含有文件上传时,提交数据的如何读取 当提交表单里包含文件上传的时候,即Form的enctype属性值为multipart/form-data时,后台是无法像普通表单那样通过request.getParameter来获取用户提交的数据的。(说实话,我经常因为忘记这个问题而浪费好多调查时间。) 1.// 判断enctype属性是否为multipart/form-data 2.boolean isMultipart = ServletFileUpload.isMultipartContent(request); 3. 4.// Create a factory for disk-based file items 5.DiskFileItemFactory factory = new DiskFileItemFactory();

7.// 当上传文件太大时,因为虚拟机能使用的内存是有限的,所以此时要通过临时文件来实现 上传文件的保存 8.// 此方法是设置是否使用临时文件的临界值(单位:字节) 9.factory.setSizeThreshold(yourMaxMemorySize); 10. 11.// 与上一个结合使用,设置临时文件的路径(绝对路径) 12.factory.setRepository(yourTempDirectory); 13. 14.// Create a new file upload handler 15.ServletFileUpload upload = new ServletFileUpload(factory); 16. 17.// 设置上传内容的大小限制(单位:字节) 18.upload.setSizeMax(yourMaxRequestSize); 19. 20.// Parse the request 21.List items = upload.parseRequest(request); 22. 23.Iterator iter = items.iterator(); 24.while (iter.hasNext()) { 25.FileItem item = (FileItem) iter.next(); 26. 27.if (item.isFormField()) { 28.//如果是普通表单字段 29.String name = item.getFieldName(); 30.String value = item.getString(); 31.... 32.} else { 33.//如果是文件字段 34.String fieldName = item.getFieldName(); 35.String fileName = item.getName(); 36.String contentType = item.getContentType(); 37.boolean isInMemory = item.isInMemory(); 38.long sizeInBytes = item.getSize(); 39....

禁止表单多次提交

禁止表单多次提交 <!--此特效来源来互联网,由https://www.doczj.com/doc/a717013626.html, 收集整理--> <!--禁止表单多次提交--> <h4>禁止表单多次提交,表单提交一次后提交键变灰色</h4> <script> function submitonce(theform){ //if IE 4+ or NS 6+ if (document.all||document.getElementById){ //screen thru every element in the form, and hunt down "submit" and "reset" for (i=0;i<theform.length;i++){ var tempobj=theform.elements[i] if(tempobj.type.toLowerCase()=="submit"||tempobj.type.to LowerCase()=="reset") //disable em tempobj.disabled=true } } } </script>

<form method="POST" onSubmit="submitonce(this)"> <input type=input name="asdf"> <input type=submit name="OK"> </form>     1. 利用javascript : 1.1 document.form1.submit();后加 document.body.innerHtml = "<center> Waiting...</center>"; //当然这里的html代码就由你发挥了,还可把这段写成函数,这样维护就方便了!这一处理,就让用户在等待提交时不会误以为没提交而重复按提交按钮! 1.2 按钮设置 <SCRIPT LANGUAGE="JavaScript"> function changesubmit() { document.aa.B1.disabled = "true"; } </script> …… <form method="POST" action="aa.jsp" name="aa"

form表单提交数据编码方式和tomcat接受数据解码方式的思考

做java的web开发有段日子了,有个问题老是困扰着我,就是乱码问题,基本上是网上查找解决方案(网上资料真的很多),都是一大堆的介绍如何解决此类的乱码问题,但是没几个把问题的来龙去脉说清楚的,有时候看了些文章后,以为自己懂了,但是在开发中乱码问题又像鬼魂一样出来吓人,真是头大了!这篇文章是我长时间和乱码做斗争的一些理解的积累,还希望有更多的朋友给出指点和补充。 form有2中方法把数据提交给服务器,get和post,分别说下吧。 (一)get提交 1.首先说下客户端(浏览器)的form表单用get方法是如何将数据编码后提交给服务器端的吧。 对于get方法来说,都是把数据串联在请求的url后面作为参数,如:http://localhost:8080/servlet?msg=abc (很常见的一个乱码问题就要出现了,如果url中出现中文或其它特殊字符的话,如:http://localhost:8080/servlet?msg=杭州,服务器端容易得到乱码),url拼接完成后,浏览器会对url进行URL encode,然后发送给服务器,URL encode 的过程就是把部分url做为字符,按照某种编码方式(如:utf-8,gbk等)编码成二进制的字节码,然后每个字节用一个包含3个字符的字符串 "%xy" 表示,其中xy为该字节的两位十六进制表示形式。我这里说的可能不清楚,具体介绍可以看下https://www.doczj.com/doc/a717013626.html,.URLEncoder类的介绍在这里。了解了URL encode的过程,我们能看到2个很重要的问题,第一:需要URL encode的字符一般都是非ASCII 的字符(笼统的讲),再通俗的讲就是除了英文字母以外的文字(如:中文,日文等)都要进行URL encode,所以对于我们来说,都是英文字母的url不会出现服务器得到乱码问题,出现乱码都是url里面带了中文或特殊字符造成的;第二:URL encode到底按照那种编码方式对字符编码?这里就是浏览器的事情了,而且不同的浏览器有不同的做法,中文版的浏览器一般会默认的使用GBK,通过设置浏览器也可以使用UTF-8,可能不同的用户就有不同的浏览器设置,也就造成不同的编码方式,所以很多网站的做法都是先把url里面的中文或特殊字符用javascript做URL encode,然后再拼接url提交数据,也就是替浏览器做了URL encode,好处就是网站可以统一get方法提交数据的编码方式。完成了URL encode,那么现在的url就成了ASCII范围内的字符了,然后以iso-8859-1的编码方式转换成二进制随着请求头一起发送出去。这里想多说几句的是,对于get方法来说,没有请求实体,含有数据的url都在请求头里面,之所以用URL encode,我个人觉的原因是:对于请求头来说最终都是要用iso-8859-1编码方式编码成二进制的101010.....的纯数据在互联网上传送,如果直接将含有中文等特殊字符做iso-8859-1编码会丢失信息,所以先做URL encode是有必要的。 2。服务器端(tomcat)是如何将数据获取到进行解码的。 第一步是先把数据用iso-8859-1进行解码,对于get方法来说,tomcat获取数据的是ASCII范围内的请求头字符,其中的请求url里面带有参数数据,如果参数中有中文等特殊字符,那么目前还是URL encode后的%XY状态,先停下,我们先说下开发人员一般获取数据的过程。通常大家都是 request.getParameter("name")获取参数数据,我们在request对象或得的数据都是经过解码过的,而解码过程中程序里是无法指定,这里要说下,有很多新手说用request.setCharacterEncoding("字符集")可以指定解码方式,其实是不可以的,看servlet的官方API说明有对此方法的解释:Overrides the name of

HTML表单

HTML表单 一、表单 1.表单的作用 HTML 表单用于接收不同类型的用户输入,用户提交表单时向服务器传输数据,从而实现用户与Web服务器的交互。 2.表单的工作机制 3.表单定义(

标签) HTML表单是一个包含表单元素的区域,表单使用
标签创建。表单能够包含input元素,比如文本字段、复选框、单选框、提交按钮等等。表单还可以包含 menus、textarea、fieldset、legend 和 label 元素。注意,元素是块级元素,其前后会产生折行。 1 2 3
3.表单属性 action:规定当提交表单时,向何处发送表单数据。action取值为:第一,一个URL(绝对URL/相对URL),一般指向服务器端一个程序,程序接收到表单提交过来的数据(即表单元素值)作相应处理。比如

action="https://www.doczj.com/doc/a717013626.html,/login.do">,当用户提交这个表单时,服务器将执行网址"https://www.doczj.com/doc/a717013626.html,/"上的名为"login.do"的一般处理程序。第二,使用mailto协议的URL地址,这样会将表单内容以电子邮件的形式发送出去。这种情况比较少见的,因为它要求访问者的计算机上安装和正确设置好了邮件发送程序。第三,空值,如果action为空或不写,表示提交给当前页面。 method:该属性定义浏览器将表单中的数据提交给服务器处理程序的方式。关于method的取值,最常用的是get和post。第一,使用get方式提交表单数据,Web浏览器会将各表单字段元素及其数据按照URL参数格式附在

标签的action属性所指定的URL地址后面发送给Web服务器;由于URL的长度限制,使用get方式传送的数据量一般限制在1KB以下。第二,使用post方式,浏览器会将表单数据作为HTTP请求体的一部分发送给服务器。一般来说,使用post方式传送的数据量要比get方式传递的数据量大;根据HTML标准,如果处理表单的服务器程序不会改变服务器上存储的数据,则应采用get方式(比如查询),如果表单处理的结果会引起服务器上存储的数据的变化,则应该采用post方式(比如增删改操作)。第三,其它方式(Head、PUT、DELETE、TRACE 或OPTIONS等)。其实,最初HTTP标准对各种操作都规定了相应的method,但后来很多都没有被遵守,大部分情况只是使用get或post就OK。 target:该属性规定在何处显示action属性中指定的URL所返回的结果。取值有_blank(在新窗口中打开)、_self(在相同的框架中打开,默认值)、_parent(在父框架中打开)、_top(在整个窗口中打开)和framename(在指定的框架中打开)。 title:设置网站访问者的鼠标放在表单上的任意位置停留时,浏览器用小浮标显示的文本。 enctype:规定在发送到服务器之前应该如何对表单数据进行编码。取值:默认值为 "application/x-www-form-urlencoded",在发送到服务器之前,所有字符都会进行编码(空格转换为"+" 加号,特殊符号转换为ASCII HEX 值);“multipart/form-data”:不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。 name:表单的名称。注意和id属性的区别:name属性是和服务器通信时使用的名称;而id属性是浏览器端使用的名称,该属性主要是为了方便客户端编程,而在css和javascript中使用的。 二、表单元素 1.单行文本框(input 的type 属性的默认值就是"text") 以下是单行文本框的主要属性: size:指定文本框的宽度,以字符个数为单位;在大多数浏览器中,文本框的缺省宽度是20个字符。 value:指定文本框的默认值,是在浏览器第一次显示表单或者用户单击按钮之后在文本框中显示的值。 maxlength:指定用户输入的最大字符长度。 readonly:只读属性,当设置readonly属性后,文本框可以获得焦点,但用户不能改变文本框中的value。 disabled:禁用,当文本框被禁用时,不能获得焦点,当然,用户也不能改变文本框的值。并且在提交表单时,浏览器不会将该文本框的值发送给服务器。 2.密码框 3.单选按钮

VF 表单程序题(含答案)

1、利用文本框和标签控件设计了一表单F1.SCX,文本框Text1的V alid事件代码及表单界面如图1所示。向Text1中输入一段字符:”Figure 1-18 shows you how to use a MENU.”(不含双引号)[Text1.Valid event] x=alltrim(thisform.text1.value) y=len(x) store 0 to z1,z2 for i=1 to y a=substr(x,i,1) do case case asc(a)>=65 and asc(a)<=90 z1=z1+1 case asc(a)>=97 and asc(a)<=122 z2=z2+1 endcase endfor thisform.text2.value=z1 thisform.text3.value=z2 (1)执行该程序后,“统计1”右边的文本框Text2和“统计2”右边的文本框Text3中的数据值分别为5、22 (2)Text2和Text3的初值分别为0、0 2、有数据表“图书.DBF”包含书号、书名、出版社、作者等字 段,设计如图1所示表单,表单运行后,单击命令按钮可以在 表格控件中显示图书表的部分字段的数据,如图1所示,请选 择并完善代码。 命令按钮的CLICK事件代码: USE 图书 copy TO TS FIELDS 书号,书名 THISFORM.GRID1.RECORDSOURCETYPE=0 THISFORM.GRID1.RECORDSOURCE=”TS” 表单的UNLOAD(释放对象时发生)事件: CLOSE ALL DROP TABLE TS 3、考生数据表(文件名为:KS.DBF)中有“准考证号/C/9”、 “密码/C/6”、“成绩/N/5/1”等字段。设计如图2所示表单, 将考生数据表添加到表单的数据环境中,表单运行后,在表单 的文本框TEXT1中输入查询考生的准考证号,文本框TEXT2 中输入该考生的查询密码后,单击“查询”按钮,查询该考生 的成绩,并将该考生的成绩显示在表单的标签LABEL3中(考 号或密码输入错误,则弹出提示窗口显示“准考证号或密码错 误!”)。请选择并完善代码。 “查询”按钮的CLICK事件代码如下: SELECT KS

使用AJAX提交Form表单

使用AJAX提交Form表单的方法,其中主要的就是ajaxForm()和ajaxSubmit(),ajaxForm和ajaxSubmit都支持众多的选项参数,这些选项参数可以使用一个Options对象来提供。Options只是一个JavaScript对象,它包含了如下一些属性与值的集合: Options对象的详解: 1.)target 指明页面中由服务器响应进行更新的元素。元素的值可能被指定为一个jQuery 选择器字符串,一个jQuery对象,或者一个DOM元素。 默认值:null。 2.)url 重写或者指定表单的'action'属性。 默认值:表单的action属性值 3.)type 重写或者指定表单的'method' 属性,"GET"或"POST"。 默认值:表单的method属性值(如果没有找到默认为“GET”)。 4.)beforeSubmit 表单提交前被调用的回调函数,该方法通常被提供来运行预提交逻辑或者校验表单数据。如果"beforeSubmit"回调函数返回false,那么表单将不被提交。"beforeSubmit"回调函数带三个调用参数:数组形式的表单数据,jQuery表单对象,以及传入ajaxForm/ajaxSubmit中的Options对象。表单数组接受以下方式的数据: [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ] 默认值:null 5.)success 表单成功提交后调用的回调函数。如果提供"success"回调函数,当从服务器返回响应后它被调用。然后由dataType选项值决定传回responseText还是responseXML的值。 默认值:null 6.)dataType 期望服务器的的回应的类型。null、"xml"、"script"或者"json"其中之一。dataType提供一种方法,它规定了怎样处理服务器的响应。这个被直接地反映到jQuery.httpData方法中去。下面的值被支持: 'xml':如果dataType == 'xml',将把服务器响应作为XML来对待。同时,如果“success”回调方法被指定,将传回responseXML值 'json':如果dataType == 'json',服务器响应将被求值,并传递到“success”回调方法,如果它被指定的话。 'script':如果dataType == 'script',服务器响应将求值成纯文本。 默认值:null(服务器返回responseText值) 7.)semantic 布尔标志,表示数据是否必须严格按照语义顺序来进行提交。注意:一般来说,表单已经按照语义顺序来进行了串行化(或序列化),除了type="image"的input 元素。如果你的服务器有严格的语义要求,以及表单中包含有一个type="image"的input元素,就应该将semantic设置为true。

网页表单提交方式详细汇总

网页表单提交方式详细汇总 用户提交按钮或图像按钮时,就会提交表单。使用input 或button都可以定义提交按钮,只要将其特性的值设置为submit即可,而图像按钮则是通过input的type特性值设置为image来定义的大家先来看看表单提交的几种方式: 1、 2、 提交 3、 说明:用户提交按钮或图像按钮时,就会提交表单。使用或都可以定义提交按钮,只要将其特性的值设置为“submit”即可,而图像按钮则是通过的type特性值设置为”image”来定义的。因此,只要我们单击一下代码生成的按钮,就可以提交表单。 4、阻止表单提交 只要在表单中存在上面列出的任何一种按钮,那么相应表单控件拥有焦点的情况下,按回车键就可以提交表单。如果表单里没有提交按钮,按回车键不会提交表单。 以这种方式提交表单时,浏览器会在将请求发送给服务器之

前触发submit事件。这样,我们就有机会验证表单数据,并据以决定是否允许表单提交。阻止这个事件的默认行为就可以取消表单提交。例如,下面代码会阻止表单提交:复制代码代码如下: var EventUtil = { addHandler: function (element, type, handler) { if (element.addEventListener) { element.addEventListener(type, handler, false); } else if (element.attachEvent) { element.attachEvent("on" + type, handler); } else { element["on" + type] = handler; } }, getEvent: function (event) { return event ? event : window.event; }, preventDefault: function (event) { if (event.preventDefault) { event.preventDefault(); } else { event.returnValue = false;

制作包含表单的网页

江西工业职业技术学院教案

具体内容 7.1 表单在网页用中的作用及其组成元素 最早的时候,人们将Web设计为全球共享和浏览静态信息的媒体,现在它已经发展为一种交互式媒体,而最普通的交互方式就是数据输入表单。表单可以是单一的搜索对话框,也可以是多页面的调查问卷保单形式。如图6-1所示。 图7-1 旅游调查表 一个表单有三个基本组成部分:表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。 表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。

7.2 制作包含表单的网页 表7-1 模仿型任务卡

7.2.1 创建并规划站点“旅游调查” 1、创建站点 在本地磁盘的文件夹“旅游指南”的根目录下创建子文件夹“旅游调查”,然后通过“站点定义”对话框中的“高级”选项卡创建一个名为“旅游调查”的网站,该网站的存储目录指向文件夹“旅游调查”。如图6-2所示。 图7-2 创建站点“旅游调查” 2、规划站点 在“文件”面板中的“旅游调查”站点根目录下创建“webpages”、“images”、“flash”三个子目录,并将文件夹“images”设置为站点的“默认图像文件夹”, ,如图5-3所示。

图7-3 站点“旅游调查”文件面板 7.2.2 创建网页文档index07.html 1、创建网页文档 在“旅游调查”站点的根目录下创建网页文档“index07.html”,并在“文档”工具栏的“标题”文本框中输入网页标题“旅游调查”,然后保存网页。如图6-4所示。 图7-4 设置网页标题 2、设置网页属性 单击页面“属性”面板中的“页面属性”按钮,打开页面属性对话框,选中分类列表框中的“外观”,将页面字体设置为“宋体”,大小为“14像素”,然后保存网页。 7.2.3 插入表单域并设置其属性 1、在网页中插入表单域 表单是由表单域和表单项共同组成,且所有的表单项必须要放在表单域里面才会将它们采集到的信息随表单一起提交给服务器,所以,制作表单页面的第一项工作就是在网页中插入表单域。 在Adobe Dreamweaver CS3主界面中,单击【插入记录】→【表单】→【表单】命令,如图7-5所示,或单击“插入”工具栏“表单”选项卡中的表单域按钮,在网页的光标处插入一个表单域。

回车提交表单的方法

一般如果input 的type 是submit,显然按回车可以提交表单,但有时没有submit(比如用ajax提交),需要回车提交怎么办呢?上网随便查了一下,很简单,方法如下: 一、(不用说明,可那可那就知道了)

二、在text按回车,转到执行button的操作 三、jQuery的方法也很简单

表单提交的几种方法

form表单提交的几种方法 form表单提交的几种方法

姓名:
性别:
年龄: