关键代码如下
<form action="/JSP-Demo/Servlet?assesid=1" method="post">
  <select name="optionvalue">
 <c:forEach begin="1" end="5" step="1" varStatus="num">
 <option>${num.index}</option>
 </c:forEach>
  </select>
  <input type="submit" value="提交"/>
</form>
当单击按钮跳转到Servlet,servlet关键代码如下
String optionvalue=request.getParameter("optionvalue");
String assesid=request.getParameter("assesid");
System.out.println(ovalue);
System.out.println(assesid);
当选择from表单的提交方式为post时optionvalue和assesid的值都能正常获取,
而当选择from表单的提交方式为gett时optionvalue的值能获取到而assesid的值则不能正常获取;
谁能告诉我这是为什么啊?三克油。

解决方案 »

  1.   

    从你贴出的代码看没任何问题,post和get都是能正常获取的。
      

  2.   

    但是把表单的提交方式改为get提交就获取不到了
      

  3.   


    String assesid=request.getQueryString("assesid");
    get方式这样取参的
      

  4.   

    你把servlet里的  doGet()方法调用doPost()就可以了、然后在doPost里获取下、
    public void doGet(HttpRequest request,HttpResponse response)throw ServletException,IOException { 
      doPost(request,response); }public void doPost(HttpRequest request,HttpResponse response)throw ServletException,IOException {   //正常获取你要的东西
    }
      

  5.   

    GET模式下,浏览器会重新组织 Query 部分内容,也就是 ? 之后的内容。所以建议你改成:
    <form action="/JSP-Demo/Servlet" method="post">
      <input name="assesid" type="hidden" value="1" />
      <select name="optionvalue">
     <c:forEach begin="1" end="5" step="1" varStatus="num">
     <option>${num.index}</option>
     </c:forEach>
      </select>
      <input type="submit" value="提交"/>
    </form>
      

  6.   

    如果是我的话 喜欢这样用<input type="hidden" name="assesid" value="1"/>
    <form action="/JSP-Demo/Servlet?assesid=1" method="post"> 这样写assesid好像也是按get方式提交的
    至于你用get方式为什么得不到assesid的值 我就不知道了 没遇到过
      

  7.   

    好吧,是我问题描述的不详细,补充:
    Servlet代码重新描述下,如下:
    doGet方法,
    this.doPost(request,response);
    doPost方法,
     String optionvalue=request.getParameter("optionvalue"); 
    String assesid=request.getParameter("assesid");
     System.out.println(ovalue); 
    System.out.println(assesid);
    提交方式为get
      

  8.   

    能解释下这是为什么吗,post方式提交
    String optionvalue=request.getParameter("optionvalue");
    String assesid=request.getParameter("assesid");
    都能正常的获取在控制台输出,
    而该为get方式提交就不能
    输出assesid的值
      

  9.   

    hidden 改为 text 还是获取不到吗?
      

  10.   

    form 表单method为get时action中    ?后边带的参数列表会被忽视所以还得像5楼说的那样 封装在form 表单的控件里才能被获取到、
      

  11.   

     按5楼所说的,能获取到,问题的关键也就是五楼说的用get模式下浏览器会重新组织Query,难怪浏览器地址中没有了assesid,
      

  12.   

    想要简单  servlet里只有一个service()方法
    这个参数都会获取到的  
    因为如果没有找到对应方法  他都会调用service方法