java中filter_java中filter的用法

packagecom.qwserv.itm.pfl.log.svr;importjava.io.IOException;importjavax.servlet.Filter;importjavax.servlet.FilterChain;importjavax.servlet.FilterConfig;importjavax.servlet.ServletException;importjavax.servlet.ServletRequest;importjavax.servlet.ServletResponse;importjava.text.SimpleDateFormat;importjavax.servlet.http.HttpServletRequest;importcom.qwserv.itm.api.pfl.sm.vo.Person;import java.sql.*;importcom.qwserv.itm.api.ServiceAccess;importcom.qwserv.itm.util.toolkit.DebugUtil;public class ObserveFilter implementsFilter {protected static DebugUtil log = DebugUtil.getInstances("pfl-log", ObserveFilter.class);public voiddestroy() {

}public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throwsIOException,

ServletException {//记录用户的访问操作

HttpServletRequest request1 =(HttpServletRequest)request;

StringBuffer url=request1.getRequestURL();//对url进行过滤,如果是js/css/image则不进行处理

if(judgeFile(url.toString())){

String operTime= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").

format(newjava.util.Date());

String hostIp=request.getRemoteAddr();

String sessionId=request1.getRequestedSessionId();

String userId= "";

Person person= (Person)request1.getSession().getAttribute("userObj");if (null != person && null !=person.getUser()){

userId=person.getUser().getId();

}

String queryString=request1.getQueryString();if (null !=queryString) {

url.append('?');

url.append(queryString);

}//保存到数据库中

saveToDb(userId,hostIp,sessionId,url.toString(),operTime,"");

}//Pass control on to the next filter

chain.doFilter(request, response);

}public void init(FilterConfig filterConfig) throwsServletException {

}public booleanjudgeFile(String url){if (url.endsWith(".gif") || url.endsWith(".jpg") || url.endsWith(".png")|| url.endsWith(".bmp") || url.endsWith(".css") || url.endsWith(".js")|| url.endsWith(".jsx")){return false;

}else{return true;

}

}public intsaveToDb(String userId, String hostIp,String sessionId,String url,

String operTime,String desc){//将报表任务数据保存到数据库中

Connection conn = null;

Statement st= null;try{//构造sql表达式,将数据插入数据库

conn =ServiceAccess.getSystemSupportService().getDefaultConnection();

st=conn.createStatement();

String sql= "insert into LOG_OBSERVE_HISTORY(USERID,URL,Detail,SessionID,HostName,StartDate) values('"+userId+ "','" + url + "','" + desc + "','" +sessionId+ "','" + hostIp + "','" + operTime + "')";if (ServiceAccess.getSystemSupportService().getConnectionType(conn)==ServiceAccess.getSystemSupportService().JCA_TYPE_ORACLE){

sql= "insert into LOG_OBSERVE_HISTORY(Id,USERID,URL,Detail,SessionID,HostName,StartDate) values(LOG_OBSERVE_SEQ.nextval,'"+userId+ "','" + url + "','" + desc + "','" +sessionId+ "','" + hostIp + "',TO_DATE('" +operTime+ "','YYYY-MM-DD HH24:MI:SS'))";

}

st.executeUpdate(sql);

}catch(Exception e) {

e.printStackTrace();

log.error("--------------------The url String is:" + url + "-------------------------------");return 1; //表示操作失败

} finally{if (null !=st)

{try{

st.close();

}catch(Exception e)

{

e.printStackTrace();

}

st= null;

}if (conn != null) {try{

conn.close();

}catch(Exception e) {

e.printStackTrace();

}

conn= null;

}

}return 0; //表示操作成功

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值