これを達成するために使用できる方法の 1 つは、 http:Filter
//www.site.com/article/ *からすべてのリクエストを受信し、article.jsp?name=* にリダイレクトする独自の方法を作成することです。
例 :
public class URLFilter implements Filter
{
@Override
public void init(FilterConfig config) throws ServletException
{
}
@Override
public void doFilter(ServletRequest p_oRequest, ServletResponse p_oResponse, FilterChain p_oChain) throws IOException, ServletException
{
String sName = oRequest.getRequestURI();
if(sName.lastIndexOf('/') != -1)
{
sName = sName.substring(sName.lastIndexOf('/') + 1);
}
else
{
// You could trap that in your article.jsp to show error message
sName = "404";
}
p_oRequest.getRequestDispatcher("/article.jsp?name=" + sName).forward(p_oRequest,p_oResponse);
}
}
もちろん、それを改善し、いくつかの検証を行う必要があります。また、このコードはテストされていませんが、私の JSF CMS URLFilter に基づいています。
web.xml
これを!に含めることを忘れないでください。
<filter>
<filter-name>URLFilter</filter-name>
<filter-class>path.to.your.URLFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>URLFilter</filter-name>
<url-pattern>/article/*</url-pattern>
</filter-mapping>