我正在执行以下循环来查看我的所有会话属性:
<%
for (Enumeration e = session.getAttributeNames(); e.hasMoreElements(); ) {
String attribName = (String) e.nextElement();
Object attribValue = session.getAttribute(attribName);
%>
<BR>
<%= attribName %> - <%= attribValue %>
将输出:
user.principal.key / user.ip.address.key / session.user.key
但是,我希望访问会话中可能不存在的更多用户信息,就像我在user.java文件中设置的其他变量一样。
如何在会话中存储这些变量的最佳方法,所以我可能会将它们打印到我的页面?
答案 0 :(得分:1)
将它们设置为会话属性:
public void doGet(HttpServletRequest request, HttpServletResponse response) {
HttpSession session = request.getSession();
session.setAttribute("myVariable", variableValue);
}
使用某些标记库(如JSTL
)来访问从servlet发送的属性,而不是使用scriptlet。
如果JSTL
使用out
来打印变量的值:
<c:out value="${myVariable}" />
不要忘记在JSTL
中添加JSP
代码lib:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
并从here
下载JSTL
依赖项