初学者问题。我有一个基本的html表单,其中一个用户输入文本框标有"输入一个数字"和一个标有&#34的提交按钮;创建一个乘法表"。这是使用servlet来显示html格式的乘法表。其他一切工作正常,格式化已关闭;我似乎无法正确排列顶行和最左列。它应该是这样的:
相反它看起来像这样(在这个例子中输入数字是7):
我的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>");
}
}
}
答案 0 :(得分:0)
我看到一些问题。对于一个你可能不应该在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.
答案 1 :(得分:-1)
您可以使用CSS first-child
属性实现此目的。查看this fiddle