向服务器提交表单数据的方法有哪些?

向服务器提交表单数据的方法有哪些?,第1张

get 请求方式

post 请求方式

get请求会把你提交内容显示到地址栏里,post不会,post适合提交大信息

此外ajax能实现无刷新页面提交方法

一般提交会刷新页面

  1服务器端的准备

  为了完成该实例,我们需要在服务器端做以下准备工作:

  (1)我们需要在MyEclipse中创建一个Web工程,用来模拟服务器端的Web服务,这里,我将该工程命名为了“myhttp”。

  (2)修改该工程的“indexjsp”文件,添加两个输入框和一个提交按钮,作为该Web工程的显示页面。运行Tomcat,在浏览器中访问该Web工程,可以看到如图1所示的界面。

   Web工程的显示页面

  (3)在该Web工程中,创建一个继承自HttpServlet的LoginAction类,并实现其中的doPost()方法,用来响应图1所示页面的用户操作。具体实现如下:

  由上述代码可以看出,当我们在图1所示的页面输入用户名“admin”,密码“123”时,点击提交按钮,会得到“Login succeeded!”的提示信息,如图2所示。若用户名、密码错误,则会得到“Login failed!”的提示信息。

  2客户端实现

  在Android客户端,我们需要完成的工作是:以POST方式发送用户名密码到上述服务器,并获得服务器的验证信息。

  我们分以下几个步骤来完成。

  21 UI界面

  在Android工程中,我们需要完成一个简单的UI界面,用来完成用户名密码的输入、发送POST请求、显示服务器的验证结果,完成后的界面如图3所示。

  在MainActivity中,我们需要获取两个EditText控件的输入,“提交”按键的监听,以及服务器验证结果的TextView内容显示。具体实现代码如下:

  22发送POST请求到服务器

  可以看到上述代码中,我们调用了HttpUtils类的静态方法submitPostData()完成了发送POST请求到服务器,并将该方法的返回值(服务器的响应结果)显示在了TextView控件中。

  通过以上的代码可以看出,在该方法中,其实完成了3件事:

  (1)将用户名密码封装成请求体,这是通过调用getRequestData()方法来实现的(后面会讲到这个方法的具体实现)。

  (2)设置HttpURLConnection对象的各种参数(其实是设置HTTP协议请求体的各项参数),然后通过httpURLConnectiongetOutputStream()方法获得服务器输出流outputStream,再使用outputStreamwrite()方法将请求体内容发送给服务器。

  (3)判断服务器的响应码,通过httpURLConnectiongetInputStream()方法获得服务器的响应输入流,然后再调用dealResponseResult()方法处理服务器的响应结果。

  23封装请求体

  使用POST请求时,POST的参数不是放在URL字符串里,而是放在HTTP请求数据中,所以我们需要对POST的参数进行封装。

  针对该实例而言,我们发送的URL请求是:http://1921681101:8080/myhttp/servlet/LoginAction,但是我们需要将POST的参数(也就是username和password)封装到该请求中,形成如下的形式:

  24处理响应结果

  最后,我们再来看一看对服务器返回结果的处理是怎样的。因为在本实例中,服务器的返回结果是字符串“Login succeeded!”或“Login failed!”,所以这里我们需要做的就是将服务器的返回结果输入流转化成字符串。当然了,如果服务器返回的是,那么,我们就需要就得到的输入流转化成Bitmap了。如下代码是上面代码中用到的dealResponseResult()方法的具体实现。

  25运行效果

  可以用Get方式实现;

  方法:通过拼接url在url后添加相应的数据,如:http://IPvideonews/GetInfoServlet?title=霍比特人&timelength=100;

  缺点:通过Get方式提交数据只能发送2K以内的数据,适合发送容量较小的数据,另外,如果发送的数据是中文,则需要对url和服务器端做相应的乱码处理(设置能显示中文的编码方式),否则会产生乱码问题。

  处理方式如下:

本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器。

比如QQexe。在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器。QQexe。本地磁盘映射(推荐使用)使用远程桌面连接MSTSC方式进行数据传输。该方式不支持断点续传,可能存在传输中断的情况,因此不建议上传大文件。

把本地磁盘映射到服务器上。这样在服务器端会显示你映射的磁盘,就可以访问该磁盘。打开远程桌面连接(Win+R打开运行>输入mstsc回车),在远程桌面连接界面点击“显示选项”。在展开的选项选择“本地资源”,在本地资源选项卡中点击“详细信息”。在弹出的新界面中会有驱动器一项,将要映射到服务器的驱动器勾选。登录服务器,即可在服务器中访问本地映射到服务器的驱动器。同样要远程访问服务器。在本机上将要上传到服务器的文件复制。在服务器上粘贴。

HTTP协议中的OPTIONS方法是在RFC2616标准(现行的HTTP/11)引入的一种用于获取服务器支持的HTTP请求方法以及检查服务器性能的请求方法。

OPTIONS方法是用于请求获得由Request-URI标识的资源在请求/响应的通信过程中可以使用的功能选项。通过这个方法,客户端可以在采取具体资源请求之前,决定对该资源采取何种必要措施,或者了解服务器的性能。

扩展资料:

HTTP协议中OPTIONS请求的常见错误码:

1、100 Continue

服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求。

2、101 Switching Protocols

服务器转换协议:服务器将遵从客户的请求转换到另外一种协议。

3、203 Non-authoritative Information

文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝。

4、204 No Content

没有新文档。浏览器应该继续显示原来的文档。如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的。

5、301 Moved Permanently

所请求的页面已经转移至新的url。

6、302 Found

所请求的页面已经临时转移至新的url。

7、400 Bad Request

服务器未能理解请求。

8、403 Forbidden

对被请求页面的访问被禁止。

9、404 Not Found

服务器无法找到被请求的页面。

-http

有post和get两种方式

GET通常是值传递,如密码等,并且限制传值的大小,不能超过2k

POST是表单传递,action到一个地方写入数据库。 而post不限制传值的大小,所以一般都用post而不用get ,但是get方法和post方法得到、的结果是一样的。

HTTP/11 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。其中 POST 一般用来向服务端提交数据,本文主要讨论 POST 提交数据的几种方式。

我们知道,HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。规范把 HTTP 请求分为三个部分:状态行、请求头、消息主体。类似于下面这样:

<method> <request-url> <version>

<headers>

<entity-body></entity-body></headers></version></request-url></method>

协议规定 POST 提交的数据必须放在消息主体(entity-body)中,但协议并没有规定数据必须使用什么编码方式。实际上,开发者完全可以自己决定消息主体的格式,只要最后发送的 HTTP 请求满足上面的格式就可以。

但是,数据发送出去,还要服务端解析成功才有意义。一般服务端语言如 php、python 等,以及它们的 ramework,都内置了自动解析常见数据格式的功能。服务端通常是根据请求头(headers)中的 Content-Type

字段来获知请求中的消息主体是用何种方式编码,再对主体进行解析。所以说到 POST 提交数据方案,包含了 Content-Type

和消息主体编码方式两部分。下面就正式开始介绍它们。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 向服务器提交表单数据的方法有哪些?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情