我的index.jsp页面代码:
<%@ page contentType="text/html; charset=GBK" language="java" import="java.util.*,java.text.*" errorPage="" %>
<%@include file="/public/header.jsp"%><%
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String now = formatter.format(new Date());
%><script language="javascript">
function message()
<!--
{
var form=document.forms[0];
form.Submit.disabled=true;
return true;
}
-->
</script>
<body> <table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" style="padding-left:20px">
<img src="<%=baseUrl%>/images/logo/logo.jpg"/><b>工程报表系统</b><br /><br />
一、 初始2009年之前历史工程资料(以编制日期为2008-12-20登录)<p />
1、依据2008年第四季度的工程报表资料 <br /><br /> 2、在本季里,“完成工作量”填写“自开工至本季止累计完成”,“收取监理费”填写“自开工至本季止累计收取监理费”,“开工至本季止累计拖欠”计算填写 <br /><br />
3、在下季里,“计划完成工作量”填写计划中的“下季计划完成工作量”,“计划收取监理费”填写计划中的“下季计划收取监理费”<br /><br />
二、 输入2009年第一季度的工程报表资料(以编制时间2009-3-20登录)<p />
1、依据2009年第一季度的工程报表资料<br /><br />
2、在本季里,“完成工作量”填写“本季完成工作量”,“收取监理费”填写“本季收取监理费”,“开工至本季止累计拖欠”计算填写 <br /><br />
3、在下季里,“计划完成工作量”填写计划中的“下季计划完成工作量”,“计划收取监理费”填写计划中的“下季计划收取监理费”<br /><br />
<font color="red"> 三、注意事项:若编制日期超过了季度结束时间,必须将编制日期设回季度区域时间内</font><p />
</td>
</tr>
</table>
<div class="divBorderLine">
<table>
<tr><td>
<form id="form1" name="goProjectStatementsForm" method="post" action="<%=baseUrl%>/project/projectStatements/goProjectStatements.do?method=checkUser" onSubmit="javascript:message();">
部门:
<select name="department" class="input">
<option value="1B">第一监理部</option>
<option value="2B">第二监理部</option>
<option value="3B">第三监理部</option>
<option value="4B">第四监理部</option>
<option value="5B">第五监理部</option>
<option value="6B">第六监理部</option>
<option value="NS">南沙办</option>
<option value="ZX">工程咨询部</option>
<option value="ZHS">中山分公司</option>
<option value="7B">一分公司</option>
<option value="ZHX">智信分公司</option>
<option value="ZCH">增城分公司</option>
<option value="ZHG">公司直管项目</option>
<option value="BB">公司本部</option>
</select>
部门密钥:
<input name="deparPW" type="password" size="12" maxlength="10" class="input"/>
年份:
<select name="year0" class="input">
<option value="2008">2008</option>
<option value="2009">2009</option>
<option value="2010">2010</option>
<option value="2011">2011</option>
<option value="2012">2012</option>
<option value="2013">2013</option>
<option value="2014">2014</option>
<option value="2015">2015</option>
<option value="2016">2016</option>
</select>
季度:
<select name="quarter" class="input">
<option value="1">第一季度</option>
<option value="2">第二季度</option>
<option value="3">第三季度</option>
<option value="4">第四季度</option>
</select>
编制日期:
<input name="createTime" type="text" size="12" class="input" value="<%=now%>"/>
<a href="javascript:" onClick="return showCalendar('createTime', 'y-mm-dd');"><img src="<%=baseUrl%>/images/calendar.gif" border="0" alt=""/></a><input type="submit" name="Submit" value="进入"/>
</form>
</td></tr>
</table>
</div><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><font color="red"><html:messages id="error"><bean:write name="error"/></html:messages></font></td>
</tr>
</table>
<%@include file="/public/footer.jsp"%>
Action中对应的方法是:
public ActionForward checkUser(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
GoProjectStatementsForm goPSF = (GoProjectStatementsForm) form; String department = goPSF.getDepartment();
String deparPW = goPSF.getDeparPW();
String year = goPSF.getYear0();
String quarter = goPSF.getQuarter();
String createTime = goPSF.getCreateTime(); HttpSession session = request.getSession();
session.setAttribute("department", department);// 全局变量,保存部门
session.setAttribute("year0", year);// 全局变量,保存年份
session.setAttribute("quarter", quarter);// 全局变量,保存季度
session.setAttribute("createTime", createTime); ApplicationContext context = new FileSystemXmlApplicationContext(
"classpath:applicationContext.xml");
projectService = (IProjectService) context.getBean("projectService");
boolean result = projectService.checkGo(department, deparPW);
if (result) {
goProStatSummary(request,year,quarter,department);
return mapping.findForward("summary");
} else {
msgs.clear();
msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("user.login.failed"));
this.saveErrors(request, msgs);
return mapping.findForward("index");
}
}其中调用的主要方法goProStatSummary是:
private void goProStatSummary(HttpServletRequest request,String year,String quarter,String loginDepart) {
String department = ""; String thisQuarterEndTime = year + Util.getTQEndTime(quarter);// 获得本季结束时间
String yearStartTime = year + "-1-1";// 获得年初时间
String thisQuarterStartTime = year + Util.getTQStartTime(quarter);// 获得本季开始时间 ProStatSummary heJiProStatSummary = new ProStatSummary();
List summary=new ArrayList();
List projectsListFYearTTQ = null;// 1.年初至本季止完工工工程
List projectsListThisQuery = null;// 2.本季完工工程
List projectsListBuilding = null;// 3.在建工程列表
ProStatSummary proStatSummary = null;
int len = departments.length;
for (int i = 0; i < len; i++) {
department = departments[i];
projectsListFYearTTQ = projectService.findProjects("1",
yearStartTime, thisQuarterEndTime, department);
if (quarter.equals("1")) {
projectsListThisQuery = projectsListFYearTTQ;
} else {
projectsListThisQuery = projectService.findProjects("2",
thisQuarterStartTime, thisQuarterEndTime, department);
}
projectsListBuilding = projectService.findProjects("3", "",
thisQuarterEndTime, department);
proStatSummary = projectService.setStatSummary(
projectsListFYearTTQ, projectsListThisQuery,
projectsListBuilding, year, quarter);
heJiProStatSummary = projectService.getHeJiProStatSummary(
heJiProStatSummary, proStatSummary);
proStatSummary.setDepartment_EN(department);
proStatSummary.setDepartment_CH(changeDepartment(department));
if(loginDepart.equals(department)||loginDepart.equals("BB")){
proStatSummary.setIsDepartment("1");
}
summary.add(proStatSummary);
}
projectsListFYearTTQ = null;// 1.年初至本季止完工工工程
projectsListThisQuery = null;// 2.本季完工工程
projectsListBuilding = null;// 3.在建工程列表
proStatSummary = null;
request.setAttribute("summaryList",summary);
request.setAttribute("heJiProStatSummary", heJiProStatSummary);
request.setAttribute("year", year);
request.setAttribute("quarter", quarter);
summary=null;
heJiProStatSummary=null; }问题是:调用完方法goProStatSummary进行计算后,跳转到return mapping.findForward("summary");同样的运行条件下程序有时跳转有时不跳转,到底是什么原因呢?很困惑了几天,还请大虾帮帮忙。
<%@ page contentType="text/html; charset=GBK" language="java" import="java.util.*,java.text.*" errorPage="" %>
<%@include file="/public/header.jsp"%><%
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String now = formatter.format(new Date());
%><script language="javascript">
function message()
<!--
{
var form=document.forms[0];
form.Submit.disabled=true;
return true;
}
-->
</script>
<body> <table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" style="padding-left:20px">
<img src="<%=baseUrl%>/images/logo/logo.jpg"/><b>工程报表系统</b><br /><br />
一、 初始2009年之前历史工程资料(以编制日期为2008-12-20登录)<p />
1、依据2008年第四季度的工程报表资料 <br /><br /> 2、在本季里,“完成工作量”填写“自开工至本季止累计完成”,“收取监理费”填写“自开工至本季止累计收取监理费”,“开工至本季止累计拖欠”计算填写 <br /><br />
3、在下季里,“计划完成工作量”填写计划中的“下季计划完成工作量”,“计划收取监理费”填写计划中的“下季计划收取监理费”<br /><br />
二、 输入2009年第一季度的工程报表资料(以编制时间2009-3-20登录)<p />
1、依据2009年第一季度的工程报表资料<br /><br />
2、在本季里,“完成工作量”填写“本季完成工作量”,“收取监理费”填写“本季收取监理费”,“开工至本季止累计拖欠”计算填写 <br /><br />
3、在下季里,“计划完成工作量”填写计划中的“下季计划完成工作量”,“计划收取监理费”填写计划中的“下季计划收取监理费”<br /><br />
<font color="red"> 三、注意事项:若编制日期超过了季度结束时间,必须将编制日期设回季度区域时间内</font><p />
</td>
</tr>
</table>
<div class="divBorderLine">
<table>
<tr><td>
<form id="form1" name="goProjectStatementsForm" method="post" action="<%=baseUrl%>/project/projectStatements/goProjectStatements.do?method=checkUser" onSubmit="javascript:message();">
部门:
<select name="department" class="input">
<option value="1B">第一监理部</option>
<option value="2B">第二监理部</option>
<option value="3B">第三监理部</option>
<option value="4B">第四监理部</option>
<option value="5B">第五监理部</option>
<option value="6B">第六监理部</option>
<option value="NS">南沙办</option>
<option value="ZX">工程咨询部</option>
<option value="ZHS">中山分公司</option>
<option value="7B">一分公司</option>
<option value="ZHX">智信分公司</option>
<option value="ZCH">增城分公司</option>
<option value="ZHG">公司直管项目</option>
<option value="BB">公司本部</option>
</select>
部门密钥:
<input name="deparPW" type="password" size="12" maxlength="10" class="input"/>
年份:
<select name="year0" class="input">
<option value="2008">2008</option>
<option value="2009">2009</option>
<option value="2010">2010</option>
<option value="2011">2011</option>
<option value="2012">2012</option>
<option value="2013">2013</option>
<option value="2014">2014</option>
<option value="2015">2015</option>
<option value="2016">2016</option>
</select>
季度:
<select name="quarter" class="input">
<option value="1">第一季度</option>
<option value="2">第二季度</option>
<option value="3">第三季度</option>
<option value="4">第四季度</option>
</select>
编制日期:
<input name="createTime" type="text" size="12" class="input" value="<%=now%>"/>
<a href="javascript:" onClick="return showCalendar('createTime', 'y-mm-dd');"><img src="<%=baseUrl%>/images/calendar.gif" border="0" alt=""/></a><input type="submit" name="Submit" value="进入"/>
</form>
</td></tr>
</table>
</div><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><font color="red"><html:messages id="error"><bean:write name="error"/></html:messages></font></td>
</tr>
</table>
<%@include file="/public/footer.jsp"%>
Action中对应的方法是:
public ActionForward checkUser(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
GoProjectStatementsForm goPSF = (GoProjectStatementsForm) form; String department = goPSF.getDepartment();
String deparPW = goPSF.getDeparPW();
String year = goPSF.getYear0();
String quarter = goPSF.getQuarter();
String createTime = goPSF.getCreateTime(); HttpSession session = request.getSession();
session.setAttribute("department", department);// 全局变量,保存部门
session.setAttribute("year0", year);// 全局变量,保存年份
session.setAttribute("quarter", quarter);// 全局变量,保存季度
session.setAttribute("createTime", createTime); ApplicationContext context = new FileSystemXmlApplicationContext(
"classpath:applicationContext.xml");
projectService = (IProjectService) context.getBean("projectService");
boolean result = projectService.checkGo(department, deparPW);
if (result) {
goProStatSummary(request,year,quarter,department);
return mapping.findForward("summary");
} else {
msgs.clear();
msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("user.login.failed"));
this.saveErrors(request, msgs);
return mapping.findForward("index");
}
}其中调用的主要方法goProStatSummary是:
private void goProStatSummary(HttpServletRequest request,String year,String quarter,String loginDepart) {
String department = ""; String thisQuarterEndTime = year + Util.getTQEndTime(quarter);// 获得本季结束时间
String yearStartTime = year + "-1-1";// 获得年初时间
String thisQuarterStartTime = year + Util.getTQStartTime(quarter);// 获得本季开始时间 ProStatSummary heJiProStatSummary = new ProStatSummary();
List summary=new ArrayList();
List projectsListFYearTTQ = null;// 1.年初至本季止完工工工程
List projectsListThisQuery = null;// 2.本季完工工程
List projectsListBuilding = null;// 3.在建工程列表
ProStatSummary proStatSummary = null;
int len = departments.length;
for (int i = 0; i < len; i++) {
department = departments[i];
projectsListFYearTTQ = projectService.findProjects("1",
yearStartTime, thisQuarterEndTime, department);
if (quarter.equals("1")) {
projectsListThisQuery = projectsListFYearTTQ;
} else {
projectsListThisQuery = projectService.findProjects("2",
thisQuarterStartTime, thisQuarterEndTime, department);
}
projectsListBuilding = projectService.findProjects("3", "",
thisQuarterEndTime, department);
proStatSummary = projectService.setStatSummary(
projectsListFYearTTQ, projectsListThisQuery,
projectsListBuilding, year, quarter);
heJiProStatSummary = projectService.getHeJiProStatSummary(
heJiProStatSummary, proStatSummary);
proStatSummary.setDepartment_EN(department);
proStatSummary.setDepartment_CH(changeDepartment(department));
if(loginDepart.equals(department)||loginDepart.equals("BB")){
proStatSummary.setIsDepartment("1");
}
summary.add(proStatSummary);
}
projectsListFYearTTQ = null;// 1.年初至本季止完工工工程
projectsListThisQuery = null;// 2.本季完工工程
projectsListBuilding = null;// 3.在建工程列表
proStatSummary = null;
request.setAttribute("summaryList",summary);
request.setAttribute("heJiProStatSummary", heJiProStatSummary);
request.setAttribute("year", year);
request.setAttribute("quarter", quarter);
summary=null;
heJiProStatSummary=null; }问题是:调用完方法goProStatSummary进行计算后,跳转到return mapping.findForward("summary");同样的运行条件下程序有时跳转有时不跳转,到底是什么原因呢?很困惑了几天,还请大虾帮帮忙。
有没有可能超时了?
port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />connectionTimeout改大点就行了,可是我改成3000000都不行呢,郁闷,不知道还有哪里的问题了。我现在的解决方案是:将计算结果保存到数据库中,然后再来读数据库,中间在跳转之前不计算了就能跳转了,烦躁,但是上面的问题一直困扰我,是什么原因呢?计算时间也才1分多钟啊,这么点时间都等不起?不跳转了?我不信。请高手继续跟进,直到解决啊