运行以下代码时获取空指针异常

时间:2013-11-25 09:46:58

标签: java jsp servlets map

我有servlet,它将map对象从servlet传递给jsp,在jsp中,我将迭代地图并显示值。但是当我在setattribute方法

中传递map对象时,我得到空指针异常
try
    {

            Map<String,String> A=new HashMap<String,String>();
    Class.forName("com.mysql.jdbc.Driver");
    connect=(Connection) DriverManager.getConnection("Connection");
    statement =(Statement)connect.createStatement();
    result=(ResultSet)statement.executeQuery("query");
    while(result.next())
    {
        A.put(result.getString("Hi"),result.getString("Hello"));
    }

    ServletContext context=getServletContext();

    request.setAttribute("A",A); // when I run i getting nullpointer exception here
    RequestDispatcher rd=context.getRequestDispatcher("/next.jsp");
    rd.forward(request, response);

stacktrace:

  java.lang.NullPointerException
at search.classy.ClassDB.dbConnect(ClassDB.java:61)

2 个答案:

答案 0 :(得分:0)

使用JSP标记:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<body>
<c:forEach var="i" items="${A.keySet()}">
   Key <c:out value="${i}"/>
   Value <c:out value="${A.get(i)}"/>
</c:forEach>
</body>
</html>

如果有语法错误,我很抱歉,我在这里没有dev环境来检查语法。但你应该有一个线索,如何解决你的问题。

答案 1 :(得分:0)

map,即你的案例中的A应该放在响应对象中。 作为响应请求,它不会从服务器向客户端发送内容。