无法读取servlet中的表单字段

嘿,我对servlet环境很陌生。 在这里,我试图将一个表单发布到我的servlet,如下所示:

Question
Attach File



servlet是这样的:

 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if(request.getParameter("q").equals("saveQuestion")){ saveQuestion(request); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } public void saveQuestion(HttpServletRequest request){ Enumeration enum = request.getParameterNames(); while (enum.hasMoreElements()) { String pName = (String) enum.nextElement(); String[] pValues = request.getParameterValues(pName); System.out.print(""+pName + ": "); for (int i=0;i<pValues.length;i++) { System.out.print(pValues[i]); } out.print("
"); } }

但它只打印q参数而不打印其他表单字段。

我也尝试用request.getParameter("question")来获取它们,但这也没有用。 所以我哪里出错了。 实际上我来自PHP背景,最近开始用java编码所以请帮助。

提前致谢

当您使用enctype="multipart/form-data"您无法像通常那样访问请求参数[即request.getParameter("question") ]。 您必须使用MultipartRequest对象。

并且您还在POST中提交表单,然后在servlet中将其重定向到doGet。 为什么这样? 为什么不直接使用GET作为表单提交的方法。


演示使用MultipartRequest:

 String ph="images\\"; MultipartRequest req=new MultipartRequest(request, ph); String question=req.getParameter("question"); System.out.println("Question: "+question); 

为什么你的表单操作看起来像一个带有?q = saveQuestion的GET请求,而表单类型是POST? 也许在这次调用中忽略GET参数。