session getAttribute是null Java

时间:2014-03-20 03:45:43

标签: java session

我正在尝试使用会话

进行登录/注销验证

以下是该方案 我有一个login.html向Login.java提交请求以验证用户名和&密码 一旦验证,它将转到main.jsp,它具有注销按钮和表单。 我希望确保在使用后退按钮退出后,用户不应该看到main.jsp或在表单上执行任何操作。

这就是我在Login.java中的内容

public class Login extends HttpServlet {
    private ServletContext context=null;
    private RequestDispatcher dispatcher = null;
    private String toDo = "";  

    public void doPost(HttpServletRequest request,
              HttpServletResponse response)
                        throws IOException, ServletException  {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        if(PasswordUtilities.isValidLogin(username,password)) {
            toDo = "/jsp/main.jsp";

            HttpSession session = request.getSession();          
        session.setAttribute("username", "abc"); 
        System.out.println("login"+(String)request.getAttribute("username"));
            }
        else
            toDo = "/error.html";
        context = getServletContext();       
        dispatcher = context.getRequestDispatcher(toDo);
        dispatcher.forward(request, response);                  
    }    
}

但我的属性为null。

请帮助,任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

您将其设置为session并从request

中读取
    session.setAttribute("username", "abc"); 
    System.out.println("login"+(String)request.getAttribute("username"));

答案 1 :(得分:0)

您在Session设置属性并从Request

获取属性
System.out.println("login"+(String)request.getAttribute("username"));