Tomcat - 根据用户的访问方式使登录页面内容不同

Ste*_*n C 6 authentication tomcat servlets login

我在Tomcat中实现了基于Web的服务,并使用基于Tomcat容器的身份验证.我想要实现的是根据用户的访问方式使登录页面显示不同.特别:

  • 如果用户点击"登录"按钮,我希望登录页面只需要输入用户名和密码.我已经实现了登录按钮,只需将用户带到"登录"页面,并使其成为一个安全页面,以便触发容器登录.

  • 如果未经身份验证的用户访问需要身份验证的页面,我希望登录页面也说"您必须登录才能执行此操作"或类似的内容.

所以问题是让登录表单的控制器或JSP知道浏览器在重定向时所请求的内容.我查看了请求对象中的标题和其他属性,但我看不到任何有用的东西.

谁有人建议解决方案?或者可能采用不同的方式来实现"登录"按钮,以避免这个问题?

Ang*_*chs 6

您可以使用它来确定原始请求的目标:

<%
String value0 = (String)request.
                getAttribute("javax.servlet.forward.request_uri");
if(value0.contains("login_success.jsp")) {
    out.print("USER, LOG IN!");
} else {
    out.print("USER, you have to LOG IN to go there!");
}
%>
Run Code Online (Sandbox Code Playgroud)

其他选择包括:

您可以实现登录按钮以重定向到login success page并添加?MyKey=value到URL,该属性可以被看到login page,您可以对其做出反应.

我将处理我的代码,绘制出我能找到的所有内容和任何内容,使其更易读,然后在此处发布.我肯定的是,当用户获得下一个值在你现在的地方request,你就必须找出.