Java EE Servlet重写servlet路径

时间:2012-08-03 18:12:49

标签: java java-ee servlets java-ee-6

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

我在网址/中的jsp中有表单,当我提交它时,它指向/CheckLogin处的servlet。然后UserController servlet处理它并且登录正确或错误它重定向到/MainController将负责确定要显示的页面,具体取决于用户是否登录)。

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

1 个答案:

答案 0 :(得分:2)

我不确定这是否是您要找的,但如果您执行转发而不是重定向,则客户端浏览器上的网址将为不予更新:RequestDispatcher#forward(javax.servlet.ServletRequest, javax.servlet.ServletResponse;可以在Forward vs Redirect找到解释。

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

您是否有使用Web框架的特定原因?一般来说,它们是为了照顾你的安全和路由。