在struts2项目中隐藏.jsp url扩展名

在struts2项目中隐藏.jsp url扩展名,struts2,Struts2,我正在使用struts2 web应用程序。我想对我的url进行映射,以便从url中删除扩展名“.jsp”。 下面是我的web.xml的代码片段。我想让我的url显示/login而不是/login.jsp <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <

我正在使用struts2 web应用程序。我想对我的url进行映射,以便从url中删除扩展名“.jsp”。 下面是我的web.xml的代码片段。我想让我的url显示/login而不是/login.jsp

<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
    <filter-name>URLFilter</filter-name>
    <filter-class>example.MyFilter</filter-class>
    <init-param>
        <param-name>onError</param-name>
        <param-value>/login.jsp</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>URLFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

支柱2
/*
URLFilter
示例.MyFilter
一个错误
/login.jsp
URLFilter
/*
只需通过操作访问所有JSP(并将它们放在
WEB-INF
下面的某个位置,以强制执行此策略)。使用Struts2的“默认操作”很容易:

<action name="login">
    <result>/WEB-INF/pages/login.jsp</result>
</action>

/WEB-INF/pages/login.jsp
我不知道它与
ServletFilter
集成得有多好,也许您必须将web.xml中提到的一个转换为Struts2
拦截器

,只需通过操作访问所有JSP(并将它们放在
web-INF
下面的某个位置以强制执行此策略)。使用Struts2的“默认操作”很容易:

<action name="login">
    <result>/WEB-INF/pages/login.jsp</result>
</action>

/WEB-INF/pages/login.jsp

我不知道它与
ServletFilter
的集成程度如何,也许您必须将web.xml中提到的一个转换为Struts2
拦截器

您可以使用属性文件更改url扩展名,如下链接所示:


您可以使用属性文件更改url扩展名,如下链接所示:


同意;简而言之,除非通过精心设计的S2(或任何框架)应用程序中的操作,否则你不应该访问页面;简而言之,除非通过精心设计的S2(或任何框架)应用程序中的操作,否则永远不要访问页面。