是否可以将文本文件内容从Servlet流传输到JSP?

时间:2019-01-02 20:44:28

标签: java jsp servlets

我对JSP / Servlet的经验不多,我一直在寻找有关我的问题的答案,但没有找到我的问题的答案。

可以说我在后端有一个名为test.txt的文件,并且我希望我的servlet将文件内容动态流式传输到jsp页面。动态是指如果要更新文件,文件末尾会附加文本,那么我希望客户端查看生成的html / jsp文件以实时查看更改。

例如,客户端将能够在html文档的textbox元素中查看更改。

JSP / Servlet是否可行?如果是这样,我将如何处理?

感谢您的时间。

已经尝试搜索相关问题,搜索流查询 并且没有找到可以回答我问题的答案。

2 个答案:

答案 0 :(得分:0)

我认为您可能应该加载文件:

查看示例:How should I load files into my Java application?

并使用javascript重新加载页面

请参阅:How to reload a page using JavaScript

答案 1 :(得分:0)

我确定您不擅长Web开发,因此请对其进行修复。 当客户端(移动应用程序,浏览器,...)要将请求发送到服务器时,它将创建一个 TCP / IP (我们有更多协议,例如UDP,但Web应用程序可以在TCP / IP协议)连接。客户端和服务器之间的所有数据都将通过此连接进行传输。这是从服务器或客户端发送和接收数据的唯一方法。 当您创建一个JSP文件(并且将其部署到服务器应用程序上时将编译为Class文件[为了更好地了解搜索 JASPER JSP ENGINE ])以响应请求时,我将为浏览器生成如下响应:

some Http-Headers
Content-Type : text/html
some other Http-Headers

{JSP as a html text}

因此浏览器将解析响应,将其呈现并显示给您的客户端用户。 这意味着该jsp页面将作为静态html页面发送。 要进行更新,您有2种方法:

1-错误的方式:客户端和服务器之间保持活动连接,并且每次要更新客户端时,请再次发送完整的响应!因此,所有数据都来了,html将再次呈现并...因此,这是一种不好的方式,并不安全,还有很多其他事情。

2-正确的方法::使用JavaScript在客户端和服务器之间创建新的异步连接,只需请求观看文件中的数据更改并将其实时显示给用户,而无需呈现整个html页面。如果此连接使用Http协议(http协议只是文本协议,而不是TCP / IP之类的网络协议),请在您的请求标头中添加Connection : Keep-Alive到服务器,以使其保持活动状态。

注意:如果您想更好地理解,请在Java中搜索socket并了解其工作原理。