⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 transactionauditingfilter.java

📁 噶额外噶外骨骼感广泛高热感 就 啊啊
💻 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 + -