如何最好地打包网站

时间:2009-06-15 14:42:21

标签: java tomcat war

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

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

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

必须有一个比部署战争更好的解决方案,然后复制数据。有没有人有任何建议?

2 个答案:

答案 0 :(得分: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

创建

答案 1 :(得分:1)

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

如果您要将信息存储在很多不同的人身上并需要在多个地方访问它,为什么不选择使用数据库呢?也许甚至像PostgreSQL或MySQL那样免费?

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

然后,如果您需要访问某些文件,您可以创建面向服务的体系结构(SOA)并使用restful Web服务来提取基于URL的图像。这将允许将存储卸载到您的信任区域中的另一台计算机。

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