我有一个简单的用户应用程序。我有一个MainController
Servlet,它将负责应用程序中的一般交互。这个servlet将“监听”url-patterns: /,/ index等(任何其他形式的索引)。我还有一个UserController
Servlet负责登录,其中包括/CheckLogin
url-pattern中的“监听”。
我在网址/
中的jsp中有表单,当我提交它时,它指向/CheckLogin
处的servlet。然后UserController
servlet处理它并且登录正确或错误它重定向到/
(MainController
将负责确定要显示的页面,具体取决于用户是否登录)。
除了第一次提交之后,所有工作都完美无缺,然后表单页面有网址/CheckLogin
。我想删除它并仅显示/(即使记录或不记录)。我该怎么做(普通的Java EE,而不是Spring或任何其他框架)?
答案 0 :(得分:2)
我不确定这是否是您要找的,但如果您执行转发而不是重定向,则客户端浏览器上的网址将为不予更新:RequestDispatcher#forward(javax.servlet.ServletRequest, javax.servlet.ServletResponse;可以在Forward vs Redirect找到解释。
此外,将身份验证实现为Filter而不是Servlet可能是更好的主意;这样,过滤器可用于拦截您认为需要保护的任何URL。
您是否有使用Web框架的特定原因?一般来说,它们是为了照顾你的安全和路由。