ログイン機能の実装 次に、login.css を作成し、スタイル ID をコンテンツとして、static の下の css ディレクトリに保存します。
login.htmlログインページを作成する
前の部分はフロントエンドです。バックエンドのコードを書き終えましょう。 UserRepository に次のメソッド定義を追加します。
UserService および実装クラスに次のメソッドが追加されます。
UserController に次のメソッドを追加します。
プロジェクトを開始するには、 http://localhost:8080/ログインページ ログインページに移動します。 ユーザー名とパスワードを入力してください。パスワードが間違っています: 正しいユーザー名とパスワードを入力すると、ユーザー リストにリダイレクトされます。 このようにして、シンプルなログイン機能が実現します。 ユーザー情報を変更するときに、ログインしているかどうかを確認する必要がある場合はどうすればよいですか? インターセプター カスタム インターセプターを作成し、HandlerInterceptor インターフェイスを実装します。
WebMvcConfiguraeAdapter を継承し、addInterceptor メソッドをオーバーライドする Java クラスを作成します (このクラスは、構成インターセプターを追加し、このクラスに構成インターセプターを追加し、フィルタリングを構成するために使用されます)。
次に、ログイン コントローラー メソッドを調整し、セッション情報を保存します。
ユーザー リストに再度アクセスします。 http://localhost:8080/ユーザーリスト このとき、ユーザー情報を変更する機能にアクセスし、ログインページにジャンプします。 ログイン後、再度ユーザー情報の変更機能にアクセスしてください。 これにより、ユーザー情報の変更ページが表示されます。 この時点で、検証を受信するための簡単なセッションを実装しました。 サーバーが再起動されると、セッションはサーバー上に保存され、サーバー メモリ内に残っているため、セッションは失われます。 セッション分散には4つのソリューションがあります ソリューション 1: クライアント ストレージ 情報をクッキーに直接保存します。 Cookie はクライアントに保存される小さなデータです。クライアントは http プロトコルを介してサーバーと対話し、通常は機密性のない情報を保存するために使用されます。 欠点
解決策2: セッションレプリケーション セッション レプリケーションは、小規模なエンタープライズ アプリケーションで広く使用されているサーバー クラスター セッション管理メカニズムです。実際の開発では広く使用されていません。これは、Web サーバー (Tomcat など) 用のクラスターを構築することによって実現されます。 欠点 セッション同期の原理は、同じ LAN 内でブロードキャストを送信することにより、セッションを非同期的に同期することです。サーバーの数が増え、それらが同時に接続されると、セッションで同期する必要があるデータの量が多くなります。他のサーバー上のすべてのセッションをこのサーバーに同期する必要があり、これにより一定のネットワーク オーバーヘッドが発生します。特にユーザー数が多い場合はメモリ不足が発生する場合があります。 アドバンテージ サーバー間のセッション情報は同期されます。いずれかのサーバーがダウンしても、他のサーバーのセッションの状態には影響しません。構成は比較的シンプルです。 Tomcat はすでに分散アーキテクチャの開発および管理メカニズムをサポートしています。 Tomcat の設定を変更してセッション レプリケーションをサポートし、クラスター内の複数のサーバー間でセッション オブジェクトを同期して、各サーバーがすべてのユーザーのセッション情報を保存できるようにすることができます。この方法では、ローカル マシンのダウンタイムによってセッション データが失われることはなく、サーバーがセッションを使用する場合は、ローカル マシン上でセッションを取得するだけで済みます。 設定方法は? Tomcat インストール ディレクトリの下の config ディレクトリにある server.xml ファイルで、コメントを開きます。 Tomcat は同じゲートウェイに存在する必要があります。そうでない場合、ブロードキャストを受信できず、セッションを同期できません。 web.xml でセッション レプリケーションを有効にします。 解決策3: セッションバインディング: Nginxは、無料のオープンソースの高性能HTTPサーバーおよびリバースプロキシサーバーです。 Nginx で何ができるのでしょうか? リバースプロキシ、負荷分散、http サーバー (動的および静的プロキシ)、フォワードプロキシ セッションバインディングに nginx を使用する方法 nginx のリバース プロキシと負荷分散を使用します。以前は、クライアントは処理のためにいずれかのサーバーに割り当てられていました。割り当てられる特定のサーバーは、サーバーの負荷分散アルゴリズム (ポーリング、ランダム、IP ハッシュ、重みなど) によって異なります。ただし、nginx の ip-hash 戦略に基づいてクライアントとサーバーをバインドすることはできます。このサーバーには同じクライアントのみがアクセスでき、クライアントが何度リクエストを送信しても、同じサーバーによって処理されます。 欠点 単一障害点が発生しやすくなります。 1 台のサーバーがダウンすると、そのサーバー上のセッション情報は失われます。 フロントエンドでは負荷分散を行うことができません。そうすると、セッションバインディングに問題が生じます アドバンテージ
ソリューション4: Redisベースのセッションストレージソリューション アドバンテージ
欠点 もう 1 つのネットワーク呼び出しがあり、Web コンテナーは Redis にアクセスする必要があります。 通常、Web コンテナが配置されているサーバーと Redis が配置されているサーバーは、ネットワークのオーバーヘッドを削減し、イントラネットを介して接続するために、同じコンピュータ ルームに配置されます。 出典: http://45dwz.com/xeP0J Redis ベースの分散ストレージ セッション ソリューションの実装 ここではRedisのインストール方法については説明しません。インストール方法が分からない場合はご連絡ください。 Redis 統合 依存関係の追加
Redis設定を追加する
Redisにセッションを追加する スタートアップ クラスに @EnableRedisHttpSession アノテーションを追加します。
プロジェクトを開始し、再度ログインするとRedisで見つかります プロジェクトを再度再起動したところ、ユーザー情報を変更するときに再度ログインする必要がないことがわかりました。 この時点で、Redis 分散ストレージ セッション ソリューションは完了です。 要約する この記事では、まずログイン機能を実装し、次に検証セッションのインターセプト処理を実装し、次に 4 つのセッション分散ソリューションをまとめ、最後に Redis セッション ストレージに基づくソリューションを実装します。 この記事はWeChat公開アカウント「Java Backend Technology Full Stack」から転載したものです。以下のQRコードからフォローできます。この記事を転載する場合は、Java Backend Technology Full Stack パブリック アカウントにお問い合わせください。 |
<<: Hongmeng HarmonyOS 開発中の分散フロー開発における一般的なエラーに関する FAQ
>>: ハイブリッド マルチクラウドの旅におけるビジネス継続性
諺にあるように、困難な時代に英雄が現れる。百度のランダムKの時代には、小さなウェブサイトが台頭するチ...
中国は特殊な市場です。当社の製品販売はまさに、製品の本質よりもマーケティングが重要になる段階に達して...
[51CTO.comより引用] モバイルインターネットの時代において、多くの中国の起業家企業が海外に...
始める前に、まず SEO についての私の理解についてお話ししたいと思います。 SEOとは何でしょうか...
ソフトウェア アーキテクチャの分野はここ数年で劇的に変化しました。すべてのシステムが単一のデータベー...
検索エンジンの発展に伴い、企業は徐々にオンライン市場に注目するようになり、多くの企業が独自の企業ウェ...
wholesaleinternet は、独自のコンピューター ルーム (カンザス)、独自のハードウェ...
メディアの報道によると、8月3日夕方、世界有数のウエハーファウンドリーであるTSMCは、台湾の新竹サ...
Gongyi は、シカゴにデータセンターがある Cloudive から特別版の 2G メモリ KVM...
Forrester Researchは最近、「Now Tech: 中国のエンタープライズ コンテナ ...
1. 鉄道省による3億3000万元の入札の裏側:バックエンド技術に業界から疑問の声ITソフトウェアシ...
[[375586]]序文配布は確かに興味深いトピックです。注意して見ていれば、生活のいたるところに分...
本紙(劉暁旭記者、謝雲青記者)は、7月10日夜、中国国際航空のウェブサイトシステムが一時的に故障した...
Hosteons は、「すべての OpenV 仮想 VPS が KVM に無料で移行される」ことを公...
疫病の影響で、ほとんどの人が自宅で仕事や休暇を取らざるを得なくなり、オフラインでは満たせないニーズが...