我在Tomcat中部署了一个过滤器,它记录了所有servlet的URL和请求参数。 现在我想在Websphere Application服务器中部署它。 1.在哪里复制我的过滤器类文件? 2. web.xml的位置,我必须在其中输入Filter类部署描述符xml标记。 3.日志文件,过滤器类将在其中记录URL和请求参数。
以下是我的Filter类的代码。
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.text.SimpleDateFormat;
import java.util.Date;
public class T24RequestTime implements Filter {
private FilterConfig config = null;
Date dt = new Date();
public void init(FilterConfig config) throws ServletException {
this.config = config;
}
public void destroy() {
config = null;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
long before = System.currentTimeMillis();
chain.doFilter(request, response);
long after = System.currentTimeMillis();
SimpleDateFormat dateFormat = new SimpleDateFormat("[dd/MMM/yyyy:HH:mm:ss]");
String endDate = dateFormat.format(new Date());
String name = "";
if (request instanceof HttpServletRequest) {
name = ((HttpServletRequest)request).getRequestURI();
}
config.getServletContext().log("T24: !Date-Time: !"+endDate+ "! Total Elapsed Time: !" + (after - before) + "!ms!"+"! Company: !"+((HttpServletRequest)request).getParameter("companyId")+"! User: !"+((HttpServletRequest)request).getParameter("user")+"! Version: !"+((HttpServletRequest)request).getParameter("version")+"! Application: !"+((HttpServletRequest)request).getParameter("application")+"! Routine Name: !"+((HttpServletRequest)request).getParameter("routineName")+"! Timing: !"+((HttpServletRequest)request).getParameter("timing")+"! URL: !"+ name );
System.out.println("fsfsfsd");
}
}
答案 0 :(得分:2)
在WebSphere中,您应该真正部署整个EAR文件。部署后,请勿尝试修改部署描述符(web.xml等)。更改部署描述符后,您应该构建并重新部署。相信我,其他一切都不会起作用或至少在操作中产生麻烦。
默认情况下,WebSphere将<profilepath>/logs/<servername>
导入SystemOut.log
或trace.txt
。记录配置取决于您的环境。
答案 1 :(得分:0)