java流的传递方式_JAVA数据流再传递

packagecom.quyiyuan.openplatform.filter;importjava.io.IOException;importjava.util.UUID;importjavax.servlet.Filter;importjavax.servlet.FilterChain;importjavax.servlet.FilterConfig;importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjavax.servlet.ServletRequest;importjavax.servlet.ServletResponse;importjavax.servlet.http.HttpServletRequest;importorg.springframework.web.context.WebApplicationContext;importcom.quyiyuan.openplatform.service.MonitorService;/***

 
 

* 任务:

* 描述:(存储用户请求信息,过滤器类)

* 作者:

* 时间:2015年11月5日下午12:03:33

* 类名: SaveRequestInfoFilter

*

*/

public class SaveRequestInfoFilter implementsFilter{privateServletContext servletContext;

@Overridepublic voiddestroy() {

}

@Overridepublic voiddoFilter(ServletRequest sreq, ServletResponse srsp,

FilterChain fc)throwsIOException, ServletException {

HttpServletRequest request=(HttpServletRequest) sreq;

String method=request.getMethod();

StringBuffer URL=request.getRequestURL();if(URL.toString().contains("ROPcloudtest.html") || URL.toString().contains("ROPtest.html")|| URL.toString().contains("ROP/css") || URL.toString().contains("ROP/js")|| URL.toString().contains("YYSK.html")){

fc.doFilter(sreq, srsp);

}else{

String URI= "";

String urlParame= "";

String jsonParame= "";

String token= request.getParameter("token");

String userSource= request.getParameter("userSource");

String publicServiceType= request.getParameter("publicServiceType");//request 作用域中添加UUID,标记当前请求

String uuid = UUID.randomUUID().toString().replaceAll("-", "");

request.setAttribute("UUID", uuid);if (method.equals("POST")) {

URI=request.getRequestURI();

urlParame=request.getQueryString();//获取自定义装饰类对象

BodyReaderHttpServletRequestWrapper bodyWrapper = newBodyReaderHttpServletRequestWrapper(request);

jsonParame=HttpHelper.getBodyString(bodyWrapper);

saveReqInfo(URI, urlParame, jsonParame, token, userSource, publicServiceType, uuid);//使用自定义装饰类对象执行下一个过滤器

fc.doFilter(bodyWrapper, srsp);

}else{

URI=request.getRequestURI();

urlParame=request.getQueryString();

saveReqInfo(URI, urlParame, jsonParame, token, userSource, publicServiceType, uuid);

fc.doFilter(request, srsp);

}

}

}

@Overridepublic void init(FilterConfig config) throwsServletException {

servletContext=config.getServletContext();

}/***

 
 

* 任务:

* 描述: 调用业务类保存请求信息

* 作者:

* 时间:2015年11月5日下午12:04:09

*@paramURI

*@paramurlParame

*@paramjsonParame

* returnType:void

*

*@parampublicServiceType

*@paramuserSource

*@paramtoken

*@paramuuid*/

private void saveReqInfo(final String URI, final String urlParame, final String jsonParame, finalString token,final String userSource, final String publicServiceType, finalString uuid) {

Thread saveReqInfo= newThread() {public voidrun() {//获取容器对象

WebApplicationContext context =(WebApplicationContext) servletContext.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);//获取MonitorService对象

MonitorService monitorService = (MonitorService) context.getBean("monitorService");

monitorService.saveRequestInfo(URI, urlParame, jsonParame, token, userSource, publicServiceType, uuid);

}

};

saveReqInfo.start();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值