`

Get与Post,客户端跳转与服务器端跳转

    博客分类:
  • Java
阅读更多

 

虽然说getpost 问题很老套了,但是作为web 开发人员来说对于这个的理解确实很有必要,其实说到getpost ,还可以有doGetdoPost 和客户端跳转与服务端跳转的区别;

GET POST 的区别:

       一、Get 是从服务器上获取 数据,Post 则是向服务器传送 数据;

       二、Get 将表单中数据的按照variable=value 的形式,添加到action 所指向的URL 地址的后面 ,并且两者用“?” 连接,而各个变量之间使用“&” 连接。Post 是将表单中的数据放在form 的数据体中( 或者说把内容放在了http 消息体里) ,按照变量和值相对应的方式,传递到action 所指向URL

       所以从上第二点也可以得到另外两个结论:

              1 Get 传送的数据量较小 ,不能大于2KB ,这主要是因为受URL 长度限制。

                   Post 传送的数据量较大 ,所以在上传文件只能使用Post( 注意在文件上传时还要加上enctype="multipart/form-data" 作为上传文件的标识) 。一般被默认为不受限制。但理论上,IIS4 中最大量为80KBIIS5 中为100KB

              2 Get 安全性非常低 (因为用户可以通过URL 看到)

                   Post 安全性较高 (其所有操作对用户来说都是不可见的)。但是执行效率却比Post 方法要高点(优点造就了 其缺点);

              总结:

                      a 、如果是包含机密信息的话,建议用Post 数据提交方式;

                      b 、当数据处理不改变数据模型的状态则推荐使用Get 方式,例如在做数据查询。而操作改变了数据模型的状态时,则建议使用Post 方式,例如数据添加、修改或删除,送电子邮件等;

       三、Get 限制Form 表单的数据集的值必须为ASCII 字符;而Post 支持整个ISO10646 字符集,所以说在出现一些乱码时有时候可以将Get 请求换为Post 请求;

       四、GetForm 的默认方法;

       五、Get 方式提交来的数据在服务器端用Request.QueryString() 来获取,用Post 方式提交的数据用Request.Form() 来获取;

 

服务器端跳转与客户端跳转:

       首先我们需要理解什么是服务器端跳转,什么是客户端的跳转。简单理解所谓服务器端跳转就是指地址栏内容不变(客户端浏览器的地址栏不会显示目标地址的URL ),而客户端跳转是指地址栏内容发生改变(客户端向服务器发请求偶,然后服务器再给客户端一个响应,然后客户端再根据服务器端给的响应中的URL 再向服务器发送请求,所以是两次请求,因此地址栏改变了显示最后一次请求地址);

Java 中服务器端跳转:

       1 request.getRequestDispatcher("success.jsp").forward(request,response) ,它是只要执行到此语句之后则立刻进行跳转,可以传递request 属性

     2 <jsp:forward>, 这种跳转属于无条件跳转,它只能在栈内转,而sendREdirect 中则可以任意转,甚至可以输入baidu

客户端跳转:

1 response.sendRedirect("fail.jsp") ,所有页面执行完之后再进行跳转 不能传递request 范围的属性 ,但是可以通过地址重写的方式向跳转页传递参数,因为该方法执行完之后就相当于一次http request 的结束,这是服务器会向客户端发送302 状态码和新的url ,告诉客户端重新发送request 请求到新的url ,然后客户端照此执行,执行即新的请求响应流程开始,服务器再重新创建HttpServletRequest 对象和HttpServletResponse 对象,此时两个请求已经不在一个线程了,所以requestresponse 对象都不是开始的那个了;

       2 response.setHeader("refresh","2;URL=index.jsp"),2 秒后跳转到其他页面;

       3 <a href="http://www.baidu.com"> 百度</a> ,超链接;

       4 、表单提交;

通过以上可以得知,如果现在一个页面中使用了JDBC ,则应该在forward 跳转之前关闭数据库链接,而使用respose 则可以在任意的位置处关闭;

注意:

       1 、客户端跳转“/ ”代表服务器路径webapps ,即服务器根路径,服务器端跳转“/ ”代表站点根路径,即应用程序根路径;

       2 、尽量使用response.sendRedirect("fail.jsp") 而不去使用forward ,因为当服务器崩溃了,那么sendRedirect 则就会起很大的好处了。

 


4
3
分享到:
评论

相关推荐

    jquery-get-post-load 方法

    ### jQuery中的GET、POST与LOAD方法详解...jQuery 的 GET、POST 和 LOAD 方法以及 AJAX 方法为开发者提供了强大的工具来处理客户端与服务器之间的数据交互。通过合理运用这些方法,可以极大地提升 Web 应用的用户体验。

    JSP和HTML跳转.zip_html挑转jsp_jsp和HEML跳转_jsp和HTML跳转

    在Web开发中,JavaServer Pages ...2. HTML的`&lt;form&gt;`标签:利用表单提交可以实现页面跳转,通过`action`属性设置处理表单的服务器端脚本,`method`属性(默认GET,也可设置为POST)决定数据提交方式。例如: ```html ...

    Android客户端与服务器交互,登录案例

    在这个案例中,我们将深入探讨如何使用Android Studio作为客户端开发工具,MyEclipse作为服务器端开发环境,以及如何结合MySQL数据库和Hibernate框架来实现这个功能。 **Android客户端开发** 1. **Android Studio**...

    java 作为客户端发送http post请求登录网站首页。

    4. 考虑使用POST/REDIRECT/GET模式:有些登录系统会在验证POST请求后重定向到GET请求的URL,这需要在客户端代码中特别处理。 在处理这个问题时,可以使用Java的HTTP客户端库,如Apache HttpClient,它提供了丰富的...

    request和response实现跳转和重定向的区别

    请求转发是服务器内部的一种操作,只在服务器端进行,不涉及客户端的重定向。它通过`Request`对象的`forward()`方法实现,服务器接收到请求后,不直接处理,而是将请求传递给另一个内部资源(如JSP、Servlet或其他...

    php实现ajax、post、get无刷新提交并跳转及验证用户

    首先,PHP(Hypertext Preprocessor)是一种服务器端脚本语言,常用于处理HTML表单数据、生成动态网页内容以及与数据库交互。在本项目中,PHP文件如`p.php`和`regist_if.php`将承担接收和处理AJAX请求、验证用户信息...

    在Js页面通过POST传递参数跳转到新页面详解

    总结来说,当需要在JavaScript页面间通过POST方法传递大量参数时,应该注意nginx服务器的配置限制,并考虑使用POST而非GET请求来避免这些问题。通过上述方法,可以有效地在用户界面间传递数据,并根据服务器响应进行...

    JSP页面的跳转方式汇总

    此方法能够实现服务器端的重定向,对于搜索引擎优化(SEO)非常重要。 #### 4. 在JSP中实现页面停留若干秒后自动重定向到另一页面 可以在JSP页面中使用HTML的`&lt;meta&gt;`标签来实现定时重定向: ```html ;url=newPage....

    C_(WINFORM)实现模拟POST发送请求登录网站

    通过阅读本文,您将了解到如何使用HttpWebRequest和HttpWebResponse类来发送POST请求,并获取服务器的响应结果。 首先,让我们来了解一下登录网站的流程。通常,登录网站的流程包括以下几步: 1. 发送POST请求:...

    易语言对象获取跳转页面

    例如,可以使用"HTTP请求"命令发送GET或POST请求到指定URL,获取服务器返回的HTML代码。 1. **网络请求**:在易语言中,首先需要建立网络连接,然后通过"HTTP请求"命令发送请求。这个命令可以设置请求的URL、方法...

    通过Android客户端访问web服务器,实现一个登录功能,服务端+数据库+安卓端_android源码.zip

    在这个项目中,我们主要关注的是如何使用Android客户端与web服务器进行交互,实现一个基本的登录功能。这涉及到三个主要组成部分:服务端、数据库管理和Android应用。以下是对这些关键知识点的详细说明: 1. **...

    易语言取网址URL状态取跳转地址

    在易语言中,我们可以使用“网络·发送HTTP请求”命令来发送GET或POST请求,并通过返回的结果获取状态码。返回的数据结构通常包含状态码、响应头和响应体,我们可以通过解析这些信息来获取状态。 接下来,我们讨论...

    快便支付原理 商户网站接入支付结果有两种方式,一种是通过浏览器进行跳转通知,一种是服务器端异步通知

    快便支付原理主要涉及到两种商户网站接入支付结果的机制:浏览器跳转通知和服务器端异步通知。这两种方法都是为了确保商户能够准确地接收到用户的支付状态,以便于后续的业务处理。 首先,浏览器跳转通知是传统的...

    运用Ajax实现无跳转的数据交换

    这个过程中,JavaScript主要负责客户端的处理,而Servlet则作为服务器端的组件,处理来自客户端的请求并返回数据。 首先,了解JavaScript的基本语法是必要的。JavaScript是一种广泛应用于网页开发的脚本语言,它...

    安卓Android源码——简易微信客户端和服务器源码.zip

    通过研究这个开源项目,开发者可以深入理解Android应用的开发流程,以及客户端与服务器端的交互机制,对即时通讯应用的架构有更清晰的认识。在实际学习过程中,还需要结合具体的源代码,逐步分析各个组件和模块的...

    PHP+Jquery+AJAX POST,GET提交表单并接收返回

    4. **PHP处理请求**:在服务器端,PHP脚本(如`server_script.php`)接收到请求后,可以使用`$_POST`或`$_GET`数组获取发送的数据。例如: ```php if ($_SERVER['REQUEST_METHOD'] === 'POST') { $data = $_POST;...

    加入数据库mysql实现android注册登陆功能的客户端服务器源码与解析

    客户端通过HTTP POST请求发送数据,服务器端查询数据库并返回结果。如果匹配成功,服务器返回一个表示成功的状态码,客户端接收后可以跳转到主界面;否则,显示错误信息。 在服务器端,我们可以使用Java的JDBC API...

    javaWEB项目答辩.pdf

    答案:内部跳转与外部跳转区别:1. 内部跳转:浏览器的地址栏不会发生改变。request 中的参数值,会被保留到新的页面。2. 外部跳转:浏览器地址发生改变(相当于二次请求)。第一次 request 中的参数值,不会被保留...

Global site tag (gtag.js) - Google Analytics