質問編集履歴

1 誤字

rjberger19

rjberger19 score 28

2015/10/19 23:16  投稿

JSPの入力フォームをサーブレット経由でJSPによる確認画面の描画について
以下のフォームから内容を入力後、確認画面を経由して記入内容をデータベース登録したいと考えております。
まずは確認画面の作成で躓いているのですが、お知恵をお貸し頂きたく。
入力フォームは以下のとおりです。
```<%@ page language="java" contentType="text/html; charset=UTF-8"
   pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>MTG Registry</title>
</head>
<body>
   <form action="MTGConf" method="post">
       日付:<input type="date" name="MTGdate"><br>
       場所:<input type="text" name="MTGplace"><br>
       内容:<input type="text" style="width: 200px; height: 50px;" name="MTGcontents"><br>
       <input type="submit" value="Write!">
   </form>
   <jsp:include page="../common_JSP/footer.jsp" />
</body>
</html>
```
ここで入力されたデータがaction=MTGConfを基に以下のサーブレットへ連携されるイメージです。
```
@WebServlet("/MTGConf")
public class MTGConf extends HttpServlet {
   private static final long serialVersionUID = 1L;
     
   protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       HttpSession session = request.getSession();
       MeetingConfirmation mtgconf = (MeetingConfirmation) session.getAttribute("MTGConf");
       session.setAttribute("MTGConf",mtgconf);
       RequestDispatcher dispatcher = request.getRequestDispatcher("/jsp/MTG/MTGConfirmation.jsp");
       dispatcher.forward(request, response);
   }
}
```
このサーブレットではMeetingConfirmation型のmtgconfオブジェクトに入力された内容をセッションスコープを利用して保存し、そのごMTGConfirmation.jspに遷移するイメージです。
そして、MTGConfirmation.jsp上ではMeetingConfirmation(Bean的なもの)から
getメソッドでセッションに保存されたデータを表示することをイメージして以下の様に記載しました。
MeetingConfirmation.java(bean的なもの)
```
package model;
import java.util.Date;
public class MeetingConfirmation {
   private Date date;
   private String place;
   private String contents;
   
   public MeetingConfirmation() {
   }
   
   public Date getDate() {
       return date;
   }
   public String getPlace() {
       return place;
   }
   public String getContents() {
       return contents;
   }
}
```
MeetingConfirmation.jsp
```<%@ page language="java" contentType="text/html; charset=UTF-8"
   pageEncoding="UTF-8"%>
   <%@ page import="model.MeetingConfirmation"%>
<%
MeetingConfirmation mtgconf = (MeetingConfirmation)session.getAttribute("MTGConf");
%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>MTG Confirmation</title>
</head>
<body>
   <p>以下の内容で良いですか?</p>
   <%=mtgconf.getDate()%>
   <%=mtgconf.getPlace()%>
   <%=mtgconf.getContents()%>
   <a href="index.jsp"><img src="../image/go.png"></a>
   <jsp:include page="../common_JSP/footer.jsp" />
</body>
</html>
```
そうすると添付の画像のようなエラーが発生いたします。
エラーを見るとNullPointエラーということは、うまくセッションに情報が保存されていないというでしょうか?
どこのタイミングで誤っているのでしょうか・・・?
大変初歩的なご質問かとは存じますが、みなさまのお知恵をお菓子頂けると助かります。
大変初歩的なご質問かとは存じますが、みなさまのお知恵をお貸し頂けると助かります。
![イメージ説明](7818ca395f1916d601d7681f47a5672a.png)
  • Java

    24639 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • JSP

    1679 questions

    JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

  • servlet

    874 questions

    Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る