文档章节

关于提交表单的提交及异步问题

帅的不像男的
 帅的不像男的
发布于 2016/03/28 11:50
字数 547
阅读 72
收藏 1
//输出json类型的字符流(自定义函数)
protected void writeAjaxResult(JSONObject jsonData, ServletResponse response) {
try {
 OutputStream os = response.getOutputStream();
 os.write(jsonData.toString().getBytes("UTF-8"));
 os.flush();
 os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
//调用输出流 MessageCallBack自定义实体类(有) 
MessageCallBack callback = new MessageCallBack(Message,Status等属性);
        callback.setMessage("您提交的相关表单数据字符含有非法字符!");
        callback.setStatus("403");
            JSONObject json = JSONObject.fromObject(callback);
            this.writeAjaxResult(json, response);
//获取当前路径
String last_url = request.getHeader("Referer");

当不为ajax请求时可以用重定向或是转发:

request.转发

getRequestDispatcher是服务器内部跳转,转发,地址栏信息不变,只能跳转到web应用内的网页,以前的request中存放的变量不会失效,就像把两个页面拼到了一起。 

<jsp:forward page="d.jsp"/>

运 行程序,你会发现c页面中的内容没有显示出来,因为forward是自动执行的,地址栏中虽然是c.jsp但实际上,但浏览器中显示的已经是d.jsp的 内容了,而且看到了从b.jsp传过来的参数。

重定向

sendRedirect是页面重定向,地址栏信息改变,可以跳转到任意网页,以前的request中存放的变量全部失效,并进入一个新的request作用域。

<a href="c.jsp?age=23">
为ajax请求时:需异步跳转
protected void writeAjaxResult(JSONObject jsonData, HttpServletResponse response) {
try {
 OutputStream os = response.getOutputStream();
 os.write(jsonData.toString().getBytes("UTF-8"));
 os.flush();
 os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
messageCallBack.setStatus("200");
messageCallBack.setMessage("申请成功!");
messageCallBack.setUrl(GoodsConstant.getPendingAuditGoods);
JSONObject jsonData = JSONObject.fromObject(messageCallBack);
this.writeAjaxResult(jsonData, response);
return null;

重定向的速度比转发慢,因为浏览器还得发出一个新的请求。同时,由于重定向方式产生了一个新的请求,所以经过一次重 定向后,request内的对象将无法使用。

转发,就是延长了requestB-C的作用 域,<jsp:forwardpage="d.jsp"/>,这一句话实际上是把c.jsp和d.jsp粘到了一起,他们就像是在一个页面 中。 

如果你用过struts,那么你就知道为什么在Action中,最后一句几乎总是mapping.findForward("xxx");了。因为我们在这个Action中设置的请求作用域的变量都将会在下一个页面(也许是另一个Action)中用到,所以要用转发。

© 著作权归作者所有

共有 人打赏支持
上一篇: java泛型
帅的不像男的
粉丝 12
博文 90
码字总数 47450
作品 0
深圳
程序员
私信 提问
关于form表单的异步提交问题

关于form表单的异步提交问题 form表单中有 怎么提交??

chinadong
2012/08/30
2.4K
5
yii2 modal弹窗之ActiveForm ajax表单异步验证

作者:白狼 出处:http://www.manks.top/yii2modalactiveform_ajax.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责...

白狼栈
2016/06/19
121
0
JQuery中使用ajax提交表单遇到的问题

今天在做维护时,遇到一段JQuery旧代码,看得很纠结,大致结构如下: html代码 <form id="myForm" method="post" action="abc.action"> </form>javascript代码 $("#mySubmit").click(functio......

hy86
2013/05/14
0
0
爱上MVC3系列~当Ajax.Beform不能满足我们的要求时...

mvc架构中提供了Html.BeginForm与Ajax.BeginForm,主要实现同步提交表单与异步提交表单,对于同步提交与传统的方式没有区别,而异步表单MVC自己进行了封装(可以看我的文章了解两种方式的表单...

mcy247
2017/12/06
0
0
form表单提交的几种方法

在form标签中添加Action(提交的地址)和method(post),且有一个submit按钮 ()就可以进行数据的提交,每一个input标签都需要有一个name属性,才能进行提交 当点击登陆时,向数据库发生的数据是...

alokka的博客
2017/12/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Windows 上安装 Scala

在安装 Scala 之前需要先安装 Java 环境,具体安装的详细方法就不在这里描述了。 您可以自行搜索我们网站中的内容获得其他网站的帮助来获得如何安装 Java 环境的方法。 接下来,我们可以从 ...

honeymose
今天
1
0
数据库篇多表操作

第1章 多表操作 实际开发中,一个项目通常需要很多张表才能完成。例如:一个商城项目就需要分类表(category)、商品表(products)、订单表(orders)等多张表。且这些表的数据之间存在一定的关系...

stars永恒
今天
3
0
nginx日志自动切割

1.日志配置(Nginx 日志) access.log----记录哪些用户,哪些页面以及用户浏览器,IP等访问信息;error.log------记录服务器错误的日志 #配置日志存储路径:location / {      a...

em_aaron
昨天
5
0
java 反射

基本概念 RTTI,即Run-Time Type Identification,运行时类型识别。RTTI能在运行时就能够自动识别每个编译时已知的类型。   要想理解反射的原理,首先要了解什么是类型信息。Java让我们在运...

细节探索者
昨天
2
0
推荐转载连接

https://www.cnblogs.com/ysocean/p/7409779.html#_label0

小橙子的曼曼
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部