Javaのday40 [セッション技術:クッキー、テクニカルセッション:セッション、JSP:学習ポータル]

第一章   セッション・テクノロジー

1.セッション:セッションが複数の要求と応答を含みます。
*セッション:最初のブラウザがするまで、一方の当事者オフするまで、サーバリソース、セッション確立に要求を送信
2.機能:セッションの範囲内で複数の要求の間では、データは共有
:3.方法
1.クライアントをテクニカルセッション:クッキー
2.技術的なサーバー側セッション:セッション

第二章の   クッキー

1.コンセプト:クライアントにデータを保存するために、クライアント・セッション・テクノロジー

2.はじめに:
*これらの手順を実行します:
1。Cookieオブジェクトを作成し、バインドデータは、
新しい新しいクッキー(文字列名、文字列値)*
2.送信クッキーオブジェクト
*のresponse.addCookie(クッキークッキー)の
データを取得し、クッキーを取得する3.
*クッキー[] request.getCookies()

3.原理
* Set-Cookieヘッダー応答に基づいてクッキー要求ヘッダーを達成

4.クッキーの詳細
1.あなたは?つ以上のクッキーを送ることができます
*することができ
、*クッキーは、複数のオブジェクトを作成することができますクッキーを送信するために複数の呼び出しのaddCookie応答メソッドを使用します。
2.クッキーはどのくらいのために、ブラウザに保存されていますか?
デフォルトのもと1.は、ブラウザを閉じたときに、クッキーのデータが破壊される
2.永続ストレージを:
* setMaxAge(int型秒)
1.正:クッキーデータはハードディスクファイルに書き込まれます。永続ストレージ。そして時間後にクッキーの生存期間を指定し、クッキーファイルは自動的に失効
2.負:デフォルト
3.ゼロ:クッキー情報削除
3.クッキーは、中国を保存することができませんか?
*前にTomcat 8クッキーは、中国のデータに直接格納することはできません。
*中国のデータは、一般的にURLエンコード(%E3)を使用---トランスコードする必要が
Tomcatの8の後に*、Cookieサポート中国のデータを。特殊文字は解析するURLデコード、ストレージURLエンコーディングをサポートまたは推奨されていません
4.クッキーの共有を?
1. Tomcatサーバーを想定すると、Webプロジェクトの数を展開し、クッキーは、これらのWebプロジェクトで共有することはできませんか?
*デフォルトでクッキーを共有することはできません

* SETPATH(文字列のパス):クッキーの取得範囲を設定します。デフォルトでは、現在の仮想ディレクトリを設定し
、共有したい場合は、「/」にパスを設定することができます*

異なるTomcatサーバーのCookieの共有間の2?
* SetDomain(文字列のパス):あなたは、同一のドメイン名を設定した場合、クッキーが複数のサーバ間で共有することができます
(「baidu.com」)* setDomain 、 その後tieba.baidu.comとnews.baidu.comクッキーには、共有することができます

5.クッキーの特徴および機能
1.クッキーデータは、クライアントブラウザに格納された
クッキーの単一サイズのためにブラウザ限定(4キロバイト)2.と同じドメイン(20)にクッキーの合計量に限界があります

*役割:
一般的にあまり敏感少量のデータ格納に使用1.クッキー
、クライアントの身元識別のためのログインせずに2を、完全なサーバー

6.ケース:最終アクセス時刻を覚えておいてください
。1.要件
、それは最初の訪問の場合1.サーブレットを、プロンプト:こんにちは、あなたの最初の訪問を歓迎します。
2.それは最初の訪問は、プロンプトではない場合:再びようこそ、あなたの最後の訪問時間は:時刻文字列を表示します

2.分析:
1.クッキーを使用して達成することができる
クッキーの名前のlastTimeがあるかどうかを判断するために、サーバーに2サーブレットの
1は、次のとおりではないへの最初の訪問
1.レスポンスデータ:あなたの最後の訪問時間は、おかえりなさい:2018年6月10日11時50分20秒
2のライトバッククッキー:lastTime = 2018年6月10日11時50分01秒
2。いいえ:への最初の訪問です
こんにちは、歓迎:1、応答データ最初の訪問
2.ライトバッククッキー:lastTime = 2018インディアン6越10 Riを午前11時50分01秒

3.コード:
パッケージcn.itcast.cookie。

輸入javax.servlet.ServletException;
輸入javax.servlet.annotation.WebServlet;
インポートのjavax.servlet.http.Cookie。
輸入javax.servlet.http.HttpServlet。
インポートのjavax.servlet.http.HttpServletRequest;
インポートのjavax.servlet.http.HttpServletResponse;
インポートにjava.io.IOException;
輸入java.net.URLDecoder。
輸入java.net.URLEncoder。
輸入java.text.SimpleDateFormatの。
輸入java.util.Date;

@WebServlet(「/にCookieTest」)
パブリッククラスにCookieTestのHttpServlet {延び
ボイド保護のdoPost(HttpServletRequestのリクエスト、HttpServletResponseの応答)はServletExceptionがは、IOException {スロー
データフォーマット及び符号化//設定応答メッセージボディ
response.setContentType(「テキスト/ HTMLを、 。8 = UTF-文字セット「);

... 1 //取得したすべてのクッキーは、
クッキー[] =クッキーrequest.getCookies();
ブール= falseにフラグに; //クッキーがlastTimeはありません
。// 2クッキーの配列を通過する
IF(= nullのクッキー! cookies.length &&> 0){
(クッキークッキー:クッキー){
... 3 //クッキーの名前を取得
文字列名を= Cookie.getName();
//名前4か否かを判断:. lastTime。
IF( "lastTime" .equals (名)){
//クッキーを持って、最初のアクセスではない

真=フラグ。クッキーの//ありlastTime

クッキーに値を設定する//
//再送信クッキー、クッキーの値をリセットし、文字列の現在の時刻を取得します。
)(日付=新しい新しい日付;
SimpleDateFormatのSDFは=新しい新しいてSimpleDateFormat(「YYYY年MM月DD日HH:MM:SS」);
文字列str_date = sdf.format(DATE);
System.out.printlnは( "符号化前:" + str_date);
// URLエンコード
str_date = URLEncoder.encode(str_date、 "UTF -8");
System.out.printlnは(「符号化後の:「+ str_date);
cookie.setValue(str_date);
//設定されたCookieの生存時間
cookie.setMaxAge(60 * 60 * 24 * 30); // 月の
response.addCookie(クッキー);

レスポンスデータ//
// Cookie値、時間の取得
String値を= cookie.getValue();
System.out.printlnは( "デコード前:" +値);
//はURLデコード:
値を= URLDecoder.decode(値、 " 8 UTF ");
System.out.printlnは("デコード: "+値);
。response.getWriter()ライト(" <H1>おかえりなさい、あなたの最後の訪問時間: "+値+" </ H1 >「);

BREAK;

}
}
}

IF(クッキーは== nullの|| ||旗で== falseを== 0にcookies.length){
//いいえ、最初のアクセス

の//設定されたCookie値
現在の時刻文字列を取得します//、Cookie値をリセットクッキーに再送信する
日付を=新しい新しい日付();
SimpleDateFormatのSDF =新しい新しいてSimpleDateFormat( "YYYY年mMの月のDD日HH:MM:SS");
String型str_date = sdf.format(日付);
System.out.printlnは( "エンコードの前に: "+ str_dateを);
// URLエンコードの
str_date = URLEncoder.encode(str_date、" UTF-8 ");
System.out.printlnは("エンコードされた: "+ str_date);

クッキークッキー=新しい新しいクッキー(" lastTime "str_date);
//クッキーの生存期間を設定
cookie.setMaxAge(60 * 60 * * 24 ; // 30) 月の
response.addCookie(クッキー);

。書き込み(response.getWriter()" <H1>こんにちは; </ H1>「)あなたの最初の訪問に歓迎
}

}

保護されたボイドのdoGet(HttpServletRequestのリクエスト、HttpServletResponseの応答)ServletExceptionがをスローは、IOException {
this.doPost(リクエスト、レスポンス)。
}
}

 

第三章   JSP:学習ポータル

1.コンセプト:
* Javaのサーバーページと:Javaサーバページは
*として理解することができます:HTMLタグの定義を指定するか、特別なページ、彼らは、Javaコードを定義することができます
書き込みを簡素化するために*!

2.原理
JSPは基本的にサーブレットであります*

3. JSPスクリプト:JSPどのようにJavaコード定義
サービスプロセスで定義されたJavaコード:1. <CODE %%>を。どのようなサービスの方法は、スクリプトを定義することができるか、定義することができます。
2. <!コード%%>:Javaコードが定義され、変換後のメンバーのJSP、Javaクラスの位置。
3. <%=コード%>:Javaコードが定義され、ページに出力されます。どのような出力ステートメントは、スクリプトを定義することができるか、定義することができます。

4. JSPは、組み込みオブジェクト:
*で取得し、JSPページを作成する必要はありません、オブジェクトを直接使用することができる
9ビルトインオブジェクトの合計JSP *。
*今日の研究3:
*リクエスト
*レスポンス
* OUT:文字出力ストリームオブジェクト。あなたは、出力ページ上のデータをすることができます。そしてresponse.getWriter()と類似
* response.getWriter()とout.write()の違い:
*実際のTomcatサーバがクライアントに応答する前に、調べるために、バッファのデータを最初の応答データバッファを移動します。
* Response.getWriter()出力データは常にout.writeの前に()

5.ケース:復興クッキーケース

第四章   セッション:メインコース

1.コンセプト:サーバ側セッション技術、1つのセッションで複数の要求の間で共有データ、サーバ・オブジェクトに格納されたデータ。HttpSessionの
2.クイックスタート:
1.取得のHttpSessionオブジェクト:
HttpSessionのセッションでrequest.getSession =();
2. HttpSessionオブジェクト:
オブジェクトのgetAttribute(文字列名)
のボイドのsetAttribute(文字列名、オブジェクト値)
のボイドremoveAttribute(文字列名)

3.原則
を達成*セッションはクッキーのに依存しています。

4.詳細:
クライアントが閉じているときは1、サーバが二度同じかどうかのセッションを取得、シャットダウンしませんか?
*デフォルト。いいえ。
*あなたが同じが必要な場合は、クッキーを作成することができ、鍵が保存クッキーの永続性のための最大生存時間を設定し、JSESSIONIDです。
Cは=新しい新しいクッキークッキー( "JSESSIONID"、session.getId());
c.setMaxAge(60 * 60);
response.addCookie(C);

2.クライアントは、セッションが二度同じ権利を取得することで、サーバーをシャットダウンし、シャットダウンされていませんか?
*同じではありませんが、データが失われないことを保証します。Tomcatは自動的に以下を達成
*パッシベーションセッションを:
*通常のオフのサーバーの前に、ハードディスク上のセッションオブジェクトのシリアライズ
*セッションのアクティブ化:
*サーバー、メモリ内のセッションオブジェクトへのセッションのファイル変換を開始した後。

3.セッションが破棄されるのはいつですか?
1.サーバーをシャットダウン
()2.セッションオブジェクトの呼び出しを無効にします。
30分の3セッションのデフォルトの有効期限を
選択的に変更するように構成されている
の<session-config>の
<-theセッションタイムアウト> 30 </ -セッションタイムアウト>
</セッション設定>

5.セッション特性
セッション要求内で複数回を格納するデータ1.セッションは、プレゼンスサーバ側
データ・ストア2セッションは、任意のタイプの任意のサイズであってもよいです

*セッションクッキーとの間の差:
サーバ側に保存されている1セッションデータ、クッキークライアント
ないサイズ制限2.セッション・データ、クッキーが
3セッション・データ・セキュリティ、安全でないクッキーについて

第五章   ケース:検証コード

1.ケースの要件:
login.jspをのコードを持つ1.ログインページ
2.ユーザーは、ユーザー名、パスワードと確認コードを入力します。
*ユーザ名とパスワードが間違って入力した場合は、ログインページの注意をスキップ:ユーザー名またはパスワードが間違っています
*コードが正しく入力されている場合は、ログインページのヒントをジャンプ:コードエラーを
*すべての入力が正しい場合は、ホームページにジャンプsuccess.jsp、表示される:ユーザー名を、あなたは歓迎されています

2.分析:

おすすめ

転載: www.cnblogs.com/xuweng/p/11272020.html