序文
Cookie:Cookieはクライアントテクノロジーであり、プログラムは各ユーザーのデータをCookieの形でそれぞれのブラウザに書き込みます。
ユーザーがブラウザを使用してサーバー内のWebリソースにアクセスすると、Webリソースが独自のデータを処理するように、独自のデータ領域を持ち込みます。
セッション:セッションはサーバー側のテクノロジーです。セッションテクノロジーを使用して、サーバーは、実行時に各ユーザーのブラウザの独自のセッションオブジェクトを作成できます。セッションはユーザーのブラウザ専用であるため、ユーザーがサーバーのWebリソースにアクセスすると、ユーザーはセッションに独自のデータを配置できます。ユーザーがサーバー内の他のWebリソースに再びアクセスすると、他のWebリソースはユーザーのそれぞれのセッションからのものになります。
データを取り出してユーザーにサービスを提供します。
セッションとCookieの重要な違い:
セッションを使用して、ユーザーのログイン情報の一部を保存して、ユーザーがオンラインであるかどうかを確認します。これは、実装される最も簡単なWebサイドソリューションです。この記事では、SSM(Spring、SpringMVC、MyBatis)フレームワークをキャリアとして使用して、このログインシステムを具体的に実装しています。
この方法は次のとおりです。
1.フロントエンドを通るユーザー名とパスワードをバックエンドインターフェイスに渡します。インターフェイスが値を取得した後、MD5暗号化され、データベースのフィールドと比較し、ステータスをフロントエンドに返し、フロントエンドは返品値に従ってページをジャンプします。
MD5暗号化ツールクラス
public string encoderbymd5(string str)がnosuchalgorithmexception、unsupportedencodingexceptionをスローします{// md5 = mesagedigest.getinstance( "md5"); base64encoder base64en = new base64encoder(); //暗号化された文字列string newsstr = base64en.encode(md5.digest(str.getbytes( "utf-8"))); newsrを返します。 }ダオ層とマッパー
<select id = "valiteuser" parametertype = "java.lang.string" resulttype = "com.heitian.sss.model.userinfo"> username =#{username} </select>サービスレイヤー実装クラス
public String valiteuser(userInfo userInfo){try {userInfo userdemo = userdao.valiteuser(encoderbymd5(userinfo.getusername())); if(userInfo.getPassWord()。 }} catch(例外e){e.printstacktrace(); 「エラー」を返します。 }「拒否」を返します。 }コントローラーレイヤー
@ResponseBody @RequestMapping( "/loginuser")public hashmap <string、object> loginuser(httpservletrequest request、userinfo userininfo){hashmap <string、object> result = new hashmap <string、object>(); httpsession session = request.getSession(); System.out.println( "ログインフェイル"); string status = userservice.valiteuser(userinfo); if(status.equals( "pass")){session.setattribute( "current_user"、userinfo.getusername()); result.put( "status"、 "pass"); } else {if(status.equals( "reduse")){result.put( "status"、 "reduse"); } else {result.put( "status"、 "error"); }} return result; }ステータス情報を返すことにより、ログインが成功したかどうかを判断できます。成功した場合は、ユーザー名キーバリューペアをセッションに書き込みます。
2。他のページにアクセスするとき、ユーザーがオンラインでログインするかどうかを判断するにはどうすればよいですか? JSを使用して、判断するセッション値を取得します。
つまり、最初にセッションの価値を取得します。空またはnullの場合、セッションにログイン動作がないことを意味します。自動的にホームページにリダイレクトします。値がある場合、それはログイン動作があり、オンラインでログインしているユーザーがcurrent_userであることを意味します
この時点で、ユーザー名を使用してバックグラウンドインターフェイスを調整できます。
<スクリプト言語= "javascript"> $(document).ready(function(){var myname = "<%= session.getattribute(" current_user ")%>"; var projectid1 = "<%= request.getattribute(" project.getattribute( "projecid")%> "; if(myname ==" null ") } </script>3。ユーザーログアウト
ログアウト、つまり、セッションの値をクリアすると、ログアウトインターフェイスがバックグラウンドから開かれます。
@RequestMapping( "/Quituser")public String Quituser(httpservletrequest request){httpsession session = request.getsession(); session.RemoveAttribute( "current_user"); 「インデックス」を返します。 }これにより、ログインからログアウトまでのユーザー管理システムが実現しますが、これは最も基本的なシステムであり、セキュリティは大きな問題であるため、JWTトークンのような検証ソリューションは依然として非常に便利です。
要約します
上記は、この記事のコンテンツ全体です。この記事の内容には、すべての人の研究や仕事に特定の参照値があることを願っています。ご質問がある場合は、メッセージを残してコミュニケーションをとることができます。 wulin.comへのご支援ありがとうございます。