Как устранить внутреннюю ошибку сервера HTTP Status 500 на Tomcat с сервлетами? - PullRequest
0 голосов
/ 28 сентября 2019

Я читаю 2 числа как ввод и пытаюсь распечатать их в выводе динамически, используя сервлет, но получаю код состояния HTTP 500 Внутренняя ошибка сервера:

Статус HTTP 500 - Внутренняя ошибка сервераТип Отчет об исключении

Сообщение пустое

Описание Сервер обнаружил непредвиденное состояние, не позволяющее ему выполнить запрос.

Исключение

java.lang.NumberFormatException: null java.lang.Integer.parseInt (Integer.java:542) java.lang.Integer.parseInt (Integer.java:615) com.telusko.AddServlet.service (AddServlet.java:11) javax.servlet.http.HttpServlet.service (HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter (WsFilter.java:53) Примечание. Полная трассировка стека основной причины доступна в журналах сервера.

Apache Tomcat / 9.0.26

Index.html

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="ISO-8859-1">
        <title>Insert title here</title>
      </head>
      <body>
         <form action="add">
            Enter 1st number: <input type="text' name="num1"><br>
            Enter 2nd number: <input type="text' name="num2"><br>
            <input type="submit">
         </form>
      </body>
    </html>

AddServlet.java

  package com.telusko;
  import javax.servlet.http.HttpServlet;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;

  public class AddServlet extends HttpServlet
 {
public void service(HttpServletRequest req, HttpServletResponse res)
{
    int i =Integer.parseInt(req.getParameter("num1"));
    int j =Integer.parseInt(req.getParameter("num2"));
    int k = i + j;
    System.out.println("result is"+k);
}
  }

Web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
       xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
       http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" 
       version="3.1">
 <servlet>
     <servlet-name>abc</servlet-name>
    <servlet-class>com.telusko.AddServlet</servlet-class>
</servlet>

<servlet-mapping>
     <servlet-name>abc</servlet-name>
     <url-pattern>/add</url-pattern>
</servlet-mapping>

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

1 Ответ

0 голосов
/ 30 сентября 2019

Вы пытаетесь проанализировать ноль, следовательно, NumberFormatException или ошибка 500.
Ваш запрос не имеет параметров num1 и num2.Потому что ваша форма не отправляет эти параметры.
Ваша форма не отправляет эти параметры из-за ошибки опечатки.Вы смешали двойную кавычку и одинарную кавычку для значения атрибута.убедитесь, что обе являются двойными кавычками "text" или одинарными кавычками 'text'.

. Всегда рекомендуется искать ошибки в консоли браузера (в случае JavaScript) и просматривать исходный код страницы в случае HTML.

Результат этой опечатки.
enter image description here

В этом сценарии ошибки.Если вы попытаетесь получить type и name
enter image description here

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