2014-03-18 3 views
0

есть html-форма, где есть 4 кнопки опций. когда пользователь нажимает кнопку «отправить», сервлет wil выполняет и должен создавать cookie выбранных параметров. Я написал следующий код, но когда я «ИНИЦИАЛИЗАЦИЯ МАССИВА ОБЪЕКТОВ ПРИГОТОВЛЕНИЯ», возникает ошибка nullpointer.WithOUT INITIALIZATION COOKIE, моя программа работает хорошо.java.lang.nullpointerexception при создании массива объектов cookie в сервлете

Cookie[] cookie=null; int i=1; 
while(paramNames.hasMoreElements()){ 
String paramName = (String)paramNames.nextElement(); 
String[] paramValues = req.getParameterValues(paramName); 
String paramValue = paramValues[0]; 
cookie[i] = new Cookie(paramName, paramValue); **//ERROR IS HERE** 
cookie[i].setMaxAge(60*60*24); 
resp.addCookie(cookie[i]); 
i++} 

I CHECKED THE VALUES "paramName, paramValue". Я получил правильный ответ без Cookie. какова будет ошибка, когда я инициализирую массив объектов cookie как это?

ответ

0

Вы не инициализировали массив Cookies.

использовать Cookie[] cookie=new Cookie[SIZE] вместо Cookie[] cookie=null для инициализации перед присвоением ему значения.

0

cookie имеет значение null, и вы пытаетесь получить доступ к индексу массива, который равен NULL. Вы должны инициализировать его следующим образом:

Cookie[] cookie = new Cookie[someNumber]; 
+0

Это работает. но у меня есть одна проблема, когда я пытался получить эти файлы cookie через сервлет GetCookie. Я получил его в firefox (браузер по умолчанию), но не получает cookie в Chrome! Зачем? (я использую fedora 20) – Melvin

+0

У меня недостаточно информации об этом, поэтому я не знаю, не увидев код. Я предлагаю вам отправить еще один вопрос об этом с исходным кодом и подробно описать вашу проблему. – Karura91

Смежные вопросы