[解決済み] HTTPステータス 500 - java.lang.NullPointerException
2022-02-05 01:56:01
質問
私はjava、jspの初心者です。index.jspを使用してMysqlデータベースからいくつかのデータを印刷しようとしています。タイトルが言うように、私は例外を取得しています。私はこの例外を何度もチェックしました。私はStackoverflowでここにいくつかの同じポストを見たが、彼らは私を助けなかった。以下は私のコードです。
index.jsp :
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action ="New_printer.jsp" method="get">
<input type ="submit" value="Proceed">
</form>
</body>
</html>
New_printer.jsp :
<%@page import="java.util.ArrayList"%>
<%@page import="java.sql.ResultSet"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%@ page import="com.results.Printer" %>
<%
int i;
ArrayList Rows = new ArrayList();
Rows = (ArrayList) request.getAttribute("data");
for(i=1; i<Rows.size(); i++)
{
ArrayList row = new ArrayList();
row = (ArrayList) Rows.get(i);
for(int j=1; j<4; j++)
{
String word =(String) row.get(j);
out.print(word + " ");
}
out.println();
}
%>
</body>
</html>
Printer.java :
package com.results;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Printer extends HttpServlet{
private static Connection con = null;
ResultSet rs;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/jsp");
try
{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/tst","root","1234");
Statement stmt = con.createStatement();
rs = stmt.executeQuery("select * from test_db.person");
ArrayList Rows = new ArrayList();
while(rs.next())
{
ArrayList row =new ArrayList();
for(int i=1; i<4; i++)
{
row.add(rs.getString(i));
}
Rows.add(row);
}
req.setAttribute("data", Rows);
RequestDispatcher rqdp = getServletContext().getRequestDispatcher("/New_printer.jsp");
rqdp.forward(req, resp);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
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">
<display-name>Simple_Print</display-name>
<!--
<servlet>
<servlet-name>printer</servlet-name>
<servlet-class>com.results.Printer</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>printer</servlet-name>
<url-pattern>/index.jsp</url-pattern>
</servlet-mapping> -->
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
EXCEPTION
HTTP Status 500 - java.lang.NullPointerException
type Exception report
message java.lang.NullPointerException
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:548)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:469)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
java.lang.NullPointerException
org.apache.jsp.New_005fprinter_jsp._jspService(New_005fprinter_jsp.java:123)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:431)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/8.0.20 logs.
助けてくれますか?お願いです、私は何日もここでスタックしています。
解決方法は?
問題は、フォームの送信を
index.jsp
から
New_printer.jsp
を通過していないのですが
data
という属性があるので
request.getAttribute("data");
を実行すると、NULLポインタが返されます。
何をしているのか
index.jsp
------gt;
New_printer.jsp
やるべきこと
index.jsp
------gt;
Printer.java
------->
New_printer.jsp
関連
-
[解決済み】Android Studio クラス org.codehaus.groovy.runtime.InvokerHelper を初期化できませんでした。
-
[解決済み】imageio.IIOException: 入力ファイルが読み込めない
-
[解決済み】Android java.lang.IllegalStateException: Android java.lang.IllegalStateException: Could not execute method of the activity
-
[解決済み】Mockitoでモックからチェックされた例外を投げる
-
[解決済み】java.io.IOException: 壊れたパイプ
-
[解決済み] [Solved] java.lang.NoClassDefFoundError: クラスXXXを初期化できませんでした。
-
[解決済み】Ubuntu: OpenJDK 8 - パッケージを見つけることができません。
-
[解決済み] SQLエラー。0, SQLState: 08S01 通信リンクの失敗 [重複]。
-
[解決済み】フォルダに書き込もうとすると「java.nio.file.AccessDeniedException」が発生する件
-
[解決済み] java.net.URLConnectionを使用してHTTPリクエストを発生させ処理する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー:配列または java.lang.Iterable のインスタンスに対してのみ反復処理を行うことができます。
-
[解決済み】Doubleはdereferencedできない?
-
[解決済み】Android Studioでタスク :app:compileDebugJavaWithJavac の実行に失敗しました。
-
[解決済み】宣言されたパッケージが期待されるパッケージと一致しない ""
-
[解決済み】「error: '.class' expected」の意味と修正方法について
-
[解決済み] メソッドがそのスーパークラスのメソッドをオーバーライドしない
-
[解決済み】 JAVA 変数宣言はここではできない
-
[解決済み】Javaのswitch文。定数式が必要だが、定数である
-
[解決済み] JavaでSSLピアが正しくシャットダウンされない
-
[解決済み】NullPointerExceptionとは何ですか、そしてどのようにそれを修正すればいいですか?