gpt4 book ai didi

java - 在 Java EE Web 应用程序中创建自定义 URL

转载 作者:行者123 更新时间:2023-12-01 05:31:41 24 4
gpt4 key购买 nike

我正在编写一个简单的小应用程序,它是一个预订系统。系统中有两种角色:管理员和用户。所有请求都通过唯一的 servlet 进行。 Index.jsp(用户和管理员的登录页面)无需它的帮助即可工作。所以我的起始网址如下所示:

localhost:8080/[AppName]/index.jsp

为了确保安全,我编写了一个过滤器,不允许匿名用户访问除index.jsp之外的任何页面;管理员进入用户页面,用户进入管理页面。但问题是我无法正确映射过滤器,因为我的应用程序中的所有 URL 如下所示:

localhost:8080/[AppName]/servlet?command=[commandName]

正因为如此,这样的映射,就像(当然,在web.xml中过滤器已经在这个映射之前描述过):

<filter-mapping>
<filter-name>Security</filter-name>
<url-pattern>/servlet?command=[commandName]</url-pattern>
</filter-mapping>

不起作用,我一点也不喜欢它,因为在这种情况下,有必要规定应用程序的所有命令。在这方面,我有一个想法,让 smbdy 登录时的 url 如下所示:

localhost:8080/[AppName]/user - 用户

localhost:8080/[AppName]/admin - 用于管理员

在 web-inf 文件夹中,我有内部文件夹“pages”,其中有几个内部文件夹:“error”、“admin”和“user”,它们保存这些角色和错误的 jsp 页面。

如何实现所提出的想法?我怀疑这是相当微不足道的,但我没有找到答案,因为我什至不知道如何命名我的问题。

最佳答案

我想我现在明白了;-首先创建初始 servlet(index.jsp 不是 servlet),一旦用户访问您的页面,他就会被重定向到该页面。例如 localhost:8080/YouWebAppName/IndexServlet。

IndexServlet 检查是否设置了 session ,如果没有,则重定向到可访问的index.jsp,如果设置了 session ,则检查角色,如果角色设置为用户,则重定向到 localhost:8080/YourWebAppName/UserServlet,如果 session 设置为 Admin,它重定向到 localhost:8080/YourWebAppName/AdminServlet。

在 Admin 和 User servlet 中,您首先检查 session 变量是否分别等于 user/admin。

如果您想在两个 servlet 中共享某些方法,请让第三个 servlet 根据需要调用它,然后 UserServlet 和 AdminServlet 应该扩展该 servlet

关于java - 在 Java EE Web 应用程序中创建自定义 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8874539/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com