package com.conant.ums.lbean;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class DFilter
extends BaseLBean implements Filter {
private static final String[] nochecks = {
"/welcome.jsp","user/login.jsp","log/"
};
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException,
ServletException {
try {
if (req instanceof HttpServletRequest &&
res instanceof HttpServletResponse) {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
HttpSession session = request.getSession(true);
//session��⣬���ھ����µ�¼
if (session.getAttribute("LoginData") == null) {
String uri = request.getRequestURI();
boolean bcheck = true;
for (int i = 0; i < nochecks.length; i++) {
if (uri.indexOf(nochecks[i]) >= 0) {
bcheck = false;
}
}
if (bcheck) {
log.debug("filtering: " + uri + "?" +
request.getQueryString());
String cpath = request.getContextPath();
//"http://"+request.getServerName()+":"+request.getServerPort()
response.sendRedirect(cpath + "/user/timeout.html");
return;
}
}
/*
* //stream filter FilterOWrapper fresp = new FilterOWrapper(response);
* chain.doFilter(request, fresp);
fresp.closeFilter();
*/
}
chain.doFilter(req, res);
//wrong ways:
//request.getRequestDispatcher("/error.jsp").forward(request,
// response);
//res.sendRedirect(req.getRequestURI());
}
catch (Exception e) {
log.debug(e);
}
}
//for filter
protected FilterConfig filterConfig;
public void init(FilterConfig filterconfig) {
filterConfig = filterconfig;
}
public FilterConfig getFilterConfig() {
return filterConfig;
}
public void setFilterConfig(FilterConfig filterconfig) {
filterConfig = filterconfig;
}
public void destroy() {
log.debug("Filter Event: Destroy");
return;
}
}