无法保存session

yjqtd2008 2008-07-29 04:51:54
用Tomcat5.5启动项目操作session时保存值,然后读取却没有值,但是服务器上一切正常这是什么原因啊。。。。。。。。。
...全文
213 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
phon_oy 2008-07-31
  • 打赏
  • 举报
回复
用debug调试一下看看session的状态
nieliqiang84 2008-07-31
  • 打赏
  • 举报
回复
你把两次的Session ID 打印出来看看,看看是否一致
lyyhsq2 2008-07-31
  • 打赏
  • 举报
回复
服务器能用,代码应该没问题,看下你的数据库连接配置有问题没。
lyyhsq2 2008-07-31
  • 打赏
  • 举报
回复
机子有啥问题。
yjqtd2008 2008-07-29
  • 打赏
  • 举报
回复
我在怀疑是不是我机子的问题但是现在开发过程中不好把所有东西重装,但是自己开发起来很不方便。
yjqtd2008 2008-07-29
  • 打赏
  • 举报
回复
然后再到另外一个地方读取
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);
}
yjqtd2008 2008-07-29
  • 打赏
  • 举报
回复
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");
}
}
JudeaWolf 2008-07-29
  • 打赏
  • 举报
回复
能不能提供更多的代码?
yjqtd2008 2008-07-29
  • 打赏
  • 举报
回复
而且有时候我的表单内值太多的话,表单读取都失败。
yjqtd2008 2008-07-29
  • 打赏
  • 举报
回复
request.getSession().setAttribute("reportDate", data); 保存Session


然后在 request.getSession().getAttribute("reportDate"); 读取





在服务器上是正常的,但是在我自己的机器上get出来是NULL
zidasine 2008-07-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 diy8187 的回复:]
如果你没有修改session的时间,应该不会保存不了,
我觉得应该是你没有保存正确或没有取出正确.
[/Quote]
贴下相应的代码
JudeaWolf 2008-07-29
  • 打赏
  • 举报
回复
什么情况,代码看看
yunmoon 2008-07-29
  • 打赏
  • 举报
回复
session.setAttribute("UserName","超级用户");
楼主确定set没错?
天外流星 2008-07-29
  • 打赏
  • 举报
回复
可以把你代码看下,
天外流星 2008-07-29
  • 打赏
  • 举报
回复
如果你没有修改session的时间,应该不会保存不了,
我觉得应该是你没有保存正确或没有取出正确.

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧