4e44932e839e060cda70b14afc29f9d88db61c08.svn-base 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package xin.glue.ui.common.component;
  2. import java.io.IOException;
  3. import java.text.DateFormat;
  4. import java.text.SimpleDateFormat;
  5. import java.util.Collection;
  6. import java.util.Date;
  7. import java.util.Iterator;
  8. import java.util.Map;
  9. import java.util.Map.Entry;
  10. import java.util.UUID;
  11. import javax.servlet.ServletException;
  12. import javax.servlet.http.HttpServletRequest;
  13. import javax.servlet.http.HttpServletResponse;
  14. import org.apache.struts.action.ActionForm;
  15. import org.apache.struts.action.ActionForward;
  16. import org.apache.struts.action.ActionMapping;
  17. import com.posdata.glue.bean.PosBeanFactory;
  18. import com.posdata.glue.context.PosContext;
  19. import com.posdata.glue.dao.PosGenericDao;
  20. import com.posdata.glue.dao.vo.PosParameter;
  21. import com.posdata.glue.dao.vo.PosRowSet;
  22. public class PosStrutsAction extends com.posdata.glue.web.control.PosStrutsAction {
  23. public ActionForward execute(ActionMapping actionmapping, ActionForm actionform,
  24. HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
  25. request.setAttribute("HttpServletRequest", request);
  26. request.setAttribute("HttpServletResponse", response);
  27. PosBeanFactory b = PosContext.getBeanFactory();
  28. PosGenericDao dao = (PosGenericDao) b.getBeanObject("mesdao");
  29. DateFormat df = new SimpleDateFormat("yyyyMMddHHmmSS");
  30. UUID uuid = UUID.randomUUID();
  31. Date start = new Date();
  32. String ipadr=request.getRemoteAddr();
  33. String url = request.getRequestURL().toString();
  34. String pageId = request.getParameter("pageId");
  35. Map map = request.getParameterMap();
  36. Iterator it = map.entrySet().iterator();
  37. StringBuffer params = new StringBuffer();
  38. while (it.hasNext()) {
  39. Entry entry = (Entry)it.next();
  40. params.append("key: " + entry.getKey() + ", value: " + ((String[])entry.getValue())[0]).append(";\n");
  41. }
  42. String str =params.toString();
  43. if(str.length()>=2000){
  44. str = str.substring(0, 2000);
  45. }
  46. PosParameter posparam = new PosParameter();
  47. posparam.setValueParamter(0, uuid.toString());
  48. posparam.setValueParamter(1, str);
  49. posparam.setValueParamter(2, 0);
  50. posparam.setValueParamter(3, Thread.currentThread().getId());
  51. posparam.setValueParamter(4, Thread.currentThread().getName());
  52. posparam.setValueParamter(5, df.format(start));
  53. dao.insert("UIB020020_93.INSERT", posparam);
  54. ActionForward af = super.execute(actionmapping, actionform, request, response);
  55. int resultSize = 0;
  56. Date end = new Date();
  57. PosContext ctx = (PosContext)request.getAttribute("PosContext");
  58. Iterator it2 = ctx.values().iterator();
  59. int i = 0;
  60. while (it2.hasNext()) {
  61. Object object = it2.next();
  62. if (object != null) {
  63. System.out.println("object class: " + object.getClass().getName());
  64. if (object instanceof PosRowSet) {
  65. resultSize += ((PosRowSet)object).count();
  66. } else if (object instanceof Collection) {
  67. resultSize += ((Collection)object).size();
  68. } else if (object instanceof Map) {
  69. resultSize += ((Map)object).size();
  70. } else if (object.getClass().isArray()) {
  71. resultSize += ((Object[])object).length;
  72. }
  73. }
  74. i++;
  75. }
  76. System.out.println("i: " + i);
  77. System.out.println("resultSize: " + resultSize);
  78. posparam = new PosParameter();
  79. posparam.setValueParamter(0, 1);
  80. posparam.setValueParamter(1, df.format(end));
  81. posparam.setValueParamter(2, (end.getTime() - start.getTime()));
  82. posparam.setValueParamter(3, resultSize);
  83. posparam.setValueParamter(4, uuid.toString());
  84. dao.update("UIB020020_93.UPDATE", posparam);
  85. return af;
  86. //return super.execute(actionmapping, actionform, request, response);
  87. }
  88. }