java - 小服务程序编程

标签 java servlets

我正在使用这些 servlet 代码。 在 processRequest 方法中,以这些变量的形式 ans,id...我没有进入 dopost 方法。我在双引号中得到了 prob....

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        try {

            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet adminforum</title>");  
            out.println("</head>");
            out.println("<body>");
            out.println("<FORM METHOD=POST>");
            out.println("enter the ID no.");
            out.println("<INPUT TYPE=TEXT name=id>");
            out.println("<br>");
            out.println("enter the answer.");
            out.println("<INPUT TYPE=TEXT name=ans>");
            out.println("<br>");
            out.println("<INPUT TYPE=SUBMIT VALUE=submit>");
            out.println("</FORM>");
            out.println("</body>");
            out.println("</html>");

        } finally { 
            out.close();
        }
    } 

最佳答案

注意事项:

  • 除非您是第一次使用 Servlet 并试图了解该技术,否则您确实不应该使用 Servlet 来输出 HTML - JSP 更适合于此。
  • 虽然 HTML 不区分大小写,但 XML(以及 XHTML)则不然。这意味着<form><FORM>是不同的元素。现在所有元素都使用小写已成为惯例。所以你不应该使用 <INPUT> ;使用<input>反而。属性也是如此( value 不是 VALUE )。
  • 请注意,您可以使用双引号 "或单引号 '对于 X(HT)ML 中的属性。

如果我理解正确的话,您是说在提交表单时无法读取表单中的字段,并且您怀疑这是因为您无法将双引号添加到您的字符串文字中正在这里写下来。这是转义字符串文字中的双引号的简单问题:

        out.println("<html>");
        out.println("<head>");
        out.println("<title>Servlet adminforum</title>");  
        out.println("</head>");
        out.println("<body>");
        out.println("<FORM METHOD=\"POST>\"");
        out.println("enter the ID no.");
        out.println("<INPUT TYPE=\"TEXT\" name=\"id\">");
        out.println("<br>");
        out.println("enter the answer.");
        out.println("<INPUT TYPE=\"TEXT\" name=\"ans>\"");
        out.println("<br>");
        out.println("<INPUT TYPE=\"SUBMIT\" VALUE=\"submit\">");
        out.println("</FORM>");
        out.println("</body>");
        out.println("</html>");

或者,如果您更愿意使用单引号(这也使编写 Java 代码更容易):

        out.println("<html>");
        out.println("<head>");
        out.println("<title>Servlet adminforum</title>");  
        out.println("</head>");
        out.println("<body>");
        out.println("<FORM METHOD='POST>'");
        out.println("enter the ID no.");
        out.println("<INPUT TYPE='TEXT' name='id'>");
        out.println("<br>");
        out.println("enter the answer.");
        out.println("<INPUT TYPE='TEXT' name='ans>'");
        out.println("<br>");
        out.println("<INPUT TYPE='SUBMIT' VALUE='submit'>");
        out.println("</FORM>");
        out.println("</body>");
        out.println("</html>");

关于java - 小服务程序编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5331211/

相关文章:

java - 更改 Spring/Stomp/Websocket/Messaging 中的 session ID

java - 按 Enter 关闭对话框

java - StAX 和 DOM 使用 XMLEventReader 而不是 XMLStreamReader

java - Spark根据时间戳中的时间间隔将列添加到数据集

java - 如何将非 Liferay Web 应用程序部署到与 Liferay 捆绑的 tomcat

eclipse - 单元测试 servlet

java - 在java swing中从一帧移动到另一帧

servlets - Struts 2 中的 SessionAware 设计

android - Fehler(错误)6 - 无法加载请求的项目

java - Servlet 中的 doGet 和 doPost