用Tomcat5.5启动项目操作session时保存值,然后读取却没有值,但是服务器上一切正常这是什么原因啊

解决方案 »

  1.   

    如果你没有修改session的时间,应该不会保存不了,
    我觉得应该是你没有保存正确或没有取出正确.
      

  2.   

    session.setAttribute("UserName","超级用户");
    楼主确定set没错?
      

  3.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【yjqtd2008】截止到2008-07-29 16:57:40的历史汇总数据(不包括此帖):
    发帖的总数量:1                        发帖的总分数:20                       每贴平均分数:20                       
    回帖的总数量:1                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:1                        结贴的总分数:20                       
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    敬礼!

    http://www.java2000.net/mycsdn/robotStop.jsp
      

  4.   

    request.getSession().setAttribute("reportDate", data);    保存Session
    然后在 request.getSession().getAttribute("reportDate");  读取在服务器上是正常的,但是在我自己的机器上get出来是NULL 
      

  5.   

    public ActionForward showAdd(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
    LoginSessionServiceImp logSess = new LoginSessionServiceImp(request); Map map = systemConfig.getMapBySessionFactoryId(logSess
    .getCompanyCode(), request);
    List providerLevel = (List) map.get("reportProviderLevel");
    if ((providerLevel != null) && (!providerLevel.isEmpty())) {
    dailyreportService
    .setProviderLevel(providerLevel.get(0).toString());
    } map = systemConfig.getMapBySessionFactoryId(logSess.getCompanyCode(),
    request);
    List specialShortID = (List) map.get("specialProvider");
    if ((specialShortID != null) && (!specialShortID.isEmpty())) {
    dailyreportService.setSpecialShortID(specialShortID.get(0)
    .toString());
    } String time = request.getParameter("time");
    if ("".equals(time)) {
    // SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd");
    time = DateUtils.getDateString(new Date(), "yyyy-MM-dd");
    }
    request.getSession().setAttribute("selectTime", time); List dailyList = dailyreportService.getList(logSess.getCompanyCode(),
    java.sql.Date.valueOf(DateUtils.getLastDay(time)));
    List doubleList = dailyreportService.getList(logSess.getCompanyCode(),
    java.sql.Date.valueOf(time));
    boolean testhasDate = dailyreportService.isBeforeTimeHasDate(time,
    logSess.getCompanyCode());
    if (dailyList.isEmpty() && testhasDate && doubleList.isEmpty()) {
    ActionMessages messages = new ActionMessages();
    messages.add(ActionMessages.GLOBAL_MESSAGE,
    new ActionMessage("messages.delete", DateUtils
    .getLastDay(time)
    + " 还没有生成日报!"));
    this.saveMessages(request, messages);
    return mapping.findForward("nodata");
    }
    DailyReportData data = dailyreportService.getReportData(logSess
    .getCompanyCode(), time);
    map = systemConfig.getMapBySessionFactoryId(logSess.getCompanyCode(),
    request);
    List typeList = (List) map.get("transmitmodel");
    if ((typeList == null) || (typeList.isEmpty())) {
    ActionMessages messages = new ActionMessages();
    messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
    "messages.delete", "你还没有配置系统参数!"));
    this.saveMessages(request, messages);
    return mapping.findForward("nodata");
    }
    String type = typeList.get(0).toString(); DailyMasterReport listReport = data.getDailyMasterItem();
    DailyMasterReport report = new DailyMasterReport();
    if (listReport == null)
    listReport = new DailyMasterReport();
    try {
    BeanUtils.copyProperties(report, listReport);
    } catch (Exception e) {
    report = listReport;
    e.printStackTrace();
    }
    if (time.endsWith("-01")) {
    report.setMccaccount(0);
    report.setMcoaccount(0);
    report.setMeoaccount(0);
    report.setMeccoalaccount(0);
    report.setMonthcoalremain(report.getCoalremainaccount());
    report.setMonthoilremain(report.getOilremainaccount());
    }
    if (time.endsWith("-01-01")) {
    report.setYccaccount(0);
    report.setYcoaccount(0);
    report.setYeccaolaccount(0);
    report.setYeoaccount(0);
    }
    report.setMemo(" ");
    int state = 0;
    if ("truck".equals(type)) {
    state = 2; // 汽车
    } else if ("truckandtrain".equals(type)) {
    state = 3; // 汽车与火车
    } else {
    state = 1; // 火车
    }
    // report.setEnteredboxesnumber(dailyreportService.getBoxSize(logSess
    // .getCompanyCode(), time, state));
    report.setEnteredboxesnumber(getBoxes(data));
    report.setMEnteredboxesnumber(dailyreportService.getMEenteredBoxCount(
    logSess.getCompanyCode(), time, state));
    double oc = innfurnacereportService.getCoalnetWeight(time, logSess
    .getCompanyCode());
    report.setDccaccount(oc); // 月计划数重写修正 added by pq 2008-03-05
    double monplan = 0.00;
    double dweight = 0.0;
    double mweight = 0.0;
    double yweight = 0.0;
    List<DataItem> ltra = data.getDailyDetailItem().getTrainData()
    .getData();
    for (int i = 0; i < ltra.size(); i++) {
    DataItem di = (DataItem) ltra.get(i);
    if (di.getType() == 3)
    {
    monplan += di.getMontchSchedule();
    dweight += di.getDailyAmount();
    mweight += di.getMonthAmount();
    yweight += di.getYearAmount();
    }
    }
    List<DataItem> ltru = data.getDailyDetailItem().getTruckData()
    .getData();
    for (int i = 0; i < ltru.size(); i++) {
    DataItem di = (DataItem) ltru.get(i);
    if (di.getType() == 3)
    {
    monplan += di.getMontchSchedule();
    dweight += di.getDailyAmount();
    mweight += di.getMonthAmount();
    yweight += di.getYearAmount();
    }
    }
    report.setMonthcoalplan(monplan);
    report.setDecaccount(NumberFormat
    .getDoubleNumberFormat(dweight));
    report.setMeccoalaccount(NumberFormat
    .getDoubleNumberFormat(mweight));
    report.setYeccaolaccount(NumberFormat
    .getDoubleNumberFormat(yweight));
    // 日报主表数据来源 取快报数据。
    FuelexpressService fuelService = (FuelexpressService) SpringContextUtil
    .getBean("fuelexpressService");
    FuelexpressqueryForm queryForm = new FuelexpressqueryForm();
    queryForm.setBelongfactoryid(logSess.getCompanyCode());
    queryForm.setReportdate(time);
    Fuelexpress fuelexpress = fuelService
    .getDailyreportByFuelexpress(queryForm);
    if (fuelexpress != null) {
    // 本日进煤
    //report.setDecaccount(fuelexpress.getBalanceweight());
    // 本日耗煤
    report.setDccaccount(fuelexpress.getDispend());
    // 煤库存
    //report.setCoalremainaccount(fuelexpress.getStockpile());
    }else {
    // //本日进煤
    // report.setDecaccount(0);
    // //本日耗煤
    // report.setDccaccount(0);
    } data.setDailyMasterItem(report);
    request.setAttribute("data", data);
    request.setAttribute("action",
    "dailyreportActionWithForm.do?action=saveReport");
    request.getSession().setAttribute("reportDate", data);
    //是否为月末
    request.setAttribute("islastmonth", DateUtils
    .isLastMonthOfDay(DateUtils.stringToDate(time, "yyyy-MM-dd")));

    if ("truck".equals(type)) {
    data.getDailyDetailItem().setType(2);
    return mapping.findForward("showSingleAdd");
    } else if ("train".equals(type)) {
    data.getDailyDetailItem().setType(1);
    return mapping.findForward("showSingleAdd");
    } else if ("truckandtrain".equals(type)) {
    data.getDailyDetailItem().setType(3);
    return mapping.findForward("showdbAdd");
    } else {
    ActionMessages messages = new ActionMessages();
    messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
    "messages.delete", "你还没有配置系统参数!"));
    this.saveMessages(request, messages);
    return mapping.findForward("nodata");
    }
    }
      

  6.   

    然后再到另外一个地方读取
    public ActionForward saveReport(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response)
    throws BasicException {
    LoginSessionServiceImp logSess = new LoginSessionServiceImp(request);
    // 获取时间
    String time = request.getParameter("selectTime");
    String memo = request.getParameter("memo");// 备注
    if (memo == null) {
    memo = " ";
    }
    // 获得主报表数椐
    String monthcoalremain = request.getParameter("monthcoalremain");// 月初结存
    String tdccaccount = request.getParameter("tdccaccount");// 本日耗煤
    String tdeoaccount = request.getParameter("tdeoaccount");// 本日进油
    String monthoilremain = request.getParameter("monthoilremain");// 油月初结存
    String tlaunchstyle = request.getParameter("tlaunchstyle");// 开机方式
    String tdailywaste = request.getParameter("tdailywaste");// 本日煤损耗
    String toilwaste = request.getParameter("toilwaste");// 本日油损耗
    String tdcoaccount = request.getParameter("tdcoaccount");// 本日耗油
    //String tdecaccount = request.getParameter("tdecaccount"); // 本日进煤
    //String tcoalremainaccount = request.getParameter("tcoalremainaccount"); //煤库存  // 获得火车本日调整数椐
    String[] trainData = request.getParameterValues("tdailyAdjust");
    String[] trainno = request.getParameterValues("trainno"); // 获取汽车本日调整数据
    String[] truckData = request.getParameterValues("adailyAdjust");
    String[] autono = request.getParameterValues("autono"); String[] mpmonthcoalremain = request
    .getParameterValues("mpmonthcoalremain");// 煤月初结存
    String[] mpdecaccount = request.getParameterValues("mpdecaccount");// 本日进煤
    String[] mpdccaccount = request.getParameterValues("mpdccaccount");// 本日耗煤
    String[] mpdeoaccount = request.getParameterValues("mpdeoaccount");// 本日进油
    String[] mpmonthoilremain = request
    .getParameterValues("mpmonthoilremain");// 油月初结存
    String[] mpdailywaste = request.getParameterValues("mpdailywaste");// 本日损耗
    String[] mpdcoaccount = request.getParameterValues("mpdcoaccount");// 本日耗油
    String[] storageName = request.getParameterValues("storageName");// 煤场名称 // 获取生成报表的数椐
    DailyReportData data = (DailyReportData) request.getSession()
    .getAttribute("reportDate");


    List<DailyDetailReport> detailReportList = new ArrayList<DailyDetailReport>();
    List<DataItem> trainList = null;
    List<DataItem> truckList = null;
    // /////try catch
    try {
    trainList = data.getDailyDetailItem().getTrainData().getData();
    } catch (java.lang.NullPointerException e) {
    trainList = new ArrayList<DataItem>();
    }
    try {
    truckList = data.getDailyDetailItem().getTruckData().getData();
    } catch (java.lang.NullPointerException e) {
    truckList = new ArrayList<DataItem>();
    }
    double dec = 0D;
    double mec = 0D;
    double yec = 0D;
    if (trainData != null) {
    for (int i = trainData.length - 1; i >= 0; i--) {
    double value = 0;
    if (!"".equals(trainData[i])) {
    value = Double.parseDouble(trainData[i]);
    }
    DataItem dataItem = trainList.get(Integer.parseInt(trainno[i]));
    dataItem.setDailyAdjust(value); dataItem.setDailyAmount(dataItem.getDailyAmount() + value); if ("01".equals(time.substring(time.length() - 2))) {
    dataItem.setMonthAmount(dataItem.getDailyAmount());
    } else {
    dataItem.setMonthAmount(dataItem.getMonthAmount() + value);
    } if ("01-01".equals(time.substring(time.length() - 5))) {
    dataItem.setYearAmount(dataItem.getDailyAmount());
    } else {
    dataItem.setYearAmount(dataItem.getYearAmount() + value);
    }
    dataItem.setMontchSchedule(dataItem.getMontchSchedule());
    dec += dataItem.getDailyAmount();
    mec += dataItem.getMonthAmount();
    yec += dataItem.getYearAmount();
    changeDate(trainList, Integer.parseInt(trainno[i]), value, time);
    }
    }
    if (truckData != null) {
    for (int i = truckData.length - 1; i >= 0; i--) {
    double value = 0;
    if (!"".equals(truckData[i])) {
    value = Double.parseDouble(truckData[i]);
    }
    DataItem dataItem = truckList.get(Integer.parseInt(autono[i]));
    dataItem.setDailyAdjust(value);
    dataItem.setDailyAmount(dataItem.getDailyAmount() + value); if ("01".equals(time.substring(time.length() - 2))) {
    dataItem.setMonthAmount(dataItem.getDailyAmount());
    } else {
    dataItem.setMonthAmount(dataItem.getMonthAmount() + value);
    } if ("01-01".equals(time.substring(time.length() - 5))) {
    dataItem.setYearAmount(dataItem.getDailyAmount());
    } else {
    dataItem.setYearAmount(dataItem.getYearAmount() + value);
    } dataItem.setMontchSchedule(dataItem.getMontchSchedule());
    dec += dataItem.getDailyAmount();
    mec += dataItem.getMonthAmount();
    yec += dataItem.getYearAmount();
    changeDate(truckList, Integer.parseInt(autono[i]), value, time); }
    }
    // 分别将火车数椐和汽车数据的form对象封装为持久化对象
    Iterator<DataItem> iterator = trainList.iterator();
    int order = 0;
    int boxnum = 0;
    double dadjustaccount = 0;
    while (iterator.hasNext()) {
    DataItem dataItem = iterator.next();
    DailyDetailReport datailReport = new DailyDetailReport();
    datailReport.setBelongfactoryid(logSess.getCompanyCode());
    datailReport.setBriefname(dataItem.getCaption());
    datailReport.setDadjustaccount(NumberFormat
    .getDoubleNumberFormat(dataItem.getDailyAdjust()));
    datailReport.setDecaccount(NumberFormat
    .getDoubleNumberFormat(dataItem.getDailyAmount()));
    datailReport.setMeccoalaccount(NumberFormat
    .getDoubleNumberFormat(dataItem.getMonthAmount()));
    datailReport.setMonthcoalplan(NumberFormat
    .getDoubleNumberFormat(dataItem.getMontchSchedule()));
    datailReport.setProvideridinbill(dataItem.getKey());
    datailReport.setRecordtype(1);
    datailReport.setNo(++order);
    datailReport.setDataitemtype(dataItem.getType());
    datailReport.setYeccaolaccount(dataItem.getYearAmount());
    datailReport.setBoxnum(dataItem.getBoxnum());
    if(1 == dataItem.getType()){
    boxnum += dataItem.getBoxnum();
    dadjustaccount += dataItem.getDailyAdjust();
    }
    detailReportList.add(datailReport);
    }
      

  7.   

    你把两次的Session ID 打印出来看看,看看是否一致
      

  8.   

    用debug调试一下看看session的状态