使用servlet获取用户详细信息

时间:2013-02-04 11:36:08

标签: java java-ee servlets web

我正在尝试检索最近登录的用户的用户名。我使用.getRemoteUser()方法来读取用户名。但它没有显示用户信息。

我的代码是:

response.setContentType("text/plain");
PrintWriter out= response.getWriter();
// Some introductory HTML...
String remoteUser = request.getRemoteUser();
// See if the client is allowed
if(remoteUser == null) {
    out.println("Welcome");
} else {
    out.println("Welcome " + remoteUser + "!");
 }

我不知道为什么没有给出正确的结果。它总是产生结果“欢迎”。这意味着 request.getRemoteUser()== null 。请有人告诉我如何检索远程用户信息。提前谢谢....

2 个答案:

答案 0 :(得分:1)

request.getRemoteUser()将返回登录的用户,否则将返回null。这取决于您使用的是哪种身份验证。

另一个原因是客户端(浏览器)没有发送带有请求的用户名。如果您位于要求身份验证的URL树之外,则会发生这种情况

答案 1 :(得分:0)

只有使用HTTP基本身份验证才能填充远程用户。

以下是设置basic HTTP authentication in Java

的简单教程

您可以使用以下任何一种标准身份验证机制

  

static String BASIC_AUTH             基本身份验证的字符串标识符。

     

static String CLIENT_CERT_AUTH             客户端证书身份验证的字符串标识符。

     

static String DIGEST_AUTH             摘要式身份验证的字符串标识符。

     

静态字符串FORM_AUTH