我的应用是通过JSP+SELVET+Oracle做的,但当我的应用被多人同时时候使用的时候就会时不时的出现混乱的现象,例如跳转到不该出现的页面里等等现象。不知道为什么
[b]问题补充:[/b]
其中的一个servlet类
[code]
public class OtherConvertAction implements ManageService {
private HttpSession session = null;
private List objects = null;
private TurnPage goPage = null;
private RequestDispatcher rd = null;
private String state = null;
private String pageNum = null;
private DimCoefPriceImpl dcpDao = null;
private String contextPath = null;
private static Logger logger = Logger.getLogger(OtherConvertAction.class);
private void findDefault(DimCoefPriceImpl dcpDao2, String Code) {
try {
List otherConvert = dcpDao2.findAllData(Code);
goPage.setList(otherConvert);
goPage.setCurrentPage("1");
session.setAttribute("otherConvert", goPage.getPage());
session.setAttribute("page", goPage);
} catch (SQLException e) {
e.printStackTrace();
}
}
private void init(HttpServletRequest request) {
rd = request.getRequestDispatcher(Config.QTT_CQ_PATH);
String Code = request.getParameter("class");
state = request.getParameter("state");
session = request.getSession(false) == null ? request.getSession(true)
: request.getSession(false);
state = request.getParameter("state");
pageNum = request.getParameter("gopage") == null ? "1" : request
.getParameter("gopage");
goPage = (TurnPage) session.getAttribute("page");
dcpDao = new DimCoefPriceDAO();
contextPath = request.getContextPath();
if (session.getAttribute("meta_cq") == null) {
List meta_cq;
try {
meta_cq = DimCodeDAO.findMeta();
session.setAttribute("meta_cq", meta_cq);
} catch (SQLException e) {
e.printStackTrace();
}
}
logger.debug("State:"+state);
}
// private void jumpReqPage(String Code, HttpServletRequest request,
// HttpServletResponse response) throws ServletException, IOException {
// if ("austenite".equals(Code)) {
// rd = request.getRequestDispatcher(Config.QTT_AU_PATH);
// rd.forward(request, response);
// } else if ("doublesteel".equals(Code)) {
// rd = request.getRequestDispatcher(Config.QTT_DOU_PATH);
// rd.forward(request, response);
// } else if ("ferrite".equals(Code)) {
// rd = request.getRequestDispatcher(Config.QTT_FER_PATH);
// rd.forward(request, response);
// } else if ("martensite".equals(Code)) {
// rd = request.getRequestDispatcher(Config.QTT_MAR_PATH);
// rd.forward(request, response);
// } else {
// logger.debug("Request Code is "+Code);
// }
// }
public void execute(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
init(request);
if (Config.ISGOPAGE.equals(state)) {
goPage.setCurrentPage(pageNum);
session.setAttribute("otherConvert", goPage.getPage());
response.sendRedirect(contextPath+"/ME/jsp/convertquotiety/cqshopsign.jsp");
} else if (Config.ISFIND.equals(state)) {
String midCode = request.getParameter("midItems");
String fromDate = request.getParameter("fromDate");
String toDate = request.getParameter("toDate");
String detail = request.getParameter("detail");
String shopSign = request.getParameter("shopSign");
String metaStr = request.getParameter("mate_cq");
String Code = request.getParameter("class");
try {
List otherConvert = dcpDao.find(Code, fromDate, toDate,
midCode, detail, shopSign, metaStr);
goPage.setList(otherConvert);
goPage.setCurrentPage("1");
session.setAttribute("otherConvert", goPage.getPage());
request.setAttribute("message", "查询成功!");
} catch (SQLException e) {
e.printStackTrace();
request.setAttribute("message", "查询失败!");
}
// response.sendRedirect(contextPath+"/ME/jsp/convertquotiety/cqshopsign.jsp");
rd.forward(request, response);
} else if (Config.ISUPDATE.equals(state)) {
DimCoefPrice coefPrice = new DimCoefPrice();
coefPrice.setId(request.getParameter("u-0-rowid"));
// coefPrice.setFMLY_CODE(request.getParameter("u-0-fmlyCode"));
// coefPrice.setFMLY_NAME(request.getParameter("u-0-fmlyName"));
// coefPrice.setMID_CODE(request.getParameter("u-0-midCode"));
// coefPrice.setMID_NAME(request.getParameter("u-0-midName"));
// coefPrice.setDETAIL_CODE(request.getParameter("u-0-detailCode"));
coefPrice.setDETAIL_NAME(request.getParameter("u-0-detailName"));
coefPrice.setSG_CODE(request.getParameter("u-0-shopSignCode"));
coefPrice.setSHOP_SIGN(request.getParameter("u-0-shopSign"));
coefPrice.setMETA_STR_ID(request.getParameter("u-0-metaStuCode"));
coefPrice
.setMETA_STRUCTURE(request.getParameter("u-0-metaStuName"));
coefPrice.setCR_QTY(request.getParameter("u-0-crContent"));
coefPrice.setNI_QTY(request.getParameter("u-0-niContent"));
// coefPrice.setCR_PRICE(request.getParameter("u-0-crPrice"));
// coefPrice.setNI_PRICE(request.getParameter("u-0-niPrice"));
coefPrice.setNY_FROM(request.getParameter("u0fromDate"));
coefPrice.setNY_TO(request.getParameter("u0toDate"));
coefPrice.setREMARK(request.getParameter("u-0-remark"));
int rows = dcpDao.doUpdate(coefPrice).intValue();
if (rows > 0) {
request.setAttribute("message", "更新成功!");
} else {
request.setAttribute("message", "更新失败!");
}
findDefault(dcpDao, request.getParameter("class"));
rd.forward(request, response);
} else {
findDefault(dcpDao, request.getParameter("class"));
response.sendRedirect(contextPath+"/ME/jsp/convertquotiety/cqshopsign.jsp");
}
}
}
[/code]