3

我正在开发一个在 Tomcat 中运行的网站,该网站存储了大量成员数据,但我不确定如何最好地打包它。

我希望能够轻松部署战争,而无需先从中删除任何东西。

我的第一个想法是在战争之外将成员数据分解到自己的目录中,但我的问题是其中一些内容需要在网站中链接(图像等)。

必须有比部署战争然后复制数据更好的解决方案。有没有人有什么建议?

4

2 回答 2

4

你的第一个想法是正确的。将数据存储在外部目录中是最好的解决方案。您可以通过创建可根据图像请求访问该外部目录的 servlet 轻松解决图像问题。

我无法发布我的代码,但这里有一个类似的片段可以创建响应。您只需要创建扩展 FileServlet 的类并编写代码来从您的目录加载文件。

http://snippets.dzone.com/posts/show/4629

然后,将其添加到您的 web.xml:

<servlet>
    <servlet-name>My File Servlet</servlet-name>
    <servlet-class>my.package.FileServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>My File Servlet</servlet-name>
    <url-pattern>/upload/*</url-pattern>
</servlet-mapping>

并且像http://myapp.com/upload/userimage.jpg这样的每个链接都将由 servlet 创建

于 2009-06-15T14:47:38.977 回答
1

您绝对应该将数据与应用程序分开。由于我不确定您最初放置成员数据(显然是图像和其他东西)的原因,我可以根据更理想的环境提供建议。

如果您要存储许多不同人的信息并且需要在多个地方访问它,您为什么不选择使用数据库呢?甚至可能是 PostgreSQL 或 MySQL 之类的免费软件?

如果您将数据存储在数据库中,则很容易通过 java 检索,或者使用像 Hibernate 这样的 ORM,或者只使用一些基本的 JDBC 库。这假设您了解 SQL 和 Java 中的数据库层。

然后,如果您需要访问某些文件,您可以创建一个面向服务的体系结构 (SOA) 并使用一个静止的 Web 服务来根据一个 url 拉取图像。这将允许将存储卸载到您信任区域中的另一台机器。

如果没有关于问题和服务器设置的更多详细信息,很难提供一个好的解决方案。

于 2009-06-15T14:51:18.563 回答