0

我正在编写一个简单的 Web 应用程序,使用 tomcat 服务器、servlet 和 jsp 页面。理想情况下,我希望我的网站只有一个页面,我可以在其中加载有关用户操作的内容(jsp 文件)。

然而,同样重要的是,用户将能够“标记”某些 URL 以直接访问他们需要访问的内容。

例如,假设我有一个详细说明我网站的所有注册用户的页面,然后每个用户都有一个个人资料页面。我希望导航到某人个人资料的用户将看到以下网址:

http://mywebsite.com/users/some_user_name

并且当他们输入此 url 时,他们将进入 some_user_name 的个人资料。

问题是所有内容都是使用 ajax 生成的,我手动更改了使用 history.pushState 显示的 url - 这样当您输入示例 url 时,您只需获得 404 页面。

我想到的一个简单解决方案是将 servlet 映射到 /users/* 模式,该模式以正确的 jsp 页面响应。这是一个合理的解决方案,还是有其他更好和可接受的方法来处理此类问题?

谢谢 :)

4

1 回答 1

0

如果您正在使用 pushState 管理历史记录,那么当通过 url 直接访问应用程序时,您可以获取 url 片段并进行 ajax 调用并加载内容。为了实现这一点,您的所有网址都必须符合其他要求,以便在您的情况下轻松加载正确的视图,它可以是这样的

http://mywebsite.com/users/profile/some_user_name

因此,现在加载应用程序时,您可以使用用户名some_user_name加载配置文件视图

如果您想要其他视图,例如编辑,则可以

http://mywebsite.com/users/profile/edit/some_user_name

或者

http://mywebsite.com/users/profileEdit/some_user_name

您应该实现一个可以正确路由这些 url 的路由器,以及一个可以从服务器获取数据并将其传递给查看的主要方法。

如果您可以将您的 JSP 代码用作休息 web 服务,这可以很容易地实现,并且有很多库支持这样的事情。你可能想看看 Backbone.js /Knockout.js

是带有比较的流行框架列表。

但您可能面临的问题是 SEO。也有一些解决方法。

于 2012-08-24T01:23:30.317 回答