スプリング.


[2-17]@RequestParamおよび@ModelAttribute
  • @RequestParam
    -関連するパラメータに要求されたパラメータを貼り付けるプレゼンテーション
  • [2-18] @ModelAttribute
  • @ModelAttribute
    -適用オブジェクトをモデルのプロパティとして自動的に追加するプレゼンテーション
    -戻りタイプまたはコントローラメソッドに適用されるパラメータ
    -コントローラパラメータに添付可能なコメント@RequestParamおよび@ModelAttribute
    -基本型/string省略@RequestParam、参照型省略@ModelAttribute
  • WebDataBinder
    -ブラウザを使用して要求された値を実際のオブジェクトにバインドするときに、中間ロールとして機能します.
    -ほぼ2つの作業①タイプ変換②でデータ検証を行い、結果をBindingResultに保存してコントローラに渡すことで、コントローラが結果を見ることができます.
  • [2-19]会員入選画面の作成
    - root-context.xmlはnon-webに関する設定ファイルです
    - servlet-context.xmlはwebに関する設定ファイルです
    -①context rootの自動追加②セッションidの自動追加
    [2-20] @GetMapping, @PostMapping
    [2-21] @GetMapping, @PostMapping
    1. @GetMapping, @PostMapping
    -@RequestMappingではなく@GetMapping、@PostMappingを使用できます.
    -方法が違うならurlが同じでも問題ない
    2.クラスに貼り付けられた@requestmapping
    -マッピングするURLの共通部分を@requestMappingとしてクラスに適用
    3.@RequestMappingのURLモード
    - ?1文字、*に複数の文字、**にサブパスが含まれます.アレイを使用した複数のアレイの割り当て
    4.URLコード-パーセンテージコード
    -URLに含まれる非ASCII文字を文字コード(16進数)文字列に変換
    [2−22]リダイレクトおよび転送
    1.リダイレクトと転送を比較する処理手順
    -redirect:クライアントが要求を発行すると、応答ページは他のURL->ブラウザに再要求され、自動的にそのURLに再要求が送信されます.リクエスト2回、レスポンス2回
    -転送:お客様が要求した場合は、コンテンツを別のページに転送します.受信したページはリクエストを処理し、応答します.
    2. RedirectView
    -ReditView:コントローラでリダイレクト処理を行う場合、応答ヘッダを作成して状態を送信
    3. JstlView
    -JSPビューの処理
    4. InternalResourceView
    -転送時に使用するビュー
    5.前の例
    [2-23]クッキー欄
    [原句]クッキーって何?
    -名前と値のペアからなる情報.アスキー文字のみ
    2.クッキーの操作手順
    -サーバー上で作成して送信し、ブラウザに保存します.有効期間後の自動削除
    -サーバー上の要求がdomain、pathと一致している場合のみ(+サブパスを含む)自動送信
    -クライアント識別技術
  • クッキーの作成
  •  Cookie cookie = new Cookie("id", "asdf"); //쿠키 생성
     cookie.setMaxAge(60*60*24); //유효기간 설정(초)
     response.addCookie(cookie); //응답에 쿠키 추가
    削除と変更
  • Cookie
     Cookie cookie = new Cookie("id", ""); //변경할 쿠키와 같은 이름 쿠키 생성
     cookie.setMaxAge(0); //유효기간을 0으로 설정(삭제)
     response.addCookie(cookie); //응답에 쿠키 추가
     
     Cookie cookie = new Cookie("id", ""); //변경할 쿠키와 같은 이름 쿠키 생성
     cookie.setValue(URLEncoder.encode("남궁성")); //값의 변경
     cookie.setDomain("www.fastcampus.co.kr"); //도메인의 변경
     cookie.setPath("/ch2"); //경로의 변경
     cookie.setMaxAge(60*60*24*7); //유효기간의 변경
     response.addCookie(cookie); //응답에 쿠키 추가
    読み取り
  • Cookie
  •  Cookie[] cookies = request.getCookies(); //쿠키 읽기
     
     for(Cookie cookie : cookies) {
     	String name = cookie.getName();
        String value = cookie.getValue();
        
        System.out.printf("[cookie]name=%s, value=%s%n", name, value);
     }
    [2-24]セッション
  • セッションとは?
    -相互に関連付けられた要求を組み合わせる->Cookieの使用
    -サーバは、ブラウザごとに1つのリポジトリ(セッションオブジェクト)を提供します.
    -ブラウザが要求を送信すると、サーバは応答するクッキーにセッションIDを保存し、次の要求からクッキーは要求に自動的に追従する(セッションIDを持つ).したがって、次のリクエストから同じセッションにグループ化されます.
    -独立要求を同じセッションIDを持つCookieにグループ化する.
    -セッションの終了:手動(無効)/自動終了(タイムアウト)
  • セッションの作成
    -ブラウザが最初に要求した場合、サーバはセッションオブジェクトを作成します.
    -応答としてセッションIDを含むCookieを送信する.
  • セッションオブジェクトの取得
    -各ブラウザはCookieを保存しているので、異なるPCまたはブラウザからセッションIDを受信して保存している.
  •  HttpSession session = request.getSession();
     session.setAttribute("id", "asdf");
  • セッションに関する方法
  • セッションの終了
    -手動で
  • を閉じる
      HttpSession session = request.getSession();
      session.invalidate(); //1.세션을 즉시 종료
      session.setMaxInactiveInterval(30*60); //2.예약 종료(30분 후)
    -自動的に閉じる-web.xml
    <session-config>
    	<session-timeout>30</session-timeout>
    </session-config>

    [2−25]セッション
    [2−26]セッション
    [2-27]異常処理
    [2−28]異常処理
    1.@ExceptionHandlerと@Controller Advice
    -例外処理方法を作成し、@ExceptionHandlerを貼り付けます.複数のアレイの場合
    -@Controller Adviceを使用してグローバル例外処理クラスを作成できます(パッケージを指定可能)
    -例外処理方法が重複している場合は、まずコンテキスト内の例外処理方法を使用します.
    2. @ResponseStatus
    -レスポンスメッセージのステータスコードの変更
    3. - web.xml
    -ステータスコードによるビューのマッピング
    4. SimpleMappingExceptionResolver
    -例外タイプ別にビューをマッピングします.servlet-context.xmlに登録
    5. ExceptionResolver
    6.文字列内の例外処理
    ①コントローラメソッド内でtry-catch処理
    ②コントローラは@ExceptionHandlerメソッドで処理
    ③@ControllerAdviceクラスの@ExceptionHandlerメソッドで処理
    ④例外タイプ別ビュー指定-単純MappingExceptionResolver
    ⑤応答ステータスコードでビューを指定-
    [2-29]DispatcherServiceletの検出
    1.DispatcherServiceletとは?
    -共通処理部分をテンプレートから前方に移動して、共通部分を削除します.
    2.SpringMVCのリクエスト処理手順

    3.DispacherServiceletのソース解析
    [2−30]データ変換と検証
  • WebDataBinder
  • トランシーバコントローラにコンバータ機能
  • を追加する.
  • PropertyEditor
    -PropertyEditer:特定のタイプまたは名前に適用されるフィールド
    ①デフォルトではデフォルトデフォルトのDepartPropertyEditor-スプリングを提供
    ②カスタムPropertyEditor-ユーザー直接購入.PropertyEditorSupportの継承は便利です
    -すべてのコントローラにフォーマットコピーを登録-WebBindingInitializerを実装して登録
    -特定のコントローラでパケットを変換:
  • メソッドを作成し、コントローラに@InitBinderを追加
  • ConverterおよびConversion Service
    -Converter:一方向タイプ変換(タイプA->タイプB).PropertyEditorの欠点の改善(statefule->stateless)
    -変換サービス:タイプ変換サービスを提供します.複数のConverterの登録を許可
    WebDataBinderにデフォルトのD e faultFormattingConversionServiceが登録されています
    すべてのコントローラでフォーマットのコピーを設定-使用するためにWebBindingInitializerを構成できます.
    特定のコントローラで変換:コントローラに@InitBinderを使用する方法を作成します.
  • Formatter
    -フォーマットコピー:双方向タイプ変換(String->タイプ、タイプ->String)、インタフェース
    -バインドするフィールドに適用:@NumberFormat,@DataTimeFormat
  • [2−31]データ変換と検証
  • Validatorとは?
    -オブジェクトを検証するためのインタフェース.オブジェクト検証は、実装のための
  • である.
  • Validator検証の使用-手動
  • Validator検証の使用-自動
  • グローバルValidator
    -1つのValidatorを使用して複数のオブジェクトを検証する場合、グローバルValidator
  • として登録されます.
  • MessageSource
    -様々なリソースからメッセージを読み出すためのインタフェース
  • .
  • 検証メッセージの出力
    -スプリングを使用して提供するカスタムタグライブラリ