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

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

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

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

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

Q&A

解決済

1回答

465閲覧

サーブレットとJSP間での情報の維持方法

oldSatoimo

総合スコア21

JSP

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

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

0グッド

0クリップ

投稿2017/08/15 02:28

編集2017/08/15 04:04

サーブレットとJSPを行き来し、入力した値によって表示内容を変化させるものを作成しております。
サーブレットには、getメソッド(初期表示のみで使用) postメソッド(ボタン押下時にし使用)があるのですが、postメソッドを通るとgetメソッドで取得した内容が消えてしまいます。
引き続きgetメソッドの取得内容をjspで使用するにはどうしたら良いのでしょうか。

初心者につき至らぬ点があると思いますが、よろしくお願いします。

以下参考ソース

【get(初期表示のためにプルダウンで使用するデータを取得)】
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ExpensesForm expensesFormBeen = new ExpensesForm();

try { // SESSION取得 HttpSession session = request.getSession(); UserEntity userBean = (UserEntity) session.getAttribute(SessionDefine.USER_INFO); // セッションタイムアウトしているか判定 if (userBean == null) { RequestDispatcher rd = request.getRequestDispatcher("/pages/error.jsp"); rd.forward(request, response); } else { ExpensesNmService expensesNmService = new ExpensesNmService(); expensesFormBeen = expensesNmService.init(); // } } // リクエストスコープ request.setAttribute("expensesForm1", expensesFormBeen); RequestDispatcher rd = request.getRequestDispatcher("/pages/expenses.jsp"); rd.forward(request, response); } catch (Exception e) { // TODO 自動生成された catch ブロック e.printStackTrace(); }

【Post(JSPのボタン押下時に動く)】

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { T_TransForm t_TransFormBean = new T_TransForm(); try { // SESSION取得 HttpSession session = request.getSession(); UserEntity userBean = (UserEntity) session.getAttribute(SessionDefine.USER_INFO); if (userBean == null) { RequestDispatcher rd = request.getRequestDispatcher("/pages/error.jsp"); rd.forward(request, response); } else { String methodNm = request.getParameter("methodName"); ExpensesNmService expensesNmService = new ExpensesNmService(); t_TransFormBean = expensesNmService.search(request); } } request.setAttribute("expensesForm2", t_TransFormBean); // expenses.jspへforward RequestDispatcher rd = request.getRequestDispatcher("/pages/expenses.jsp"); rd.forward(request, response); } catch (Exception e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } }

また、JSP上でどちらを通ったかを判定したいのですが、フォワード内容を見て処理を分岐させるといったことはできるのでしょうか。

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

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

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

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

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

guest

回答1

0

自己解決

取得した内容は、postメソッドを通った際にgetメソッドで作成したbeanの内容をpostメソッドで作成するbeanに入れてからjspに渡すことで解決しました。
jspで取得内容を確認する件は、expensesForm1とexpensesForm2という風に名前を分けるのをやめ(後々のことを考えて)、jsp側で中身の値を見て分岐させることで解決しました。

投稿2017/08/15 23:51

編集2017/09/08 00:13
oldSatoimo

総合スコア21

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問