JSPで session.setAttributeを次のJSPへ渡す方法?
- 評価
- クリップ 0
- VIEW 5,854

退会済みユーザー
サーバーでエラーが出たときに、ほぼ、例外などで、拾っているのですが、
まれに、普通にエラーがWEB画面に表示され、ソースの一部なども表示されてしまいます。
それを改善する為に、
全JSPの頭に、下記を書き、予想外のエラー時は、app_error.jspを
呼ばれるようにしています。
<%@ 省略 errorPage="app_error.jsp" %>
----------------------------------------------------------
それで、app_error.jspの中に、下記一例のように、
ユーザーへ、エラー内容を見せるとともに、
管理者へ、エラー情報を送るapp_send_mail.jspへ情報を渡すため、
下記のようにsession.setAttributeに書き込んでいます。
<td><b>サーブレット名</b></td>
<td><%= request.getAttribute("javax.servlet.error.servlet_name")%></td>
<% session.setAttribute("servlet_name", request.getAttribute("javax.servlet.error.servlet_name")); %>
しかし、Windows上では、正常に、app_send_mail.jspに値がわたり、メール本文へもエラー情報が
かかれるのですが、
サーバー上だと、app_send_mail.jspで、session.getAttributeをしても、nullになります。
------------------------------------------------
それで、上記方法をあきらめ、
下記のように、INPUTの hiddenで渡そうとしているのですが、
Valueのところへの書き方がわかりません。
どのようにすれば、よいでしょうか?
<FORM method="POST" action="http://localhost:8080/app_send_mail.jsp">
<INPUT type="hidden" name="subject" Value=<% session.setAttribute("servlet_name", request.getAttribute("javax.servlet.error.servlet_name")); %>>
<TABLE>
<TR>
<TD>タイトル</TD>
<TD><INPUT type="text" name="subject2" size=32 Value="サーバーで障害発生"></TD>
</TR>
<TR>
<TD>メールアドレス</TD>
<TD><INPUT type="text" name="mailaddress" size=40></TD>
</TR>
<TR>
<TD> </TD>
<TD><INPUT type="submit" value="送信" ></TD>
</TR>
</TABLE>
</FORM>
PS.全部のJSPの頭に、session="true" は書いてあります。上記のJSPも当然かいてあります。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
0
value="<%= request.getAttribute("javax.servlet.error.servlet_name") %>"
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.20%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2015/07/24 17:57
うまくいきました。
散々あれこれやってダメだったのに、大変たすかります。
ありがとうございます。