Java 需要在Struts2中使用Tuckey URL Rewrite进行URL重写的帮助吗

Java 需要在Struts2中使用Tuckey URL Rewrite进行URL重写的帮助吗,java,url-rewriting,struts2,tuckey-urlrewrite-filter,Java,Url Rewriting,Struts2,Tuckey Urlrewrite Filter,我想为我的基于Struts2的应用程序(目前在开发环境中)重写URL。我已经搜索了它,找到了关于Tuckey URL重写的信息,并在我的项目中进行了设置。现在我想要我的登录url,当前为http://localhost:8080/MyProject/loadLogin.action(我在Struts2中使用通配符映射)看起来像http://localhost:8080/login。 下面是我的配置代码: struts.xml: 麦洛金 web.xml: URL重写过滤器 org.tucke

我想为我的基于Struts2的应用程序(目前在开发环境中)重写URL。我已经搜索了它,找到了关于Tuckey URL重写的信息,并在我的项目中进行了设置。现在我想要我的登录url,当前为
http://localhost:8080/MyProject/loadLogin.action
(我在Struts2中使用通配符映射)看起来像
http://localhost:8080/login
。 下面是我的配置代码:

struts.xml:


麦洛金
web.xml:


URL重写过滤器
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
对数电平
调试
URL重写过滤器
/*
要求
向前地
支柱2
org.apache.struts2.dispatcher.ng.filter.strutspreadexecutefilter
支柱2
/*
现在是urlrewrite.xml,它有规则,我不知道我是否正确配置了规则:


^/*
/登录

重写到此URL
http://localhost:8080/login
您必须将URL重写筛选器部署到根上下文。但是应用程序正在
/MyProject
上下文中运行。不能将同一应用程序中的两个筛选器部署到同一上下文以执行所需的操作

重写URL的工作原理:首先访问要显示的URL,然后URL重写筛选器搜索规则,如果找到匹配项,则执行规则并将请求转发(默认情况下)到新URL,该URL对用户隐藏

如果在标记中使用
type=“redirect”
,则会显示新的URL,因为它意味着

与此规则的“条件”和“发件人”匹配的请求将被HTTP重定向。这与我们所做的一样:
HttpServletResponse.sendRedirect([to value]))

若要重写URL,应使用部署到根上下文中的应用程序的此规则


^/登录$
/MyProject/loadLogin.action

为什么要使用URL重写?要删除
/MyProject
?->只需将应用程序部署到root。要更改
loadLogin.action
?->只需重命名您的操作。@AleksandrM关于您对重命名操作的第二个建议,我正在使用通配符映射,其中load()是显示登录页面的LoginController中的方法,因此如何重命名它以获得相同的结果。谢谢你的回复…为什么要使用通配符?您还映射到登录控制器的哪些内容?创建没有通配符的操作。@hasan我有同样的问题,请Alekhelp@RomanC我希望我的url不包含实际的项目和操作名称。他们必须戴上面具。我在这里引用了一个链接:你建议你使用URL重写技术的地方。谢谢