可以呀,只不过你每个form多传一个参数method(当然可以随便叫其他名字);servlet里根据再根据这个参数执行相应的方法(可以用反射实现,或者直接if else)。
String method = request.getParameter("method");
if("a".equals(method)) {
    a();
} else if("b".equals(method)) {
    b();
} else if...
这是简单方法哈,智能点就用反射。

解决方案 »

  1.   

    当然可以吖。不同的form里面写同样的action就可以了。
    然后传入一个参数来让servlet区分是从哪个form传过来的数据,根据这个参数执行不同的业务逻辑。
    就像楼上说的那样。
      

  2.   

    jsp:
    <form>
    <hidden name="opflag" value="init"/>
    </form>Servlet:
    String opFlg = request.getParameter("opflag");
    if("init".equals(opFlg)){
        init();
    } else if()...
    改变opflag的value就好了
      

  3.   

    你说的form多传一个参数是放哪里呢?能来一段代码吗?反射实现该如何实现呢?还有,是否大多数的form提交的动作都是指向servlet,那servlet不是很多很多了?为什么我看到的一些J2EE项目,servlet只有不多的三四个呢?谢谢
      

  4.   


    <form id="form" name="form" action="servletName?opflag=abc" method="post"></form>后台就按#3楼的来就可以了,#3楼那个hidden标签写错了,貌似没这标签
      

  5.   

    <input type="hidden" name="admin"  value="admin"/>这是hidden
      

  6.   

    这问题也只要在servlet中的方法中判断了,回顾以前的mvc模式,不管提交的值是1个还是2个都是到dopost方法里,duget里调用dopost方法情况下,
    如果真的只想用一个servlet中那么在servlet中有一个变量一定要在dpost方法中是全局的,这样每次表单提交的时候给个随便的值就可以了
    比如在servlet中有个变量是全局的叫 opFlg
    String opFlg = request.getParameter("opflag"); 
    if(opFlg.equals("1"))
    执行的方法 同下……
    else if(opFlg.equals("2"))
    else if(opFlg.equals("3"))
    else if(opFlg.equals("4"))
    在提交的时候这个opFlg是一定要有的,如果是查询那就给个1,如果是插入那就给个2,如果是删除就给个3
    就可以了
      

  7.   

    加上标志以示区分执行的是什么方法,这样就可以把该业务放到一个servlet里面。
    不然一个按钮一个servlet显得较臃肿
      

  8.   

    难道你一个页面有100个事件吗?那是挺麻烦的?
    也不是都写在一个servlet中,一个页面的查询为一个servlet,一个servlet是增,删,改错操作的servlet
    也就是一个页面2个servlet这样也就分开了,代码也少了,
    不然你不想用多个servlet也不想在一个servlet中写多个方法,用条件判断掉用servlet dopost那个方法,那你怎么搞
      

  9.   

    用  <a href="yourServlet?flag=adduser"></a>下一个按钮用<a href="yourServlet?flag=deleteuser"></a>
    你的servlet页面
    request.getparamert("flag");if(flag.epual("adduser"))
    {    //事件1
    }
    else  if(flag.epual("adduser"))
    {//事件2}
      

  10.   

    if(flag.epual("adduser"))
    {    //事件1
    }
    else  if(flag.epual("adduser"))
    {//事件2
    //事件3
    }
    可以这样先后执行两个事件吗