更改Web应用程序的URL以进行部署

时间:2012-11-27 09:18:34

标签: java struts

我使用STRUTS 2.0开发了一个基于Web的应用程序,我想部署它。我想部署两个或多个不同的实例,一个用于用户测试,一个用于生产等。我想添加名称空间,如我的URL必须< / p>

http:\ mysitename \ abc \ development \ login.jsp用于开发环境 用于测试环境的http:\ mysitename \ abc \ testing \ login.jsp。

我正在考虑创建一个用于测试的项目的单独副本,一个用于开发等等。

但我可以做一些事情,比如在URL中添加开发或测试之类的名称,这样就可以很容易地识别正在运行的环境。我不需要在项目中更改图像路径和css文件路径。

像编辑我的struts.xml或web.xml

提前致谢

2 个答案:

答案 0 :(得分:1)

  

我想添加名称空间,如我的URL必须是http:\ mysitename \ abc \ development \ login.jsp,用于开发环境http:\ mysitename \ abc \ testing \ login.jsp,用于测试环境。

您可以将其部署为不同的应用程序上下文。与http://host/devhttp://host/test/类似,您无需在配置文件中执行任何特殊操作。您可以使用名称dev.war或test.war生成war(或重命名),然后部署它。

答案 1 :(得分:1)

如果您正确执行此操作并且未在Web应用程序代码中对上下文路径进行硬编码,则无需付出此类努力。

以下是我用来做的事情:

1 - 编写在所有jps中导入的JSP。我们称之为taglibs.jsp并定义一个包含动态获取的上下文路径的变量。

...
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
...

2 - 在你要使用它的jsp中导入taglibs.jsp,这样你就可以使用变量:

<%@ include file="/taglibs.jsp"%>

3 - 使用ctx变量:

图片,javascript和其他内容相同。

因此,执行此操作时,您的应用程序将不依赖于上下文路径,并且您只需更改战争名称就可以使用不同的版本。