JavaEEservlet重写Servlet路径

JavaEEservlet重写Servlet路径,java,jakarta-ee,servlets,java-ee-6,Java,Jakarta Ee,Servlets,Java Ee 6,我有一个简单的用户应用程序。我有一个MainControllerServlet,负责应用程序中的一般交互。此servlet将“侦听”url模式:/、/index等(任何其他形式的索引)。我还有一个负责登录的UserControllerServlet,这个Servlet“监听”来自/CheckLoginurl模式 我有一个jsp表单,在url/中,当我提交它时,它指向位于/CheckLogin的servlet。然后,UserControllerservlet对其进行处理,无论登录是否正确,它都会重

我有一个简单的用户应用程序。我有一个
MainController
Servlet,负责应用程序中的一般交互。此servlet将“侦听”url模式:/、/index等(任何其他形式的索引)。我还有一个负责登录的
UserController
Servlet,这个Servlet“监听”来自
/CheckLogin
url模式

我有一个jsp表单,在url
/
中,当我提交它时,它指向位于
/CheckLogin
的servlet。然后,
UserController
servlet对其进行处理,无论登录是否正确,它都会重定向到
/
MainController
将负责确定要显示的页面,具体取决于用户是否登录)


除了第一次提交表单后,表单页面有url
/CheckLogin
外,所有的工作都完美无缺。我想删除它并仅显示/(即使已登录或未登录)。如何做到这一点(普通Java EE,而不是Spring或任何其他框架)?

我不确定这是否是您想要的,但如果您执行转发而不是重定向,客户端浏览器上的URL将不会更新:;有关解释,请访问

此外,最好将身份验证实现为一个Servlet而不是一个Servlet;这样,过滤器就可以用来拦截您认为需要保护的任何URL


您不使用web框架有什么具体原因吗?一般来说,它们负责为您提供安全性和路由方面的服务。

在开发框架之前,我将尝试更多地了解java ee本身。我目前正在做的请求转发。但是表单中的CheckLogin指出:还有,你有没有一个好的链接来学习更多关于过滤器的知识?因为你不使用框架,所以要使用模式,在进入框架之前,他们会给出一个很好的基础:更多关于过滤器的问题:这个问题有点用过滤器来验证:那么,你是说你在转发,但是“/CurnLogin”URL仍然在浏览器中出现吗?