有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

jakarta ee Java ee Servlet重写Servlet路径

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

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

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


共 (1) 个答案

  1. # 1 楼答案

    我不确定这是否是您正在寻找的,但如果您执行转发而不是重定向,则客户端浏览器上的URL将不会更新:RequestDispatcher#forward(javax.servlet.ServletRequest, javax.servlet.ServletResponse;解释见Forward vs Redirect

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

    您不使用web框架有什么具体原因吗?一般来说,它们是用来为您处理安全和路由问题的