머리말
쿠키 : 쿠키는 클라이언트 기술이며 프로그램은 각 사용자의 데이터를 쿠키 형태로 사용자의 각 브라우저에 작성합니다.
사용자가 브라우저를 사용하여 서버의 웹 리소스에 액세스하면 자신의 데이터 영역을 가져와 웹 리소스가 자체 데이터를 처리합니다.
세션 : 세션은 서버 측 기술입니다. 세션 기술을 사용하여 서버는 실행될 때 각 사용자의 브라우저에 대한 자체 세션 객체를 만들 수 있습니다. 세션은 사용자의 브라우저에만 해당되므로 사용자가 서버의 웹 리소스에 액세스 할 때 사용자는 세션에 자체 데이터를 넣을 수 있습니다. 사용자가 서버의 다른 웹 리소스에 다시 액세스하면 다른 웹 리소스는 사용자의 각 세션에서 나옵니다.
사용자에게 서비스를 제공하기 위해 데이터를 꺼내십시오.
세션과 쿠키의 주요 차이점 :
우리는 종종 세션을 사용하여 사용자의 로그인 정보 중 일부를 저장하여 사용자가 온라인 상태인지 확인합니다. 이것은 가장 쉬운 웹 쪽 솔루션을 구현할 수 있습니다. 이 기사는이 로그인 시스템을 구체적으로 구현하기 위해 SSM (Spring, SpringMVC, MyBatis) 프레임 워크를 운송 업체로 사용합니다.
이 방법은 다음과 같습니다.
1. 사용자 이름과 비밀번호를 프론트 엔드를 통해 백엔드 인터페이스로 전달하십시오. 인터페이스가 값을 가져 오면 MD5 암호화되고 데이터베이스의 필드와 비교하고 상태를 프론트 엔드로 반환하며 프론트 엔드는 리턴 값에 따라 페이지를 점프합니다.
MD5 암호화 도구 클래스
공개 문자열 encoderbymd5 (String Str) Nosuchalgorithmexception, UnsupportedEncodingException {// 계산 메소드 결정 messageDigest md5 = messageDigest.getInstance ( "md5"); Base64encoder base64en = 새로운 Base64encoder (); // 암호화 된 문자열 newsstr = base64en.encode (md5.Digest (str.getBytes ( "UTF-8"))); 리턴 Newsr; }다오 층과 맵퍼
< "valiteuser"parametertype = "java.lang.string"resulttype = "com.heitian.ssm.model.userinfo"> username = #{username} </select>에서 암호를 선택하십시오.서비스 계층 구현 클래스
public String valiteUser (userInfo userInfo) {try {userInfo userDemo = userDao.valiteUser (encoderBymd5 (userInfo.getUername ())); if (userInfo.getPassword (). Equals (userDemo.getPassword ())) {return "Pass"; }} catch (예외 e) {e.printstacktrace (); "오류"를 반환합니다. } 반환 "거부"; }컨트롤러 계층
@ResponseBody @RequestMapping ( "/loginUser") public hashmap <string, object> loginUser (httpservletRequest 요청, userInfo userInfo) {hashmap <string, object> result = new Hashmap <string, object> (); httpsession session = request.getSession (); System.out.println ( "로그인 실패"); 문자열 상태 = userErvice.ValiteUser (userInfo); if (status.equals ( "pass")) {session.setattribute ( "current_user", userInfo.getUername ()); result.put ( "상태", "Pass"); } else {if (status.equals ( "refuse")) {result.put ( "status", "refuse"); } else {result.put ( "status", "error"); }} 반환 결과; }상태 정보를 반환하면 로그인이 성공했는지 확인할 수 있습니다. 성공하면 사용자 이름 키 값 쌍을 세션에 작성하십시오.
2. 다른 페이지에 액세스 할 때 온라인으로 사용자 로그인하는지 확인하는 방법은 무엇입니까? 나는 JS를 사용하여 세션 값을 판단 할 수 있습니다.
즉, 먼저 세션의 가치를 얻으십시오. 비어 있거나 무효 인 경우 세션에 로그인 동작이 없음을 의미합니다. 우리는 자동으로 홈페이지로 리디렉션합니다. 값이 있으면 로그인 동작이 있고 온라인으로 로그인 한 사용자가 current_user입니다.
현재 사용자 이름을 사용하여 배경 인터페이스를 조정할 수 있습니다.
<script language = "javaScript"> $ (document) .ready (function () {var myName = "<%= session.getAttribute ("current_user ")%>"; var projectid1 = "<%= request.getAttribute ("projectID ")%>"; if (myName == "null") {window.location.href = "/toindex"/toindex "/toindex" "; } </스크립트>3. 사용자 로그 아웃
로그 아웃, 즉 세션의 값을 지우고 백그라운드에서 로그 아웃 인터페이스가 열립니다.
@requestmapping ( "/quituser") public string quituser (httpservletrequest request) {httpsession session = request.getSession (); session.removeattribute ( "current_user"); "색인"을 반환합니다. }이것은 로그인에서 로그 아웃까지 사용자 관리 시스템을 인식하지만 이는 가장 기본적인 시스템이며 보안은 큰 문제이므로 JWT 토큰과 같은 검증 솔루션은 여전히 매우 유용합니다.
요약
위는이 기사의 전체 내용입니다. 이 기사의 내용에 모든 사람의 연구 나 작업에 대한 특정 참조 가치가 있기를 바랍니다. 궁금한 점이 있으면 의사 소통을 위해 메시지를 남길 수 있습니다. Wulin.com을 지원 해주셔서 감사합니다.