>  기사  >  Java  >  쿠키 기반 필터를 사용하여 고객이 방문할 때마다 자동으로 로그인되도록 설정

쿠키 기반 필터를 사용하여 고객이 방문할 때마다 자동으로 로그인되도록 설정

巴扎黑
巴扎黑원래의
2017-06-23 16:35:231436검색

원문: 이 기사는 다른 곳에서 가져온 것이 아닙니다. 재인쇄하려면 블로거에게 문의하세요.

모든 사람이 로그인하면 로그인 상자가 나타날 것이라고 믿습니다. 다음 번에 로그인해야 합니다. 월간 무료 로그인과 유사한 옵션입니다. 이 블로그 게시물에서는 구현 방법을 설명합니다. 메모 모음으로 간주할 수 있습니다. 지적해 주세요

왜 셀프 로그인을 한 번이라고 하시나요? 특정 페이지에 접속할 때 처음 자동 로그인에 실패하고 다음 방문 시 다시 자동 로그인 과정을 거치면, 무한루프가 발생하게 됩니다.

이 블로그 게시물의 코드 예제 프레임워크는 Spring MVC입니다. 다음은 이 기능을 구현하는 데 필요한 지식을 설명합니다. 쿠키 및 필터

1 쿠키란?: 쿠키는 웹 애플리케이션에 대한 사용자를 저장합니다. 관련 정보는 유용한 접근 방식을 제공합니다. 예를 들어, 사용자가 귀하의 사이트를 방문할 때 쿠키를 사용하여 사용자의 기본 설정이나 기타 정보를 저장하면 다음 번에 사용자가 귀하의 사이트를 방문할 때 애플리케이션이 이전에 저장된 정보를 검색할 수 있습니다.

쿠키 저장 방법과 쿠키 삭제 방법을 살펴보겠습니다

    쿠키 저장하기
  • String newUserName = null;
    try {
    	newUserName = URLEncoder.encode(username, "UTF-8");//把用户名转码,防止用户名是中文,cookies保存中文取出会乱码
    } catch (UnsupportedEncodingException e) {
    	e.printStackTrace();
    }
    Cookie nameCookie = new Cookie("username", newUserName);
    String pwdMd5Cook = MD5Util.MD5(Pwd);
    Cookie pwdCookie = new Cookie("pwd", pwdMd5Cook);// 保存加密后的密码
    nameCookie.setMaxAge(60 * 60 * 24 * 365);// 用户名保存一年
    pwdCookie.setMaxAge(60 * 60 * 24 * 30);// 密码保存30天
    // 发送Cookie信息到浏览器
    response.addCookie(nameCookie);
    response.addCookie(pwdCookie);
쿠키 삭제 방법은 매우 간단하지만

주의할 가치가 있습니다. 쿠키를 저장하는 것과 마찬가지로 동일한 제어 레이어에 있어야 합니다. 그렇지 않으면 저장된 쿠키를 찾을 수 없으며 삭제할 수 없습니다.

Cookie cookie = new Cookie("pwd", null);
cookie.setMaxAge(0);// 删除密码cookie
response.addCookie(cookie);
2.Filter - 필터

필터는 필터라고도 합니다. 실용적인 기술의 발전으로 웹 개발자는 필터 기술을 사용하여 Jsp, Servlet, 정적 이미지 파일 또는 정적 HTML 파일 등과 같은 웹 서버에서 관리하는 모든 웹 리소스를 가로채서 몇 가지 특수 기능을 달성합니다. 예를 들어, URL 수준의 권한 접근 제어, 민감한 어휘 필터링, 응답 정보 압축 등 일부 고급 기능을 구현할 수 있습니다.

구현 방법:

Filter

인터페이스를 상속하고 해당 doFilter 메서드를 구현합니다. 작성된 필터 클래스를 웹에 등록합니다. 전달된 로고(

IsAutomaticLogin), 이 로고는 자동 로그인 중에 저장됩니다(성공 또는 실패에 관계 없음)

3. 위에서 제공한 지식을 바탕으로 전체 코드는 다음과 같습니다. 잘못된 점을 발견하면 모두 환영합니다.

<filter>指定一个过滤器。
<filter-name>用于为过滤器指定一个名字,该元素的内容不能为空。
<filter-class>元素用于指定过滤器的完整的限定类名。
<init-param>元素用于为过滤器指定初始化参数,它的子元素<param-name>指定参数的名字,<param-value>指定参数的值。
在过滤器中,可以使用FilterConfig接口对象来访问初始化参数。
<filter-mapping>元素用于设置一个 Filter 所负责拦截的资源。一个Filter拦截的资源可通过两种方式来指定:Servlet 名称和资源访问的请求路径
<filter-name>子元素用于设置filter的注册名称。该值必须是在<filter>元素中声明过的过滤器的名字
<url-pattern>设置 filter 所拦截的请求路径(过滤器关联的URL样式)
<servlet-name>指定过滤器所拦截的Servlet名称。
<filter>
	<filter-name>suicaiFilter</filter-name>
	<filter-class>com.suicai.filter.suicaiFilter</filter-class>
</filter>

<filter-mapping>
	<filter-name>suicaiFilter</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>

이 시점에서 이 기능의 모든 예가 설명되었습니다. 잘못된 점이 있으면 의견란에 지적해 주시기 바랍니다.

위 내용은 쿠키 기반 필터를 사용하여 고객이 방문할 때마다 자동으로 로그인되도록 설정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.