gpt4 book ai didi

Java Servlet 根据用户输入生成一个 m 乘 n 乘法表

转载 作者:行者123 更新时间:2023-11-28 03:52:14 30 4
gpt4 key购买 nike

初学者问题。我有一个基本的 html 表单,其中有一个标记为“输入数字”的用户输入文本框和一个标记为“创建乘法表”的提交按钮。这是使用 servlet 显示 html 格式的乘法表。其他一切正常,只是格式化关闭;我似乎无法正确编号第一行和最左边的列。它应该看起来像这样:

the x's represent the products

相反,它看起来像这样(在此示例中输入数字为 7):

enter image description here

我的 servlet 代码是:

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/Main")
public class Main extends javax.servlet.http.HttpServlet implements
javax.servlet.Servlet {
static final long serialVersionUID = 1L;

public Main() {
super();

}

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

String title = "Multiplication Table";
out.println("<html>");
out.println("<head>");
out.println("<title>" + title + "</title>");
out.println("</head>");
out.println("<body");

out.println("<center>");
out.println("<table border=1 cellpadding=0 cellspacing=0 width=70%>");

try {
int op = Integer.parseInt(request.getParameter("op"));
if (op > 10) {
out.println("<h1>Enter a number between 1 and 10!</h1>");

} else if (op < 10) {
for (int i = 1; i <= op; i++) {

out.println("<tr>");
for (int j = 1; j <= op; j++) {

out.println("<td>" + i * j + "</td>");
}
out.println("</tr>");
System.out.println();
}
}
} catch (NumberFormatException e) {
out.println("<body><h1>Enter numbers only!</h1></body>");
}

}
}

最佳答案

我看到了一些问题。对于您可能不应该在 Servlet 中嵌入 HTML 的人,您也应该尝试验证您的 HTML - 您会发现一些问题。

您没有关闭 <body标签。

您没有关闭 <table>标签。

您正在调用 System.out.println()你可能是说 out.println();此外,您可能会将标题嵌入表格中。

out.println("<body>"); <-- added `>`
out.println("<center>");
try {
int op = Integer.parseInt(request.getParameter("op"));
if (op > 10) {
out.println("<h1>Enter a number between 1 and 10!</h1>");
} else if (op < 10) {
out.println("<table border=1 cellpadding=0 cellspacing=0 width=70%>");
for (int i = 1; i <= op; i++) {
out.println("<tr>");
for (int j = 1; j <= op; j++) {
// EDIT
if (i == 1 || j == 1) {
out.println("<td align='right'>" + i * j + "</td>");
// out.println("<td style='text-align: right'>" + i * j + "</td>");
} else {
out.println("<td>" + i * j + "</td>");
}
// END EDIT
}
out.println("</tr>");
out.println(); <-- out.println() - not System.out.println();
}
out.println("</table>"); // <-- close the table tag.
}
} catch (NumberFormatException e) {
out.println("<h1>Enter numbers only!</h1>"); // <-- no <body>
}
out.println("</center>\n</body>"); <-- close center and body.

关于Java Servlet 根据用户输入生成一个 m 乘 n 乘法表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23532543/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com