1

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

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

除了第一次提交后,所有工作都完美无缺,然后表单页面有 url /CheckLogin。我想删除它并只显示 / (即使记录与否)。我该怎么做(纯 Java EE,而不是 Spring 或任何其他框架)?

4

1 回答 1

2

我不确定这是否是您要查找的内容,但如果您执行forward而不是redirect,客户端浏览器上的 URL 将不会更新:RequestDispatcher#forward(javax.servlet.ServletRequest, javax.servlet .ServletResponse;可以在Forward vs Redirect中找到解释。

此外,将身份验证实现为过滤器而不是 Servlet 可能是一个更好的主意;这样,过滤器可用于拦截您认为需要保护的任何 URL。

您没有使用 Web 框架是否有特定原因?通常,它们旨在为您处理安全和路由问题。

于 2012-08-03T19:33:13.813 回答