servlet跳转之后,return了么?后面还有什么语句,贴出来看看。

解决方案 »

  1.   

    这是在command类中用到的调用的代码
    if (helper.getRequest().getParameter("subType").equals("unitjobadd"))
    {
       if (ComRegUnitjob.unitjobregcheck(helper))
       {
    Debug.print("企业招聘信息添加成功");
    ArrayList errorList=new ArrayList();
    String rightmsg="企业招聘信息添加成功"; next=PageDefine.RC_COM_REGSECCESS;
        errorList.add(rightmsg);
    helper.getRequest().getSession().setAttribute("errorList",errorList); }
    else
    {
    next=PageDefine.RC_ERROR;
    }
    在这段程序中用到判断一些条件最后生成sql语句的类:
    public static boolean unitjobregcheck(RequestHelper helper)
    {
    String strsql="insert unitjob;
    Debug.print("企业招聘职位sql语句输出"+strsql);
    ComRegUnitjobMap comregunitjobmap=new ComRegUnitjobMap();
    comregunitjobmap.update(strsql);
    pass=true;
    return pass;
    }
    执行数据库错做的类:
    DBConnection dbconnection= new DBConnection();
    con=dbconnection.getConnection();
    stmt=con.createStatement();
    stmt.executeUpdate(sql);
    Debug.println("数据库连接成功");-----------------------------------
    请高手们给予指教
      

  2.   


    没有办法的,你如果看一下大型网站注册就明白了,他们是通过重复ID过滤的,和重复EMAIL
      

  3.   

    这是因为每次点“刷新”的时候,浏览器会向服务器提交上次的插入请求,这种现象叫做“二次导航”。
    解决方法:
    在插入画面初始化处理的时候在session中set一个标志位,例如session.setAttribute("ins", "1");
    在插入处理时判断标志位是否为"1",如果是"1"则执行插入处理,否则不进行。插入成功以后remove掉这个标志位。
    例如:
    String insFlag = (String)session.getAttribute("ins");
    if(insFlag != null && insFlag.equals("1")) {
        //插入处理
        ......
        //插入成功以后remove标志位
        session.removeAttribute("ins");
    }
      

  4.   

    我页面的跳转是提交给servlet处理的!这样的情况下该怎么处理呢?
      

  5.   

    长长知识:浏览器的“刷新”按钮的作用是把上一次提交给服务器端的请求在提交一次。当你进行了插入处理以后,无论在服务器端进行了多么复杂转向操作都不会被客户端的浏览器知道,当你点击“刷新”的时候,浏览器就把插入请求再向服务器提交一次(包括所有的parameters)。
      

  6.   

    你肯定是通过servlet来调用其他的类来实现“登陆页面”的初始化,以及“插入”处理的,那么就在实现“登陆页面”的初始化的servlet程序中在session中写标志位,在“插入”处理的servlet程序中判断标志位并清空标志位就可以了。
      

  7.   

    解决方法:
    在插入画面初始化处理的时候在session中set一个标志位,例如session.setAttribute("ins", "1");
    在插入处理时判断标志位是否为"1",如果是"1"则执行插入处理,否则不进行。插入成功以后remove掉这个标志位。
    例如:
    String insFlag = (String)session.getAttribute("ins");
    if(insFlag != null && insFlag.equals("1")) {
        //插入处理
        ......
        //插入成功以后remove标志位
        session.removeAttribute("ins");
    }
      

  8.   

    大哥的标志位的方法是一种解决方法,我做的也是你所说的用servlet来调用其他类实现的,有没有别的解决办法呢?
      

  9.   

    这些标志位的判断是写在servlet中,还是写到jsp页面中呢?大哥
      

  10.   

    建议使用session来操作。
    当用户点击注册button时候,在servlet中建立一个新的session,比如为session.setAttribute("newUser",);用户提交注册后,在程序中将session清空session.removeAttribute("newUser")注册button执行的servlet:
                         session.setAttribute("newUser",new Boolean(true));
    提交button执行的servlet:
    Boolean newUser = (Boolean)session.getAttribute("newUser");
    if (newUser != null) {
    //注册操作
    session.removeAttribute("newUser")
    }
    当用户注册成功后,刷新页面的时候,由于此时的newUser的session,已经为空了,不在执行用户注册操作,即可避免以上的情况。
      

  11.   

    标志位写在servlet中!其它的类中不太好解决。
      

  12.   

    谢谢kadina(次帅) 个各位朋友的指点!因为我做的网站是人才网,我在中国国家人才网也发现了
    这个问题,而且它也没有解决,有很多的网站都有类似的问题!这个问题我解决了,谢谢!
    给分!