`

Java 表单提交两种方式(网上整理)

阅读更多
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高级面试框架整理

    ### Java高级面试框架知识点整理 #### Struts框架详解 **1. Struts框架的基本结构** - **MVC模式实现:** Struts是一个基于MVC(Model-View-Controller)模式的Web应用框架,其中Controller部分主要由一个Servlet...

    JavaScript操作表单_动力节点Java学院整理

    第一种是通过元素的submit()方法来提交表单,这种方式会触发form的onsubmit事件,允许开发者在表单提交之前执行一些操作。需要注意的是,这种方式会干扰浏览器对form的正常提交行为。第二种方式是使用AJAX技术在...

    HTML表单_动力节点Java学院整理

    1. action属性:它指定了表单提交后数据要发送到的URL。这个URL可能是服务器上处理表单数据的脚本或程序。如果action为空或未指定,表单数据将提交到当前页面。 2. method属性:此属性定义了表单数据如何发送到...

    基于PDF表单的调查问卷系统的设计与实现(pdf)

    该系统主要利用PDF表单的强大功能和JSP技术,实现了在线和离线两种模式下的调查问卷功能。用户可以通过网页下载PDF格式的问卷,并完成填写后提交,或者直接在线填写问卷。提交后的问卷数据将被自动处理并存储到...

    JAVA面试题集整理

    - **解释**:在EJB中,事务管理可以通过容器管理的事务(Container Managed Transaction, CMT)和Bean管理的事务(Bean Managed Transaction, BMT)两种方式进行。CMT由应用服务器自动管理事务边界,而BMT则需要...

    自整理Java关于基础和框架的面试题

    ### 自整理Java关于基础和框架的面试题 #### 基础知识点 ##### JDK常用的包 - **java.lang**: 包含所有基本类,如`String`、`Math`等。 - **java.util**: 提供集合框架、日期/时间设施、事件模型、杂项实用程序类...

    Java-EE-复习参考资料.doc

    4. **表单提交方法**:表单数据可以通过两种方式提交到服务器:`Post`方法和`Get`方法。`Post`方法将表单数据放在HTTP请求体中发送,适合于敏感数据或大数据量的传输;`Get`方法则将数据放在URL后面,适用于小量且不...

    Java学习笔记-个人整理的

    {8.3}创建线程的两种方法}{123}{section.8.3} {8.4}Runnable}{123}{section.8.4} {8.5}Sleep阻塞与打断唤醒}{124}{section.8.5} {8.5.1}sleep与wait的差异}{124}{subsection.8.5.1} {8.6}IO阻塞}{126}{section....

    HTML5新表单元素_动力节点Java学院整理

    当用户提交表单时,元素会生成一个公钥和私钥对,私钥存储在用户客户端,而公钥则随表单一起发送给服务器。服务器可以利用这个公钥来验证用户客户端证书的有效性。这是一个比较高级的特性,主要用于需要安全验证的...

    JAVAEE-期末卷-选择填空-已整理.doc

    知识点解释:在 Web 开发中,表单数据可以通过两种方法提交到服务器:Post 方法和 Get 方法。Post 方法将数据发送到服务器的主体中,而 Get 方法将数据发送到服务器的 URL 中。 5. Filter 拦截请求和响应,以便查看...

    面试问题整理面试问题整理

    2.如果 ActionForm 实例不存在,就创建一个 ActionForm 对象,把客户提交的表单数据保存到 ActionForm 对象中。 3.根据配置信息决定是否需要表单验证。如果需要验证,就调用 ActionForm 的 validate() 方法。 4....

    最全的java面试题,绝对有用

    分为有状态(Stateful)和无状态(Stateless)两种。 - 有状态(Stateful):服务器维护会话状态。 - 无状态(Stateless):每个方法调用都是独立的,不依赖于先前的状态。 - **Entity Beans**:表示持久化数据。...

    java面试问题汇总(非常全面)

    实现方式有两种:饿汉式(静态代码块)和懒汉式(双重检查锁定)。 #### 13. wait和sleep的区别 - `wait` 方法需要在 `synchronized` 块或方法中使用,并且会导致线程释放锁。 - `sleep` 方法是 Thread 类的方法,...

    Java初学者基础英语单词表

    74. **submit**: 提交,表单提交事件。 75. **parseInt**: 将字符串解析为整数。 76. **parseFloat**: 将字符串解析为浮点数。 77. **alert**: 显示警告对话框。 78. **confirm**: 显示确认对话框。 79. **...

    java面试题

    - **表单提交**:通过`&lt;form&gt;`元素提交表单数据。 - **JavaScript AJAX调用**:使用JavaScript发起异步请求,获取并处理服务器响应的数据。 #### 10. 事务处理 事务是一组操作序列,这些操作要么全部成功,要么...

    javaWEB进阶详细整理

    Http处理流程包括建立连接、发送请求、接收响应和关闭连接,GET和POST是两种主要的请求方式。GET请求常用于获取信息,而POST请求可以传递更复杂的数据,包括二进制数据。在HTML表单中,可以通过method属性设置提交...

    JSP跳转页面整理收集

    有时我们需要将当前页面的URL作为参数传递到另一个页面,下面的两种JS方法可以实现: ```javascript // 第一种方法 window.location.href = "login.jsp?backurl=" + window.location.href; // 第二种方法 // ...

Global site tag (gtag.js) - Google Analytics