• 締切済み

登録プログラムについて

java初心者です。 以下のようなコーディングをしたのですが、エラーがでてcatchされているみたいで、データベースに登録されません。sessionのところがおかしいと思うのですが、わかる方どうか教えてください。logではException: nullと表示されています。 まずHtmlで入力処理してます。 つぎに tourokuAddServlet// package ltcinfo; import java.io.*; import javax.servlet.http.*; import javax.servlet.*; public class tourokuAddServlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { request.setCharacterEncoding("Windows-31J"); response.setContentType("text/html;charset=Windows-31J"); PrintWriter out=response.getWriter(); HttpSession session = request.getSession(true); tourokuBeans reco=new tourokuBeans(); reco.setgakusekino(Integer.parseInt(request.getParameter("gakusekino"))); reco.setpasswd(request.getParameter("passwd")); reco.setclassid(Integer.parseInt(request.getParameter("classid"))); session.setAttribute("reco", reco); ~省略(あとは確認画面の表示をしています)次にLTCInfoServlet//戻ると登録の選択処理 package ltcinfo; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class LTCInfoServlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { HttpSession session = request.getSession(true); tourokuBeans reco=(tourokuBeans)session.getAttribute("reco"); int check=Integer.parseInt(request.getParameter("check")); if (check==1){ reco.insert(); getServletContext().getRequestDispatcher("/tourokuReport.jsp") .forward(request, response); }else{ getServletContext().getRequestDispatcher("/touroku.html") .forward(request, response); } tourokuBeans// setとget文 public void insert(){ HttpSession session = request.getSession(true); tourokuBeans reco=(tourokuBeans)session.getAttribute("reco"); try{ Class.forName("org.gjt.mm.mysql.Driver"); String url="jdbc:mysql://localhost/sotsuken?useUnicode=true&characterEncodning=SJIS"; Connection con=DriverManager.getConnection(url,"root","root"); Statement stmt=con.createStatement(); int gakusekino = reco.getgakusekino(); String passwd = reco.getpasswd(); int classid=reco.getclassid(); String values = "(\'"+gakusekino+"\', \'"+passwd+"\', \'"+classid+"\', \'"+name+"\', \'"+mail+"\', \'"+keitel+"\', \'"+keimail+"\', \'"+touroku+"\')";   String sql = "insert into gakuseitbl values " + values; stmt.executeUpdate(sql); stmt.close(); con.close(); }catch(Exception ex) { System.out.println("Exception: " + ex.getMessage()); System.out.println("失敗"); } } }

みんなの回答

  • ARIA9
  • ベストアンサー率37% (3/8)
回答No.1

>System.out.println("Exception: " + ex.getMessage()); を >ex.printStackTrace(); とすれば詳細なエラーメッセージが取得できるのでエラー箇所が特定できます。 何行目でエラーしたかとかすべて取れますので、その情報を元にしてみたら如何でしょうか。

dfjie
質問者

お礼

ありがとうございます。 LTCInfoServlet のServlet.service()が例外を投げました。 と表示されていたので、またがんばっていろいろ試してみます。

関連するQ&A

専門家に質問してみよう