特定 url 的过滤器映射
Posted
技术标签:
【中文标题】特定 url 的过滤器映射【英文标题】:filter mapping for particular url 【发布时间】:2014-11-16 00:48:38 【问题描述】: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 应用程序,我想给出有效期。所以我使用过滤器进行映射。
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>
这是我的本地主机链接http://localhost:8080/ExpiryDate/test.jsp.
一年后我需要过滤。一年或特定时间段后,该特定链接无法运行。所以请帮我找出解决方案。
谢谢。
【问题讨论】:
【参考方案1】:由于它是一页,只需检查 JSP 页面开头的两个日期(您指定的开始日期和请求的日期)的差异 变成这样的比索代码
if (difference is one year )
<body>
link is expired
</body>
else
<body>
//what ever data you show
</body>
【讨论】:
只有当我映射以上是关于特定 url 的过滤器映射的主要内容,如果未能解决你的问题,请参考以下文章