2015-02-21 4 views
-1

Вот мой код. Используемый нами HttpSession также использовался в классе, и он работал, но теперь не работает. И я ничего не могу напечатать после цикла for. Я использую метод doGet(). Нам нужно сохранить stringToPhone в объекте session и carrierNum в файл cookie.Слежение за сеансом не поддерживается

String carrier = request.getParameter("carrier"); 
    String carrierNum = request.getParameter("carrierNum"); 
    String stringToPhone = request.getParameter("phoneNumber"); 
    String equiPhoNum = ""; 

    PrintWriter out = response.getWriter(); 
    HttpSession s1 = request.getSession(); 

    out.println("Carrier: " + carrier); 
    out.println("Inputted phone number: " + stringToPhone); 

    String[] x = stringToPhone.split("");  

    int i = 0; 
    out.print("PHONE NUMBER: " + carrierNum + "-"); 

    for(i = 0; i <= 7; i++){ 
     if(x[i].equals("A") || x[i].equals("B") || x[i].equals("C") || x[i].equals("a") || x[i].equals("b") || x[i].equals("c")){ 
      x[i] = "2"; 
     } 
     if(x[i].equals("D") || x[i].equals("E") || x[i].equals("F") || x[i].equals("d") || x[i].equals("e") || x[i].equals("f")){ 
      x[i] = "3"; 
     } 
     if(x[i].equals("G") || x[i].equals("H") || x[i].equals("I") || x[i].equals("g") || x[i].equals("h") || x[i].equals("i")){ 
      x[i] = "4"; 
     } 
     if(x[i].equals("J") || x[i].equals("K") || x[i].equals("L") || x[i].equals("j") || x[i].equals("k") || x[i].equals("l")){ 
      x[i] = "5"; 
     } 
     if(x[i].equals("M") || x[i].equals("N") || x[i].equals("O") || x[i].equals("m") || x[i].equals("n") || x[i].equals("o")){ 
      x[i] = "6"; 
     } 
     if(x[i].equals("P") || x[i].equals("Q") || x[i].equals("R") || x[i].equals("S") || x[i].equals("p") || x[i].equals("q") || x[i].equals("r") || x[i].equals("s")){ 
      x[i] = "7"; 
     } 
     if(x[i].equals("T") || x[i].equals("U") || x[i].equals("V") || x[i].equals("t") || x[i].equals("u") || x[i].equals("v")){ 
      x[i] = "8"; 
     } 
     if(x[i].equals("W") || x[i].equals("X") || x[i].equals("Y") || x[i].equals("Z") || x[i].equals("W") || x[i].equals("x") || x[i].equals("y") || x[i].equals("z")){ 
      x[i] = "9"; 
     } 
     equiPhoNum = x[i] + ""; 
     if(equiPhoNum != " " && equiPhoNum != null){ 
      s1.setAttribute("Value1", equiPhoNum); 
     } 
     out.print(s1.getAttribute("Value1")); 
    } 
+0

Я думаю, что проблема здесь: if (equiPhoNum! = "" && equiPhoNum! = Null) { s1.setAttribute ("Value1", equiPhoNum); } –

ответ

0

Я предлагаю вам создать строку equipPhoNum перед тем, как вы проверите условие. Как она стоит сейчас, на каждой итерации, она будет проверять

if(equiPhoNum != " " && equiPhoNum != null) 

и помните, что вы используете разделитель по умолчанию, который расщепляется («»), так что первый элемент будет пустым пространством " ". Поэтому компилятор пропускает

s1.setAttribute("Value1", equiPhoNum); 

Затем после этого вы хотите напечатать значение, которое не было установлено. Вы обязательно получите NullPointerException или что-то подобное. Переместите условие за пределами for loop и попробуйте еще раз.

Сообщите нам, в чем результат.

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