📄 transactionauditingfilter.java
字号:
package itso.basicweb.filter;
import java.io.IOException;
import java.io.RandomAccessFile;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
* @version 1.0
* @author
*/
public class TransactionAuditingFilter implements Filter {
private RandomAccessFile auditFile;
/**
* @see javax.servlet.Filter#void ()
*/
public void destroy() {
try {
getAuditFile().close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* @see javax.servlet.Filter#void (javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
*/
public void doFilter(
ServletRequest req,
ServletResponse resp,
FilterChain chain)
throws ServletException, IOException {
String protocol = req.getProtocol();
String address = req.getRemoteAddr();
String host = req.getRemoteHost();
String transaction = req.getParameter("transaction");
String parameters = "";
java.util.Enumeration parameterNames = req.getParameterNames();
while (parameterNames.hasMoreElements()) {
String name = parameterNames.nextElement().toString();
String value = req.getParameter(name);
parameters += name + "=" + value + ", ";
}
parameters = parameters.substring(0, parameters.length() - 2);
String output = "- " + transaction +
" being performed from " + host + " (" + address +
") using " + protocol + " at " + new java.util.Date() +
" Parameters: " + parameters + "\r\n";
synchronized (getAuditFile()) {
getAuditFile().writeBytes(output);
}
System.out.println(output);
chain.doFilter(req, resp);
}
/**
* Method init.
* @param config
* @throws javax.servlet.ServletException
*/
public void init(FilterConfig config) throws ServletException {
String pathname = config.getInitParameter("pathname");
try {
setAuditFile(new RandomAccessFile(pathname, "rw"));
getAuditFile().seek(getAuditFile().length());
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* Returns the auditFile.
* @return RandomAccessFile
*/
private RandomAccessFile getAuditFile() {
return auditFile;
}
/**
* Sets the auditFile.
* @param auditFile The auditFile to set
*/
private void setAuditFile(RandomAccessFile auditFile) {
this.auditFile = auditFile;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -