java接受post请求问题,求大侠帮忙~~

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java接受post请求问题,求大侠帮忙~~相关的知识,希望对你有一定的参考价值。

现在我在做接口功能问题如下:
1、发送方将xml数据和两个附件发到接收方,我把主要字段都拼成一个xml格式post过去,在接收方我用request.getInpuptStream()获得,已得到数据能显示出来,附件我怎么发呢?一个word文档和一个pdf文档这个怎么发?
2、接收到的xml数据我用java dom解析的时候能获得xml节点的名称但是没有数据时空值,但是我把读到的xml数据读出来后台显示的有值得。为什么呢?
3、如果附件发过来的时候我在接收方用什么关键字或方法来接受附件的二进制流呢?

你好,我分别回答一下,这个我也不是十分精通,我只说出我的想法,仅供参考。
1. 建议使用fileupload等组件,上传附件都是使用这个。具体的使用方法还是网上查查,很多。
2. 我建议你将品好的数据写到文件中,这样在用DOM解析解析。
3.这个问题还是参考第一个,已经有人实现了,建议你学习一下,避免关门造车。
参考技术A <form enctype="multipart/form-data">
<input type="file">
<input type="file">
</form>
表单上传

服务器端仍然用getXXXStream读取数据 你先读到的所有数据保存下来研究一下格式就懂怎么处理了,格式大致是用分割符分割了每一个post参数
参考技术B 1发送附件的方式可以是发送一个路径和一个文件名字,在接收方面进行读取。2和3不熟悉,就不说了。

关于JS定时刷新的问题,只允许刷新一次,求大侠们来帮帮忙

这一段是我写的定时刷新,但是这样会每隔7500ms就刷新,我现在是想在停户后只刷新一次就行,那这段代码应该怎么改,下面是页面截图:

在点“是”后就刷新一次页面就行
下面是这个页面的部分代码

可以考虑使用setTimeOut
你这个代码的问题,我分析,是因为每次页面刷新以后,你的定时器id都会被重新赋值为undefined
而你在页面加载时就会执行你自定义的定时器代码,代码内判断定时器id的条件语句永远不会成立,所以是不会清除定时器的
总的来说,http无状态造成的
如果一定要使用setinterval,你需要区分刷新页面后和刷新前的状态,这恐怕需要服务端帮忙了额追问

嗯,我现在把setInterval()换成了setTimeout(),但是貌似还是没达到要求,因为,我改了后点勾选框试了下效果,点一次过了7500ms页面刷新了一次,在点勾选框过了7500ms后为啥页面还会刷新呢,是不是还要改哪里?

追答

原因和我说的一样,因为你根本没有清除定时器
你的定时器是在页面加载后自动执行,而清除定时器的代码也是在页面加载后执行
每次刷新,页面重新加载

所以判断条件永远为假

页面加一个隐藏字段,定时器代码中改变一下隐藏字段的值,然后判断的时候不是判断定时器id,二十判断隐藏字段的值是否与你改变后的值相等

追问

其实我的定时器应该是在点图中


“是”以后才开始计时的,这样的话,按照你说的话,应该怎么加隐藏字段,请大侠帮帮忙,我感激不尽,因为这起初不是我写的项目,那个写着项目的人离职了,现在我来接手了这个项目,所以不是很熟悉

追答

你是想实现点击按钮之后7.5秒后页面刷新?
其实你可以把你的业务说的详细点嘛,也许不需要这样设计呢?

追问

嗯,现在我的经理就是想让我做成,点击“是”之后过7.5秒只刷新一次,其实业务是这样的:点击停户,用户状态那一栏的状态变为已停户,但是现实情况是,必须得手动刷新,页面用户状态才能变更为已停户(其实停户成功后,数据库的用户状态已经为“已停户”了,只是页面上需手动刷新),大侠帮个忙,看如何来实现这个效果,还在不?朋友,这问题很着急,能帮我看下么

追答

那你的代码有问题啊
定时器要执行的方法写到按钮的onclick事件,使用settimeout
而且,其实只需要重新访问下页面,数据重新绑定就ok,如果你有使用了服务端缓存,那么在你停户的时候就该更新下服务端缓存的
http://jsfiddle.net/xcchcaptain/j7cj2/

追问

大哥,我的代码怎么会有问题呢,我试了下我的代码只是重复刷新,按照你说了改成settimeout后还是重复刷新,就这点搞不懂,为啥改成settimeout还是重复刷新

追答

触发时机有问题啊
,不是说了嘛,是在onclick事件触发, 不是document.ready触发

追问

嗯,终于找到原因了,哎,都是我粗心大意,本来很简单的问题搞的这么复杂,谢谢你这么耐心的回答,你的回答对我有很多帮助,非常感谢

参考技术A setTimeout("f_start_multi_monitor",7500);

超时调用 只运行一次 

一般都会用它模拟循环调用

因为循环调用有些时候 对每次调用发生的时间间隔不可控

因为是单线程

但每次setTimeout的话就可以保证任务队列前面的代码都执行完

就变得可控了

追问

嗯,我现在把setInterval()换成了setTimeout(),但是貌似还是没达到要求,因为,我改了后点勾选框试了下效果,点一次过了7500ms页面刷新了一次,在点勾选框过了7500ms后为啥页面还会刷新呢,是不是还要改哪里?

追答

一种可能是点勾选框触发的事件里 调用这个了刷新

另一种可能是刷新之后触发$(document).ready();里面写的f_start_multi_monitor()

追问

嗯,现在我的经理就是想让我做成,点击“是”之后过7.5秒只刷新一次,大侠帮个忙,看如何来实现这个效果,很着急

追答

就在点是触发的事件里加setTimeout("f_start_multi_monitor()",7500);
不行吗

追问

不行,还是重复刷新

追答

f12 断点打到
$(document).ready();里面的f_start_multi_monitor()上

然后执行你想要的一次刷新
然后看是不是断点会停到$(document).ready()里刚打得上

参考技术B 将你的setInterval()方法换成setTimeout(),setInterval()是循环刷新的,而setTimeout()是刷新一次,想要再次刷新需要调用

以上是关于java接受post请求问题,求大侠帮忙~~的主要内容,如果未能解决你的问题,请参考以下文章

JTable中如何选中seq=0的行并高亮显示?如图,急 求大侠帮忙啊!

如何用table做一个form表单?我新手,请各位大侠帮帮忙,求详解,给小弟个具体代码

ik分词停用词典stopword.dic对中文不起作用,求大侠帮忙是怎么回事

急求各位大侠帮忙,缺文件core.dll,怎么办?

用PHP编写小程序。求大侠帮忙、谢谢

Linux下DHCP服务器的配置(求大侠帮忙写出来就行,还能追加分)