我想知道如何在servlet中生成url。我有一个登录servlet,每次添加一个我想要的用户。每个用户个人资料的网址。 有人可以帮帮我吗?
答案 0 :(得分:7)
最简单的方法是声明如下的servlet映射:
<servlet-mapping>
<servlet-name>UsersSelvlet</servlet-name>
<url-pattern>/Users/*</url-pattern>
</servlet-mapping>
现在,每当您收到MyApp / Users / UserId请求时,您都会读取请求路径,获取userId并检查用户是否存在。如果不是,则返回“未找到”。否则,您将返回用户页面。
这是一个快速而又脏的RESTful服务实现。
答案 1 :(得分:2)
我认为kgiannakakis的解决方案非常好。我只是想补充一些细节,因为阅读Agusti-N的评论我怀疑可能是他遗漏了一些东西。
假设您有kgiannakakis描述的 UsersServlet ,一个名为 showUserProfile.jsp 的jsp和一个具有所有属性的 userBean 用户的个人资料需要在jsp中显示。
当新用户注册到您的应用程序时,您需要做的事情比现在做的更多。只需在db中注册一个新用户,忘记登录servlet 。
现在假设我使用我的用户名 alexmeia 注册了您的应用。
当有人对网址 yourApp / Users / alexmeia 进行数字时,会调用 UsersServlet 。此servlet从请求URL获取用户名alexmeia,检查数据库是否 此用户名存在且存在在userBean中加载此用户的所有属性。
然后转发到 showUserProfile.jsp ,它会显示从userBean读取它的用户配置文件。
显然,如果用户alexmeia不在Db中,您可以重定向到通用userNotFound.jsp,或者转到主页并显示消息等等......
这适用于所有注册用户的方式相同。您不需要为每个新用户真正创建一个真正的新URL。
答案 2 :(得分:1)
答案 3 :(得分:0)
您需要重写网址吗?也许像this这样的东西,但不是RMI生成你自己的用户ID