create a filter called LogBrowserFilter.
创建一个名为LogBrowserFilter的筛选器来过滤浏览器信息。
Implementing LogAccessFilter
Here, we have the implementation of LogAccessFilter:
package com.gary.book.chapter01;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.Date;
@WebFilter(filterName = “LogAccess”, urlPatterns = “/*”)
public class LogAccessFilter implements javax.servlet.Filter {
private static Logger logger =
LogManager.getLogger(LogAccess.class);
public void destroy() {
}
public void doFilter(javax.servlet.ServletRequest req,
javax.servlet.ServletResponse resp, javax.servlet.FilterChain
chain) throws javax.servlet.ServletException, IOException {
//Gets the initial date of request.
Date dateInitRequest = new Date();
//Get IP of Client that sent a resquest.
String ip = ((HttpServletRequest) req).getRemoteAddr();
//Following to next filter. If none next filter exist, follows
//for main logic.
chain.doFilter(req, resp);
//Gets the end date of request.
Date dateEndRequest = new Date();
//Logging the informations of IP and access time.
logger.info("IP: " + ip + " Access time : "
- Long.toString(dateEndRequest.getTime()
- dateInitRequest.getTime())
- " ms");
}
public void init(javax.servlet.FilterConfig config) throws
javax.servlet.ServletException {
}
}
As we can see in the code, to create one servlet filter, we need to create a class that
正如我们