【问题标题】:Compilation error <identifier> expected预期编译错误 <标识符>
【发布时间】:2015-09-28 02:28:23
【问题描述】:

所以这可能很简单,但我仍然无法自己解决。 这是什么意思?

GET.java:27: error: <identifier> expected
        out.println("</p></body></html>");
                   ^
GET.java:27: error: illegal start of type
        out.println("</p></body></html>");

这是我的 java servlet 的代码:

  import java.io.*;
  import java.util.*;
  import javax.servlet.*;
  import javax.servlet.http.*;

  public class GET extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse res)
                      throws ServletException, IOException {
      res.setContentType("text/html");
      PrintWriter out = res.getWriter();
      FileOutputStream fos = new FileOutputStream("/tmp/prdocutorders.txt");
      PrintWriter pw = new PrintWriter(fos);
      out.println("<html><body><p>");
      pw.println("<h3>Congratulations! Your order information:</h3>");
      Enumeration e = req.getParameterNames();
      while ( e.hasMoreElements() ) {
        String name = (String)e.nextElement();
        String vals[] = (String[])req.getParameterValues(name);
        if ( vals != null )
          for (int i = 0; i < vals.length; i++)
            out.println(name + ": " + vals[i] + "<br>");
      }
       if ( vals != null )
          for (int i = 0; i < vals.length; i++)
            pw.println(name + ": " + vals[i] + "<br>");
      }
        out.println("</p></body></html>");
     // out.close();
    }

感谢您的帮助!!

【问题讨论】:

  • 缩进你的代码。系统地使用花括号。

标签: java compiler-errors


【解决方案1】:

平衡大括号是强制。你在声明out.println("&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;");之前有一个丢失的大括号

作为旁注,这样更容易发现错误

  • 总是使用大括号
  • 正确缩进您的代码

编辑:您的代码的某些部分似乎不正确,您可能想要这样:

while (e.hasMoreElements()) {
    String name = (String) e.nextElement();
    String vals[] = (String[]) req.getParameterValues(name);
    if (vals != null) {
        for (int i = 0; i < vals.length; i++) {
            out.println(name + ": " + vals[i] + "<br>");
            pw.println(name + ": " + vals[i] + "<br>");
        }
    }
}
out.println("</p></body></html>");

【讨论】:

  • 谢谢!出于某种原因,它现在不喜欢 vals ......“找不到符号”,即使我声明它
  • 您在另一个块中声明它。每个块都有自己的范围。
  • 第二个 if ( vals != null ) 块似乎不需要或放错了位置
【解决方案2】:

你的

if ( vals != null) { //has no opening bracket

您需要将 { 添加到您的代码中。或者您需要在之前删除 }

out.println("</p></body></html>");

【讨论】:

    猜你喜欢
    • 2022-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多