请求属性在servlet中显示为null

时间:2017-03-19 02:27:43

标签: jsp request

我在jsp文件中添加了一个属性并尝试在servlet中获取它但是我得到空指针异常,这意味着没有这样的属性。

在jsp文件中:

  <% String p="signUp.jsp"; request.setAttribute("referredFrom",p);  %>

在servlet中:

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        if(req.getAttribute("referredFrom").equals("signUp.jsp")){
            RequestDispatcher rd=req.getRequestDispatcher("ApplicantProfile.jsp");
            rd.forward(req,resp);
        }
    }

1 个答案:

答案 0 :(得分:0)

它给出null的原因是因为你误解了请求是如何工作的。 让我们假设您的页面在路径index.jsp中为/MyApp。当您访问此页面时,请求将发送到服务器。一旦您的jsp文件被加载,此request就会被销毁因此,当您通过request.setAttribute()为此请求设置属性时,您将在请求上设置属性,一旦加载此jsp页面,该属性将被销毁。 更好地在会话中设置属性,然后在以后进行检索

session.setAttribute("myAttribute",myObj);

稍后在Servlet中检索它

request.getSession().getAttribute();