プラグミング初心者です。よろしくお願いします。
前提・実現したいこと
htmlより受け取った値によってデータベース内(idを参照しています)を検索、jspに結果を渡すサーブレットを作成したいです。
発生している問題・エラーメッセージ
java.lang.NullPointerExceptionが下記の「String id = rset.getString("id");」にて発生しています。
デバックにて確認すると、「rset = pstmt.executeQuery();」のrsetにてNullPointerExceptionが発生していました。
該当のソースコード
import java.io.IOException; import java.sql.*; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setCharacterEncoding("utf-8"); String fstr = request.getParameter("find"); Connection conn=null; Statement st = null; PreparedStatement pstmt=null; ResultSet rset=null; String sql = "select * from users where id=" + fstr; try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } try { conn = DriverManager.getConnection(path,user,pw); pstmt = conn.prepareStatement(sql); pstmt.setString(1, fstr); rset = pstmt.executeQuery(); } catch (SQLException e1) { e1.printStackTrace(); } try { String id = rset.getString("id");//HTTPステータス 500 String name = rset.getString("name"); String tel = rset.getString("tel"); request.setAttribute("id",id); request.setAttribute("name",name); request.setAttribute("tel", tel); getServletConfig().getServletContext(). getRequestDispatcher("/answer.jsp" ).forward( request, response ); } catch (SQLException e1) { e1.printStackTrace(); } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/02 08:16
2018/03/02 08:22
2018/03/02 08:27