1

我只是想知道,在java中,当我们需要类似的东西时,www.mydomain.com/buy我会制作一个servlet并将其映射到buy并将其添加到部署描述符中。因此,对于每个这样的链接,我都会有一个 servlet,它只专门映射到该名称。

但是现在 facebook 为每个用户提供了一个独立的 url 到他的个人资料,比如www.facebook.com/user1or www.facebook.com/user2/friends,我对 php 了解不多,所以我不知道他们在做什么,但我想知道是否有人必须在 java 中做同样的事情,然后我认为在部署描述符中为 8 亿用户创建映射并为他们创建相同数量的 servlet 是不可行的。

有没有办法在java中使这样的事情成为可能?

不仅facebook很多网站都这样做,比如我知道的一些非常大的电子商务网站展示这样的产品www.ecom.com/camera-nikonwww.ecom.com/nokia-n70-music-edition/

4

1 回答 1

0

Such mapping has be done programmatically. You need DispatcherServlet mapped to /*. It will analyse URL, extract user name from it and perform appropriate calls inside your business logic.

BTW Spring MVC provides higher level mapping facilities. For example you can write controller mapped to / (as servlet mentioned above). The you can define method annotated as following:

@RequestMapping(value = "/{userName}/friends, method = RequestMethod.GET)
public User[] getFriends(@PathVariable(value = "userName") String userName) {
....
}

The mapping between user name passed into URL and the method argument will be done automatically.

于 2012-09-03T11:19:08.047 回答