【发布时间】:2010-10-12 22:32:57
【问题描述】:
我想知道如何在 servlet 中生成 url。我有一个登录 servlet,每次添加一个我想生成的用户。每个用户配置文件的 url。 谁能帮帮我?
【问题讨论】:
标签: java servlets jakarta-ee
我想知道如何在 servlet 中生成 url。我有一个登录 servlet,每次添加一个我想生成的用户。每个用户配置文件的 url。 谁能帮帮我?
【问题讨论】:
标签: java servlets jakarta-ee
最简单的方法是声明一个 servlet 映射,如下所示:
<servlet-mapping>
<servlet-name>UsersSelvlet</servlet-name>
<url-pattern>/Users/*</url-pattern>
</servlet-mapping>
现在,每当您收到对 MyApp/Users/UserId 的请求时,您都会读取请求路径,获取 userId 并检查用户是否存在。如果不是,则返回“未找到”。否则返回用户页面。
这是一个快速而肮脏的 RESTful 服务实现。
【讨论】:
我认为kgiannakakis的解决方案非常好。我只是想补充一些细节,因为阅读 Agusti-N 的评论,我怀疑他可能遗漏了什么。
假设您有一个由 kgiannakakis 描述的 UsersServlet、一个名为 showUserProfile.jsp 的 jsp 和一个具有以下所有属性的 userBean需要在 jsp 中显示用户的个人资料。
当一个新用户注册到您的应用程序时,您需要做的只是您现在已经做的事情。只需在数据库中注册一个新用户,然后忘记登录 servlet。
现在假设我使用我的用户名 alexmeia 注册了您的应用。
当有人输入 url yourApp/Users/alexmeia 时,UsersServlet 被调用。这个 servlet 从请求 url 中获取用户名 alexmeia,如果 此用户名存在,如果存在在 userBean 中加载此用户的所有属性。
之后,转发到 showUserProfile.jsp,显示从 userBean 读取的用户配置文件。
显然,如果用户 alexmeia 不在 Db 中,您可以重定向到一个通用的 userNotFound.jsp,或者转到主页并显示一条消息等等......
这对所有注册用户都适用。您不需要真正为每个新用户创建一个真正的新网址。
【讨论】:
您需要 URL 重写吗?可能是this 之类的东西,但不是 RMI,而是生成您自己的用户 ID
【讨论】: