2011-09-14 58 views
0

我是新来的jsp/ajax,你可以看到。
在上传网页的jsp/ajax文件中,POST用于上传文件,GET用于获取上传进度(使用ajax)。

在doPost()文件上传中(它应该在服务器端“下载”)完成并设置进度监听器。

在doGet()响应中XML是wriitten(ajax HttpRequest是GET)。
在doPost()中写入响应的HTML标记未显示在浏览器中.Redirection在doPost()中也不起作用。
我不能在doGet()中执行以上任何操作,因为它在ajax中被多次调用。不是吗?
如果我想在不同的页面显示上传文件的内容(比如文本文件),我该怎么做? (我的意思是在哪种方法应该重定向发生?)

我目前正在做的是在ajax,如果进度是100%,打开显示文件内容的页面使用window.open() 可以任何人都请解释进行中的过程(序列)。
其实这是我接下来的代码被写入响应中的doPost()
ajax file uploading progress同时使用GET和POST

+1

请参阅有关健谈/开放式问题的常见问题,并考虑修改为单个具体问题。 – danorton

回答

2

HTML标签不会在浏览器中显示

也许你需要先刷新响应缓冲区?然而,这与重定向不起作用的声明相冲突。也许你的意思是仅显示少数HTML标记,而不是全部?


重定向也没有的doPost()

工作这的确会失败,并在服务器日志IllegalStateException: response already committed(你读?)如果你写和冲洗HTML标记预先做出回应。


如果我要显示上传的文件在不同的网页内容(比如文本文件),我应该怎么办?

doPost()调用response.sendRedirect()之前什么反应。让ajax和doGet()担心处理你之前讨论的那些“HTML标签”。

在相关的说明,你可能会发现这个答案有趣:HTML5 File Upload to Java Servlet

+0

谢谢you.seems我需要花费相当多的时间来学习这些东西。它是如何发生的?1-点击提交按钮后doPost()方法被调用.2-在doPost()文件正在被下载。而doGet()被称为多次,并且响应XML被读取.4-在文件被上传之后,执行doPost()的最后(底部)的任何代码。在eclipse中的TCP/IP监视器中,浏览器似乎是说进度百分比为100的XML。我的意思是HTML标记是doPost()底部的输出,然后我尝试用response.sendRedirect()替换它。 – Dinushan