GWT - 如何读取服务器上的(文本)文件(或:如何在 RemoteServiceServlet 中获取 servletContext)

Posted

技术标签:

【中文标题】GWT - 如何读取服务器上的(文本)文件(或:如何在 RemoteServiceServlet 中获取 servletContext)【英文标题】:GWT - How to read a (text)file on the server (or: how to get the servletContext in RemoteServiceServlet) 【发布时间】:2015-03-04 15:26:56 【问题描述】:

对于我的 GWT/GAE 应用程序,我有一个非常大的文本文件,我想以正常方式在 servlet 上读取它(例如 Reader in = new InputStreamReader (VideoBroadcastServiceImpl.class.getResourceAsStream("com/myapp/resources/textfile")) 就像你在本地机器上做的那样。 问题是我在这一行得到了 NullPointerException。 我已经阅读了一种更复杂的方法来读取存在于 GWT 项目中的 WEB-INF 文件夹中的文件的提示,在该项目中我需要 servletContext。一旦有了 servletContext,我就可以询问文件存在的真实路径。这种方式的问题是我需要自己实现getServletContext() 方法,这在HTTPServlet 中很容易,但在RemoteServiceServlet(我也使用的用于RPC 调用的GWT 标准servlet)中却不是。 是否有另一种简单的解决方案来读取服务器上的文件,或者你能给我一个建议,我如何在 RemoteServiceServlet 中获取 servletContext?

非常感谢您!

【问题讨论】:

【参考方案1】:

RemoteServiceServlet HttpServlet,所以它有一个getServletContext() 方法。

(您也可以分别使用getThreadLocalRequest()getThreadLocalResponse() 获得HttpServletRequestHttpServletResponse

【讨论】:

好的,我知道为什么它不起作用了。当我试图在 servlet 的构造函数中获取 servletContext 时,我总是遇到异常。显然 servletContext 只能在 servlet 的方法中访问。我想在构造函数中读取文本文件(以实例化一个列表),因为我只需要在用户访问我的网站时创建一次列表。感谢您的帮助! 使用servlet的init方法怎么样?

以上是关于GWT - 如何读取服务器上的(文本)文件(或:如何在 RemoteServiceServlet 中获取 servletContext)的主要内容,如果未能解决你的问题,请参考以下文章

GWT文件上传表单提交POST请求无法读取文件

使用 GWT 读取一个非常大的本地 XML 文件

MFC 读取http文件服务器上的文件列表,并选择文件进行下载

在 GWT 的客户端读取文件

从 GWT 客户端访问另一台服务器中的文件

rpc与gwt一起使用时如何将参数类型设置为inout?