

ログイン画面(https)より
1.ID、PASSを入力し、ログインする
2.JAVAで入力されたID、PASSをセッション変数にセット
3.メニュー画面(http)を開く。そのときセッション変数を
確認してNullの場合はログイン画面に戻る
といったシステムを作成しています。
しかしSSLの問題なのか、ブラウザを開いて1回目のログイン時は
メニュー画面を開いたときにセッション変数がNullになっています。
2回目以降は問題なく処理されるのですが...
SSLでセッションがクリアされるとかいうことはあるのでしょうか?
よろしくお願いします。
OS:FreeBSD 4.7
Apache:1.3.33
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
>セッション変数へセットしているサーブレットは
>HttpSession session = request.getSession(true);
>にしてあり、
??sessionのチェックのときはfalseですよね?
ごめんなさい、載せて頂いたソースのつながりがよく分かりません。
この回答への補足
わかりずらくて申し訳ありません...
ログインページからログイン時、サーブレットを実行
//////////////////////////////////
public class Serv_Login extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
response.setContentType("text/html; charset=Shift_JIS");
HttpSession session = request.getSession(true);
/* コードを取得 */
String strCD = request.getParameter("cd");
session.setAttribute("cd", strCD);
中略
response.sendRedirect(response.encodeURL(メニュー画面の絶対パス));
}
}
//////////////////////////////////
メニュー画面開くとき以下のVAVA関数を実行
//////////////////////////////////
public class Login {
public void chkLogin(HttpServletResponse response, HttpSession session, String strJumpPage) throws Exception {
/* セッション変数より取得する */
String strCD = (String)session.getAttribute("cd");
/* ↑取得できない↑ */
中略
}
}
//////////////////////////////////
チェックの時は特に(false)の設定はしておりません。
No.3
- 回答日時:
HttpSession session = request.getSession(false);
にしていませんか?
falseを指定した場合、HttpSessionがないとnullが返されます。
回答ありがとう御座います。
セッション変数へセットしているサーブレットは
HttpSession session = request.getSession(true);
にしてあり、
セッション変数を取得しているJAVAは
public class Login {
public void chkLogin(HttpServletResponse response, HttpSession session, String strJumpPage) throws Exception {
/* セッション変数より取得する */
String strCD = (String)session.getAttribute("cd");
中略
}
}
となっています。
No.2
- 回答日時:
2回目とは、もう一度ブラウザを閉じて同じ動作をするということですか?
もう少し詳しくお願いします。
この回答への補足
説明不足ですいません。
1.ブラウザを立ち上げ、ID,パスを入力しログイン(https)
2.メニューが開かれる(http)がセッションがNullの為再度ログインページに飛ぶ(同じブラウザ)
3.もう一度ログインし直す(https)
4.今度はセッションが入っているので通常のメニュー画面(http)
一度ブラウザを閉じてしまうと1からやり直しになってしまいます。
セッションへの登録は
session.setAttribute("変数", 画面の値);
こんな感じです。
No.1
- 回答日時:
試してないので分かりませんが、
おそらく
httpsとhttpではドメインが変わるので、cookieのセッションIDが送られません。
なので、セッションが消えたように見えるのでしょう。
httpsからhttpへのリクエストだけURLリライティングを利用してみてはどうでしょうか。
回答ありがとう御座います。
>おそらく
>httpsとhttpではドメインが変わるので、cookieのセッションIDが送られません。
>なので、セッションが消えたように見えるのでしょう。
なんで2回目以降は問題なく処理されるのでしょうか?
初心者で申し訳ありません...
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 「ログイン機能を持たせる」説明が気難しいです。 2 2022/10/11 02:59
- PHP 掲示板のセキュリティについてアドバイスお願い致します 1 2023/08/11 20:44
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- PHP ここで言うトークンの意味を教えてください。 3 2022/08/24 03:03
- PHP ログインした掲示板ですが、直接開かないような設計するには? 2 2022/10/29 16:30
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- Mac OS MAC (Late 2020)で復元後、キーボード入力(文字)ができなくなり困っています。 1 2023/02/15 20:35
- PHP PHPのセッション有効期限について 5 2023/06/14 12:40
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- MySQL 「掲示板のログイン画面」はPHP~MySQLに「データベース認証のシステム」方式です。 1 2022/09/27 05:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
struts2でのフィルターを使った...
-
aタグによる複数リンクを別セッ...
-
C言語で今まで表示していた画面...
-
リクエストに応じたselectedの...
-
フォーム上で押されたボタンに...
-
三菱GOTの画面切り替えについて
-
Java-jspの画面入力値保持について
-
FormのsubmitでFormの内容がnull
-
MicroPythonコード
-
DOSコマンドの時間取得について
-
漏電遮断器の黄色ボタンと白色...
-
このadidasの腕時計の時刻の設...
-
エレベーターの途中通過
-
遷移元を判定したい!
-
JAVA JSPにてSQL UPDATE文が実...
-
VB6 開発環境のエディタに行...
-
インターネット エクスプローラ...
-
VBAでTIFF画像を読み込むには?
-
formでテキストとファイルタイ...
-
Google Sitesでの文書アップロード
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javascriptでセッションを取得
-
グローバルIPアドレスの変更タ...
-
エラーページ遷移後に入力値を残す
-
JSPでsession変数が勝手に書き...
-
sessionスコープとapplication...
-
ASP.NETのGlobal.asaxについて
-
javascriptでセッションの削除...
-
setAttribute getAttribute 配...
-
セッションタイムアウトの設定...
-
セッションの情報の消去について
-
画面遷移でセッション切れにな...
-
WEBアプリで管理者ログイン機能...
-
ASP Session変数名の取得
-
フレームを使用した際のセッシ...
-
Tomcatでの同一セッション同時...
-
セッションタイムアウト時にエ...
-
aタグによる複数リンクを別セッ...
-
Strutsのページングにてoffset...
-
iframeにリクエストattributeを...
-
JSPでブラウザ終了時にPostgreS...
おすすめ情報