java.lang.NullPointerException при использовании ServletContext - PullRequest
0 голосов
/ 04 февраля 2012

Я изучал использование ServletContext, когда получил исключение нулевого указателя. Я не понимаю, почему я получаю это исключение.

Я установил атрибут в объекте context из одного класса, а затем попытался извлечь его из второго класса, используя getAttribute(...).

package ServletContext; // servlet1

import javax.servlet.*; 
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

public class servlet1 extends HttpServlet {
  public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
    LinkedList list = new LinkedList();
    list.add("suhail");
    ServletContext servletContext = getServletContext();
    servletContext.setAttribute("name", list);
  }
}

package ServletContext;  // servlet2

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

public class servlet2 extends HttpServlet {
 public void doGet(HttpServletRequest request , HttpServletResponse response) throws IOException,ServletException {
    LinkedList list2 = new LinkedList();
    ServletContext context = getServletContext();
    list2 = (LinkedList)context.getAttribute("name");
    PrintWriter writer = response.getWriter();
    response.setContentType("text/plain");
    writer.println(list2.pop()); //**15th statement**
  }
}

Исключение составляет:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.lang.NullPointerException
ServletContext.servlet2.doGet(servlet2.java:15)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)

note Примечание Полная трассировка стека основной причины доступна в журналах Apache Tomcat / 7.0.11.

Почему я получаю это исключение? list должен быть инициализирован в сервлете2

1 Ответ

0 голосов
/ 04 февраля 2012

list2 там null - вы не можете вызывать методы для null.Возможно, вы до сих пор не поместили список в контекст сервлета?Нулевая проверка (if (list != null)) исправит исключение, но убедитесь, что вы правильно помещаете список в контекст , прежде чем вызовете второй сервлет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...