使用JSP在Web浏览器上使用静态URL替换动态URL

时间:2015-09-14 00:53:39

标签: java jsp servlets

所以我决定“更新”我用JSP编写的网站,以显示静态网址而不是公共动态网址。

到目前为止,我编写了一个servlet来将静态URL重定向到相应的动态URL。数据存储在数据库表中。

这是代码:

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    StringBuilder redirectTo = new StringBuilder();
    redirectTo.append(getBaseURL());
    redirectTo.append(getBaseURI());
    redirectTo.append("/index.jsp");

    String url = request.getRequestURI();

    if (url.contains(".jsp")) return;

    try {
        KeyPageId_Lang k = SiteMap.getRedirectFromCanonicalURL(url);
        if (k!=null) {
            redirectTo.append("?id=" + k.getkPageId());
            redirectTo.append("&lang=" + k.getkLanguage());
        }
        else {
            log.error("CanonucalURLRedirect: No translation found for " + url);
        }
    }
    catch (Exception e) {
        log.error("CanonucalURLRedirect ERROR: " + e.getMessage());
    }

    response.sendRedirect(redirectTo.toString());

因此,如果我输入:http://localhost/jsp/en/home,它会成功重定向到http://localhost/jsp/index.jsp?id=1&lang=en

如果找不到静态URL,它将重定向到默认的/index.jsp

另外,在index.jsp上,我有以下一行:

<link rel="canonical" href="<%=canonicalURL%>" />

让搜索引擎为友好的静态网址编制索引。

现在,我一直在搜索很多东西,我仍然无法用浏览器导航栏上的静态URL替换动态URL来显示localhost / jsp / en / home而不是localhost / index。 JSP ID = 1&安培;朗= EN

有什么想法吗?

谢谢!

0 个答案:

没有答案