2014-09-22 2 views
2

ExpiryFilter.java 나는이 점에서 하나의 웹 응용 프로그램을 만드는 오전필터 매핑

import java.io.IOException; 
import java.text.SimpleDateFormat; 
import java.util.Calendar; 
import java.util.Date; 

import javax.servlet.Filter; 
import javax.servlet.FilterChain; 
import javax.servlet.FilterConfig; 
import javax.servlet.ServletException; 
import javax.servlet.ServletRequest; 
import javax.servlet.ServletResponse; 
import javax.servlet.http.HttpServletResponse; 

public class ExpiryFilter implements Filter { 

    // add a five years expiry 
    private Integer years = 1; 

    @Override 
    public void destroy() { 
    } 

    @Override 
    public void doFilter(ServletRequest request, ServletResponse response, 
      FilterChain chain) throws IOException, ServletException { 
     if (years > -1) { 
      Calendar c = Calendar.getInstance(); 
      c.setTime(new Date()); 
      c.add(Calendar.YEAR, years); 

      // HTTP header date format: Thu, 01 Dec 1994 16:00:00 GMT 
      String o = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss zzz") 
        .format(c.getTime()); 
      ((HttpServletResponse) response).setHeader("Expires", o); 
     } 

     chain.doFilter(request, response); 
    } 

    @Override 
    public void init(FilterConfig filterConfig) throws ServletException {  
    } 
} 

은 내가 유효성에게 시간을주고 싶다. 그래서 매핑을 위해 필터를 사용하고 있습니다.

web.xml을

<filter> 
    <description>Set cache expiry for static content</description> 
    <filter-name>ExpiryFilter</filter-name> 
    <filter-class>ExpiryFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>ExpiryFilter</filter-name> 
    <url-pattern>/ExpiryDate/*</url-pattern> 
    <dispatcher>REQUEST</dispatcher> 
</filter-mapping> 

이 내 로컬 호스트 링크 내가 1 년 후에 필터링해야 http://localhost:8080/ExpiryDate/test.jsp.입니다. 1 년 또는 특정 기간 후에 특정 링크를 실행할 수 없습니다. 솔루션을 찾으려면 도와주세요.

감사합니다.

답변

3

JSP 페이지 시작 부분에 두 개의 날짜 (사용자가 지정한 시작 날짜와 요청 날짜)의 차이점을 확인하십시오.
은 다음과 같습니다. 페소 할일 내가 * .jsp로 매핑하는 경우에만 코드

if (difference is one year){ 
<body> 
link is expired 
</body> 
}else{ 
<body> 
//what ever data you show 
</body> 
} 
+0

그것은 올바른 만료하지만 등은 그래서 난 특정 URL은 그렇게 나에게 코딩을 안내하거나 나에게 링크를 표시하시기 바랍니다 필요가 Gmail과 같은 모든 만료 –

+0

물론 URL 패턴에 대한 모든 요청이 만료되므로 단 한 페이지 만료되기를 원하십니까? – Dunken

+0

그래 절대적으로 http : // localhost : 8080/ExpiryDate/test.jsp이 특정 링크 만료 싶습니다 –