Java 在WEB-INF中创建XML文件

Java 在WEB-INF中创建XML文件,java,jsp,jakarta-ee,servlets,Java,Jsp,Jakarta Ee,Servlets,我使用创建我的网站地图,目前我有很多链接,我无法手动编写所有规则,例如: <rule> <from>^/about-us$</from> <to type="redirect">/myWeb/Controller?page=ForwardAbout</to> </rule> 规则是这样的 <rule> <from>^/about-us$</from> <to

我使用创建我的网站地图,目前我有很多链接,我无法手动编写所有规则,例如:

<rule>
   <from>^/about-us$</from>
   <to type="redirect">/myWeb/Controller?page=ForwardAbout</to>
</rule>
规则是这样的

<rule>
   <from>^/about-us$</from>
   <to type="redirect">/myWeb/Controller?page=ForwardPotatoes</to>
</rule>

^/关于我们$
/myWeb/Controller?页面=转发
然后,应该编写
urlrewrite.xml
,以便应用到新文章的重定向

主要问题是:如何在WEB-INF中创建这个
urlrewrite.xml


第二个问题:假设每周都有新文章,每周都创建这个
urlrewrite.xml
来更新规则,那么这些规则是否适用而不必再次重新部署web应用程序

在大多数应用服务器上,您无法动态更改web应用程序内部的任何内容,除非您重新打包并重新部署应用程序

即使您可以更改文件,例如在未打包的战争中,tuckey也可能只读取一次文件,并且除非您重新启动应用程序,否则不会获取新规则

为什么不制定一个更动态的规则来匹配所有请求?在重写规则中,您可以使用反向引用,例如“$1”,它将匹配括号之间的第一个正则表达式,如:

<rule>
   <from>^/about-(.*)$</from>
   <to type="redirect">/myWeb/Controller?page=Forward$1</to>
</rule>

^/关于-(*)$
/myWeb/Controller?页面=转发$1

我也考虑过这一点,但问题是正则表达式并不总是与page=Forward上的参数匹配,我认为最简单的方法是强制它们匹配,谢谢
<rule>
   <from>^/about-(.*)$</from>
   <to type="redirect">/myWeb/Controller?page=Forward$1</to>
</rule>