package com.enation.eop;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Locale; import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.enation.eop.processor.back.BackendProcessor;
import com.enation.eop.processor.core.freemarker.FreeMarkerPaser;
import com.enation.eop.processor.facade.FacadeProcessor;
import com.enation.eop.processor.facade.InstallProcessor;
import com.enation.eop.processor.facade.ResourceProcessor;
import com.enation.eop.resource.IAppManager;
import com.enation.eop.resource.model.EopApp;
import com.enation.eop.sdk.context.EopContext;
import com.enation.eop.sdk.context.EopContextIniter;
import com.enation.eop.sdk.context.EopSetting;
import com.enation.framework.context.spring.SpringContextHolder;
import com.enation.framework.context.webcontext.ThreadContextHolder; public class DispatcherDemoFilter implements Filter { public void init(FilterConfig config) { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // HttpServletRequest req= ServletActionContext.getRequest();
// String flag= req.getHeader("X-Requested-With");
// HttpServletResponse response = ServletActionContext.getResponse();
String ip = ((HttpServletRequest) request).getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){
ip = ((HttpServletRequest) request).getHeader("Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){
ip = ((HttpServletRequest) request).getHeader("WL-Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){
ip = request.getRemoteAddr();
}
String authtoken = request.getParameter("auth-token");
System.out.println(authtoken);
StringBuffer sb = new StringBuffer() ;
InputStream is = request.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String s = "" ;
while((s=br.readLine())!=null){
sb.append(s) ;
}
System.out.println(sb);
String str =sb.toString();
System.out.println(ip+"时间"+new Date().getTime());
//response.setCharacterEncoding("utf-8");
response.setContentType("application/xml");
String write = "<cart><items><item feed-id=\"449573\" offer-id=\"15\" price=\"825\" count=\"1\" delivery=\"true\"/>" +
"</items><delivery-options><delivery service-name=\"Курьер\" type=\"DELIVERY\" price=\"1490.00\">" +
"<dates from-date=\"24-10-2016\" to-date=\"26-10-2016\"/></delivery>" +
"</delivery-options><payment-methods>" +
"<payment-method>CASH_ON_DELIVERY</payment-method></payment-methods></cart>";
System.out.println(write);
response.getWriter().write(write);
} public void destroy() { } private static boolean isExinclude(String uri) {
String[] exts = new String[] { "jpg", "gif", "js", "png", "css", "doc", "xls", "swf","ico" };
for (String ext : exts) {
if (uri.toUpperCase().endsWith(ext.toUpperCase())) {
return true;
}
}
return false;
} }

web.xml 配置增加

<filter>
<filter-name>dispatcherDemoFilter</filter-name>
<filter-class>com.enation.eop.DispatcherDemoFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>dispatcherDemoFilter</filter-name>
<url-pattern>/demo/*</url-pattern>
</filter-mapping>
<filter>

这个配置的意思是过滤/demo/后面的所有请求

最新文章

  1. java基础练习 字符串,控制流,日历,日期等
  2. vim python配置 安装pep8自动检查插件,语法高亮
  3. TAP/TUN(二)
  4. maven 问题解决 tools以及jconsole两个jar包 无效
  5. 解决python3 UnicodeEncodeError: &#39;gbk&#39; codec can&#39;t encode character &#39;\xXX&#39; in position XX
  6. reactjs入门到实战(四)---- state详解
  7. MySql实现远程连接
  8. js循环array,json,map
  9. UVA 10198 Counting
  10. python成长之路【第十八篇】:python模块介绍、模块导入和重载
  11. Unity StrangeIoC HelloWorld
  12. Linux内核最新的连续内存分配器(CMA)——避免预留大块内存【转】
  13. mpvue——引入echarts打包vendor过大
  14. JDK1.8 HashMap源码分析
  15. 图形设计必备软件:CorelDRAW
  16. js的页面传值cookie.session
  17. PHP生成二维码并上传到七牛云
  18. 启动项详解和更改deepin启动内核的方法
  19. git创建后的 各种命令 总结
  20. 桌面图形化安装的CentOS6.7中默认安装的yum不能正常使用

热门文章

  1. linux下载利器之curl和wget的区别
  2. dts--framework(一)
  3. 正则表达式re.S的用法
  4. 项目配置中 提示access denied的问题 解决方案
  5. form submit 的callback方法
  6. Python入门必学:数据类型和变量的用法
  7. 中国剩余定理算法详解 + POJ 1006 Biorhythms 生理周期
  8. Lighting System Design UVA - 11400 动态规划
  9. 洛谷P1605 迷宫
  10. 使用自己的类来作为hashtable的主键