ArrayIndexOutOfBoundsException в HTML-странице сервера Tomcat Tic-Tac-Toe - PullRequest
0 голосов
/ 03 июля 2018

Когда я пытаюсь запустить свой сервер Tomcat и вводить самое нижнее, самое правое значение в сетке Tic-Tac-Toe, я получаю эту ошибку:

java.lang.ArrayIndexOutOfBoundsException: 9
    vejus.satya.tictactoe.Servlet.doGet(Servlet.java:33)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
  org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

Вот мой HTML-код внутри формы:

  <tr>
    <td><input type="radio" name="input" value="0"> </td>
    <td><input type="radio" name="input" value="1"> </td>
    <td><input type="radio" name="input" value="2"> </td>
  </tr>
  <tr>
    <td><input type="radio" name="input" value="3"> </td>
    <td><input type="radio" name="input" value="4"> </td>
    <td><input type="radio" name="input" value="5"> </td>
  </tr>
  <tr>
    <td><input type="radio" name="input" value="6"> </td>
    <td><input type="radio" name="input" value="7"> </td>
    <td><input type="radio" name="input" value="8"> </td>
  </tr>

Вот мой код Java, который принимает это:

String[] board = new String[9];
for (int i = 0; i < 9; i ++) {
    board[i] = "<input type=\"radio\" name=\"input\" value=\"" + i + "\">";
}

int loc = Integer.parseInt(req.getParameter("input"));
board[loc] = "X";

Как мне это исправить? Ввод, который я получаю, равен 9, в то время как я сделал 8 в коде HTML, как вы можете видеть выше, поэтому я не знаю , почему мое входное значение не работает . Вот почему я получаю эту ошибку.

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Хорошо, теперь это работает. Все, что я сделал, это удалил проект с сервера, затем снова добавил его и запустил сервер. Простое обновление разрешения

0 голосов
/ 03 июля 2018

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

Поскольку вы кодируете в сервлете, убедитесь, что вы повторно развернули после своих изменений.


Если вы используете NetBeans,

Окно & rarr; Проекты & rarr; Щелкните правой кнопкой мыши по названию вашего проекта & rarr; Нажмите Развернуть.


В Затмении,

  • Щелкните правой кнопкой мыши модель в представлении Package Explorer.
  • Выберите Экспорт ....
  • Выберите Мастера диспетчера процессов> Развернуть модель процесса.
  • Нажмите Далее.
  • В мастере развертывания убедитесь, что выбрана модель процесса.
  • Выберите Готово.
...