xindongyinfu 2008-11-05 17:05
浏览 188
已采纳

关于并发访问求教

我的应用是通过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]

  • 写回答

4条回答 默认 最新

  • iteye_15376 2008-11-10 13:06
    关注

    [code="java"]# 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; [/code]

    这些变量,能定义到方法内部的就写到方法里面去。如果是多个现场公用的变量,那么在读取和修改该变量时需要加锁。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择