【发布时间】:2015-04-30 13:02:20
【问题描述】:
我有一个调用 jsp 页面的 servlet。 在 servlet 中,我正在正确检索登录时提供的用户名。 但是在会话中设置相同之后,当我访问被调用的jsp页面时,它返回null。
Servlet 代码:
public class AdminServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = -4244742541587179390L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String userName = request.getParameter("name");
System.out.println("UserName: " + userName); // Here it prints the username properly
request.getSession(true).setAttribute(request.getParameter("name"), userName );
RequestDispatcher rd = request.getRequestDispatcher("upload.jsp");
rd.forward(request, response);
// response.sendRedirect("upload.jsp");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
}
JSP 代码 sn-p 我在哪里访问这个:
<label class="message">Welcome <%= session.getAttribute("userName") %></label>
我在这里做错了什么?谁能帮忙
【问题讨论】:
-
request.getSession(true).setAttribute(request.getParameter("name"), userName); ???我认为应该是 request.getSession(true).setAttribute("userName", userName );
-
Stefan Beike 所说的。还要考虑以下成语:
request.getUserPrincipal().getName()