2017-01-06 2 views
0

Я развернул свой сервлет на сервере с помощью tomcat. В нем есть несколько полей ввода и кнопка сохранения изменений. Когда кто-то что-то пишет и нажмите «Сохранить», я хочу сохранить изменения в БД вместе с именем ПК и зарегистрированным именем пользователя клиента. Все делается до обновления имени ПК и имени пользователя. Я могу получить имя компьютера InetAddress inetAddress = InetAddress.getByName(request.getRemoteAddr);String PCName = inetAddress.getHostName(); Как я могу получить имя пользователя? Я пробовал много вещей, такие, как request.getRemoteUser() (возвращает нуль, request.getAuthType() также возвращает нуль. Как изменить аутентификации типа?), А также попытался System.getProperty("user.name") (имя пользователя возвращает сервер, где, как мне нужно имя клиента)Java Servlet получает зарегистрированное имя пользователя

По имени пользователя я имею в виду имя пользователя, по которому вошел в систему на ПК.

+0

@SamuelJMathew Он уже сделал это чрезвычайно. Он * спрашивает * для рабочего кода. – EJP

+0

Итак, чтобы понять, вы говорите о получении имени пользователя, с которого пользователь вошел в свой компьютер, не так ли? Или у вашего веб-приложения есть свой собственный механизм аутентификации, и вы хотите, чтобы имя пользователя было введено там? – Gimby

+0

@Gimby, да, я заинтересован в том, что пользователь зарегистрировался на ПК, с которого вызывается мой сервлет. –

ответ

-1

HttpServletRequest.getUserPrincipal() возвращает текущего пользователя, если он есть, который содержит имя пользователя: или null, если нет текущего пользователя.

+0

@Gimby Только если вы не прочитали вопрос. Речь идет о сервлетах и ​​«зарегистрированном имени пользователя клиента». Клиенты сервлетов находятся на другом конце HTTP-сеанса, и метод, который я упомянул, предоставляет пользователю основную часть этого сеанса. Слова «операционная система» - это ваше собственное изобретение: они не появляются в вопросе. – EJP

+0

Ive добавил следующую строку в мой код 'Principal p = request.getUserPrincipal(); System.out.println ("PrincipalUser:" + p.getName()); ' Он показывает мне java.lang.NullPointerException в' request.getUserPrincipal() '[INFO: запрос не является нулевым, Ive проверен] –

+0

@ jayachandrachillipuri Итак, 'request.getUserPrincipal()' возвратил null, в условиях, которые как мой ответ, так и ссылка, на которую он ссылается, были тщательно определены. В настоящее время нет аутентифицированного пользователя. Вам нужно проверить это условие. Вам действительно не нужна вся эта помощь для отладки простого NPE. – EJP

Смежные вопросы