1 packagecn.sinobest.asj.log;2 importjava.io.IOException;3 importjava.net.MalformedURLException;4 importjava.net.URL;5 importjava.util.Date;6 importjava.util.HashMap;7 importjava.util.Map;8 importjavax.servlet.Filter;9 importjavax.servlet.FilterChain;10 importjavax.servlet.FilterConfig;11 importjavax.servlet.ServletException;12 importjavax.servlet.ServletRequest;13 importjavax.servlet.ServletResponse;14 importjavax.servlet.http.HttpServletRequest;15 importorg.apache.commons.logging.Log;16 importorg.apache.commons.logging.LogFactory;17 importorg.json.JSONObject;18 importcn.sinobest.asj.log.wsimport.ISALog;19 importcn.sinobest.asj.log.wsimport.InvalidFormatExceptioin_Exception;20 importcn.sinobest.asj.log.wsimport.InvalidGradeException_Exception;21 importcn.sinobest.asj.log.wsimport.SALogImplService;22 public class LogFilter implementsFilter {23 static final Log log = LogFactory.getLog(LogFilter.class);24 static final String WSDL_LOCATION = "http://localhost:8080/logserv/log.action?wsdl";25 @Override26 public voiddestroy() {27 }28 @Override29 public voiddoFilter(ServletRequest request, ServletResponse response,30 FilterChain chain) throwsIOException, ServletException {31 try{32 log(request);33 } catch(InvalidFormatExceptioin_Exception e) {34 e.printStackTrace();35 } catch(InvalidGradeException_Exception e) {36 e.printStackTrace();37 } finally{38 chain.doFilter(request, response);39 }40 }41 private void log(ServletRequest request) throwsMalformedURLException,42 InvalidFormatExceptioin_Exception, InvalidGradeException_Exception {43 Map data = new HashMap();44 data.put("appid", "zfba");45 data.put("time", newDate());46 data.put("localAddr", request.getLocalAddr());47 data.put("localName", request.getLocalName());48 data.put("localPort", request.getLocalPort());49 data.put("remoteAddr", request.getRemoteAddr());50 data.put("remoteHost", request.getRemoteHost());51 data.put("remotePort", request.getRemotePort());52 //data.put("serverName", request.getServerName());53 //data.put("serverPort", request.getServerPort());
54 HttpServletRequest hrequest =(HttpServletRequest) request;55 data.put("pathInfo", hrequest.getPathInfo());56 data.put("pathTranslated", hrequest.getPathTranslated());57 data.put("remoteUser", hrequest.getRemoteUser());58 data.put("requestURI", hrequest.getRequestURI());59 data.put("requestURL", hrequest.getRequestURL());60 data.put("servletPath", hrequest.getServletPath());61 JSONObject cont = newJSONObject(data);62 URL url = newURL(WSDL_LOCATION);63 SALogImplService ss = newSALogImplService(url);64 ISALog service =ss.getSALogImplPort();65 service.log("info", cont.toString());66 }67 @Override68 public void init(FilterConfig arg0) throwsServletException {69 }70 }