我在login.jsp上使用j_security_check。服务器是GlassFish Server 3.一切正常,当用户通过身份验证后,它会打开index.jsp。我的问题是我需要在index.jsp中获取j_username,但我找不到这样做的方法。我找到的所有解决方案都是Java,我需要一些适合我的jsp的东西。
有什么想法吗?非常感谢你提前!
答案 0 :(得分:10)
所涉及的请求是由PageContext#getRequest()
提供的JSP EL。登录用户可由HttpServletRequest#getUserPrincipal()
使用。用户名由Principal#getName()
提供。
所以,
<p>Welcome, <c:out value="${pageContext.request.userPrincipal.name}" /></p>
应该这样做。
使用<c:out>
不是必需的,但对于用户名可能包含特殊HTML字符的情况很有用,这些HTML字符可能会导致HTML输出格式错误,例如<
,>
,{{ 1}}等等(这是XSS攻击的来源)。 "
只是转义它们,以便它们按字面显示,而不是被解释为HTML标记的一部分。