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

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 中最大量为80KB ,IIS5 中为100KB ;

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

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

总结:

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

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

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

四、Get 是Form 的默认方法;

五、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 对象,此时两个请求已经不在一个线程了,所以request 和response 对象都不是开始的那个了;

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 则就会起很大的好处了。

JAVA 客户端跳转与服务器端跳转 get与post相关推荐

  1. 【比较】什么是“服务器端跳转”“客户端跳转”,二者有什么区别?

    [比较]什么是"服务器端跳转""客户端跳转",二者有什么区别? 浏览器的页面跳转大家都很熟悉,页面跳转具体分为以下两种: 服务器端跳转 客户端跳转 那么,到底什 ...

  2. 服务器端跳转与客户端跳转

    #服务器跳转与客户端端跳转 概念 **服务器端跳转:**又称为内部跳转,当客户端向服务器发送一个请求,请求当前资源时,这个资源在服务器内部跳转到另一个资源,再向客户端发送一个响应(即客户端只产生了一次 ...

  3. 客户端跳转与服务器跳转的区别

    客户端跳转时用HttPservletResopse对象的sendRedirect函数实现,服务器端跳转是使用RequestDispather对象的forward方法实现的.这两者之间的区别主要体现在三 ...

  4. SpringMvc的服务器端跳转和客户端跳转

    首先,找到 package org.springframework.web.servlet.view; public class InternalResourceViewResolver extend ...

  5. java跳转到jsp_Servlet跳转到jsp页面的几种方法

    1.sendRedirect方式 sendRedirect("/a.jsp"); 可以将页面跳转到任何路径,不局限于web应用中,跳转的过程中url地址变化,无法使用request ...

  6. asp.net服务器端跳转页面的三种方法

    asp.net服务器端跳转页面的三种方法 1.Response.Redirect这个跳转页面的方法跳转速度不快,因为它要走2次回发(postback). 它可以跳转到任何页面,没有站点页面限制(可以由 ...

  7. java jsp 跳转_JSP页面跳转方法大全

    先来介绍一下在服务端JSP脚本中跳转页面的几种方法: 1. response.sendRedirct("跳转到页面"); 该方法通过修改HTTP协议的HEADER部分,对浏览器下达 ...

  8. java jsp 跳转_JSP 页面跳转的实现方法

    客户端跳转 1. 使用 href 超链接标记  跳转 2. 使用表单提交完成跳转 ... 3. 使用 JavaScript 4. 使用 response.sendRedirect(String pat ...

  9. java 跳表_数据结构跳表学习并用Java实现

    前面学习很多类的源码过程中,底层基本都是数组和链表,今天学习第三种结构跳表(SkipList). 跳表解决的问题 一个有序的数组如果我们要判断一个数据是否存在可以通过二分查找法非常快速的判断出来,但是 ...

最新文章

  1. ​ImageNet的top-1终于上了90%,网友质疑:用额外数据集还不公开,让人怎么信服?...
  2. 信息系统项目管理案例2
  3. VS2010 C++下编译调试MongoDB源码
  4. 跟着官方文档能学懂React Hooks就怪了
  5. 产品经理在早期如何快速学习?
  6. android手机系统miui,使用MIUI系统MIUI将无刷机器直接安装在其他品牌的Android手机上...
  7. vba 字体颜色_Excel填充单元格颜色和改变字体颜色,用VBA是怎样实现的呢?
  8. 201671010127 2016—2017—2 Java学习周结
  9. MEncoder的基础用法—6.6. 改变电影大小
  10. vscode中自动修复eslint的项目语法错误
  11. MySQL从入门到精通教程
  12. 超详细JDK下载与安装步骤
  13. Android 选择国家对应区号 中英双版
  14. 计算机网络为什么要分层?
  15. 《Python编程:从入门到实践》最高温度, 最低温度可视化
  16. Namesilo域名解析详细图文教程!
  17. 开封二级分销系统开发如何划分等级?
  18. 数据库 SQL 语句学习
  19. 【Python】小甲鱼Python学习总结——代码版
  20. 性能测试指标及常用监控工具

热门文章

  1. 关于《蜗居》的一点想法
  2. C++ 中不能被继承的类实现,及从中体现virtual 继承的一个特性
  3. Linux Shell常用技巧(十)
  4. QuickContact分析及其弹出窗口实现
  5. Android线程详解
  6. 【android】EGL数据结构
  7. 03-运行时数据区概述及线程
  8. 性能测试:服务器配置清单分析
  9. 洋葱第4场C和D题解……
  10. Android HttpURLConnection Post 参数 (https)