日志Filter
package cn.qiu;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
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.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.http.HttpServletRequest;
/**
* Filter 拦截器
* 应用【日志Filter】
* @author QiuRiMangCao
*
*/
@WebFilter(filterName="LoggingFilter", urlPatterns={ "/*" }, initParams={
@WebInitParam(name="logFileName", value="log.txt"),
@WebInitParam(name="prefix", value="Uri: ")
})
public class LoggingFilter implements Filter{
private String prefix;
private PrintWriter logger;
@Override
public void destroy() {
System.out.println("destroy........");
if(logger != null ){
logger.close();
}
}
@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
throws IOException, ServletException {
System.out.println("doFilter.....");
HttpServletRequest httpServletRequest = (HttpServletRequest) arg0;
logger.println(new Date() + " " + prefix + httpServletRequest.getRequestURI());
logger.flush();
arg2.doFilter(arg0, arg1);
}
@Override
public void init(FilterConfig arg0) throws ServletException {
System.out.println("init.....");
prefix = arg0.getInitParameter("prefix");
String logFileName = arg0.getInitParameter("logFileName");
String appPath = arg0.getServletContext().getRealPath("/");
System.out.println("appPath【"+appPath+"】LoginName【"+logFileName+"】");
try {
logger = new PrintWriter(new File(appPath, logFileName));
} catch (FileNotFoundException e) {
e.printStackTrace();
throw new ServletException(e.getMessage());
}
}
}