如何在servlet中创建URL?

4
我想知道如何在Servlet中生成URL。我有一个登录Servlet,每次添加用户时,我想为每个用户配置一个URL。有人可以帮助我吗?
4个回答

7
最简单的方法是声明一个如下的Servlet映射:
  <servlet-mapping>
    <servlet-name>UsersSelvlet</servlet-name>
    <url-pattern>/Users/*</url-pattern>
  </servlet-mapping>

现在,每当您收到MyApp/Users/UserId的请求时,您会读取请求路径,获取userId并检查用户是否存在。如果不存在,则返回“未找到”。否则,返回用户页面。
这是一个快速而简单的RESTful服务实现。

如果用户页面不存在,我该如何返回用户的页面? - Agusti-N
每当用户请求时,您将“即时”生成用户页面。 - kgiannakakis

2
我认为kgiannakakis的解决方案非常好。我只想添加一些细节,因为阅读Agusti-N的评论后,我怀疑他可能会错过某些东西。
假设您有kgiannakakis描述的UsersServlet、名为showUserProfile.jsp的jsp以及一个userBean,其中包含需要在jsp中显示的用户配置文件的所有属性。
当新用户注册您的应用程序时,您无需做任何额外的事情。只需在数据库中注册一个新用户,并忘记登录servlet。
现在假设我使用我的用户名alexmeia注册了您的应用程序。
当某人输入url yourApp/Users/alexmeia时,将调用UsersServlet。此servlet从请求url获取用户名alexmeia,在DB中检查此用户名是否存在,如果存在,则加载此用户的所有属性到userBean中。
之后,转发到showUserProfile.jsp,该jsp从userBean中读取并显示用户配置文件。
显然,如果用户alexmeia不在Db中,则可以重定向到通用的userNotFound.jsp,或转到主页并显示消息等等...
这适用于所有已注册用户。您不需要为每个新用户创建真正的新url。

1

听起来你可能想要了解REST技术。这里有一个教程,你可能想要看一下。


0
你需要URL重写吗?类似于this,但是不是使用RMI生成自己的用户ID。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接