【问题标题】:How to create a URL in a servlet?如何在 servlet 中创建 URL?
【发布时间】:2010-10-12 22:32:57
【问题描述】:

我想知道如何在 servlet 中生成 url。我有一个登录 servlet,每次添加一个我想生成的用户。每个用户配置文件的 url。 谁能帮帮我?

【问题讨论】:

    标签: java servlets jakarta-ee


    【解决方案1】:

    最简单的方法是声明一个 servlet 映射,如下所示:

      <servlet-mapping>
        <servlet-name>UsersSelvlet</servlet-name>
        <url-pattern>/Users/*</url-pattern>
      </servlet-mapping>
    

    现在,每当您收到对 MyApp/Users/UserId 的请求时,您都会读取请求路径,获取 userId 并检查用户是否存在。如果不是,则返回“未找到”。否则返回用户页面。

    这是一个快速而肮脏的 RESTful 服务实现。

    【讨论】:

    • 如果用户的页面不存在,我将如何返回用户的页面?
    • 无论何时请求,您都会“即时”生成用户页面。
    【解决方案2】:

    我认为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,或者转到主页并显示一条消息等等......

    这对所有注册用户都适用。您不需要真正为每个新用户创建一个真正的新网址。

    【讨论】:

      【解决方案3】:

      听起来您可能想研究REST 技术。这里有一个tutorial,你可能想看看。

      【讨论】:

        【解决方案4】:

        您需要 URL 重写吗?可能是this 之类的东西,但不是 RMI,而是生成您自己的用户 ID

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-08-26
          • 2014-01-23
          • 1970-01-01
          • 2013-05-13
          • 2023-03-06
          • 1970-01-01
          • 2023-03-16
          • 1970-01-01
          相关资源
          最近更新 更多