質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

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

Q&A

解決済

1回答

2600閲覧

セッションの内容をまとめてjavaBeansに格納する

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

0グッド

0クリップ

投稿2020/05/22 06:05

大規模なソースコードを修正して仕様通りにする課題に取り組んでおります。
講師の方に質問しても考え方は教えて頂けるのですが具体的な方法は自分で調べて解決してと言われるので課題にずっといきづまったままの状態になっております。

プログラミング1か月半ほどの初心者で質問の仕方もなっておらず
回答をいただくために必要な情報が抜けていましたら教えて頂ければと思います。

フォームから取得した入力内容を
javabeansにまとめて格納しまとめて取り出せるようにしたいです
そのための記述をご教示いただけたらと思います。

java

1package jums; 2 3import java.io.IOException; 4 5import javax.servlet.ServletException; 6import javax.servlet.annotation.WebServlet; 7import javax.servlet.http.HttpServlet; 8import javax.servlet.http.HttpServletRequest; 9import javax.servlet.http.HttpServletResponse; 10import javax.servlet.http.HttpSession; 11 12/** 13 * Servlet implementation class InsertConfirm 14 */ 15@WebServlet("/InsertConfirm") 16public class InsertConfirm extends HttpServlet { 17 private static final long serialVersionUID = 1L; 18 19 /** 20 * @see HttpServlet#HttpServlet() 21 */ 22 public InsertConfirm() { 23 super(); 24 // TODO Auto-generated constructor stub 25 } 26 27 /** 28 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 29 */ 30 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 31 try{ 32 HttpSession session = request.getSession(); 33 request.setCharacterEncoding("UTF-8");//セッションに格納する文字コードをUTF-8に変更 34 String accesschk = request.getParameter("ac"); 35 if(accesschk ==null || (Integer)session.getAttribute("ac")!=Integer.parseInt(accesschk)){ 36 throw new Exception("不正なアクセスです"); 37 } 38 39 //フォームからの入力を取得 40 String name = request.getParameter("name"); 41 String year = request.getParameter("year"); 42 String month = request.getParameter("month"); 43 String day = request.getParameter("day"); 44 String type = request.getParameter("type"); 45 String tell = request.getParameter("tell"); 46 String comment = request.getParameter("comment"); 47 48 UserDataBeans udb = new UserDataBeans(); 49 50 //(beansにセッションをまとめて格納したいです 51 52 session.setAttribute("name", name); 53 session.setAttribute("year", year); 54 session.setAttribute("month",month); 55 session.setAttribute("day", day); 56 session.setAttribute("type", type); 57 session.setAttribute("tell", tell); 58 session.setAttribute("comment", comment); 59 System.out.println("Session updated!!"); 60 61 request.getRequestDispatcher("/insertconfirm.jsp").forward(request, response); 62 }catch(Exception e){ 63 request.setAttribute("error", e.getMessage()); 64 request.getRequestDispatcher("/error.jsp").forward(request, response); 65 } 66 } 67 68 /** 69 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 70 */ 71 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 72 // TODO Auto-generated method stub 73 doGet(request, response); 74 } 75 76}

下記はjavaBeansクラスになります

java

1package jums; 2 3import java.io.Serializable; 4 5public class UserDataBeans implements Serializable{ 6 7 private String name; 8 private String birthday; 9 private String type; 10 private String tel; 11 private String comment; 12 private int year; 13 private int month; 14 private int day; 15 16 17 public UserDataBeans() {} 18 19 public String getName() { 20 return name; 21 } 22 23 public void setName(String name){ 24 this.name = name; 25 } 26 27 public String getBirthday() { 28 return birthday; 29 } 30 31 public void setBirthday(String birthday){ 32 this.birthday = birthday; 33 } 34 35 public String getType() { 36 return type; 37 } 38 39 public void setType(String type){ 40 this.type = type; 41 } 42 43 public String getTel() { 44 return tel; 45 } 46 47 public void setTel(String tel){ 48 this.tel = tel; 49 } 50 public String getComment() { 51 return comment; 52 } 53 public void setComment(String comment){ 54 this.comment = comment; 55 } 56 public int getYear() { 57 return year; 58 } 59 public void setYear(int year){ 60 this.year = year; 61 } 62 public int getMonth() { 63 return month; 64 } 65 66 public void setMonth(int month){ 67 this.month = month; 68 } 69 public int getDay() { 70 return day; 71 } 72 73 public void setDay(int day){ 74 this.day = day; 75 } 76 77}

ご回答いただく際にもし追加で必要な情報があれば
お伝えさせていただきます。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

普通にセッションに設定するときにオブジェクトで保管するのはいけないのですか?

List<Object> objects = new ArrayList<>(); session.setAttribute("objects", objects);

List<Object> objects = (List<Object> ) session.getAttribute("objects");

注意:この例は相称型を利用してるので警告は出ます。

投稿2020/05/22 12:31

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/05/23 01:44

なるほど!ありがとうございます!一度これで試してみまして講師から仕様上この処理でもいいのか聞いてみます! もし別の方法だった場合は再度伺うかたちになるかもしれませんがひとまずベストアンサーにさせていただきます!ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問