gpt4 book ai didi

java - 重新加载Servlet?

转载 作者:行者123 更新时间:2023-11-30 04:31:37 25 4
gpt4 key购买 nike

我是 servlet 新手,所以请耐心等待。

我想制作一个 servlet,用默认值(例如 2 行、2 列)编写一个标准表,下面有两个文本值。

在这些文本框中,我想填写所需的行和列。填写这些文本值后,表格必须更改为请求的形式。

此时我收到 404 错误

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
@SuppressWarnings("unchecked")
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("Text/html");
PrintWriter pw = response.getWriter();
pw.println("<html><body>");
pw.println("<h1>Table generator</h1><table border=1>");

Integer row = (Integer) request.getAttribute("rows");
Integer col = (Integer) request.getAttribute("cols");

if (row != null && col != null) {

for (int i = 1; i < col; i++) {
pw.print(HtmlUtils.getTH("center", "COL" + i));
}

@SuppressWarnings("rawtypes")
Vector av = new Vector();

for (int i = 1; i < row; i++) {

for (int y = 1; i < col; y++) {

av.addElement("index" + col + "." + y);

}
}

} else {

pw.print(HtmlUtils.getTableHead("center", 1));

pw.print(HtmlUtils.getTH("center", "COL1"));
pw.print(HtmlUtils.getTH("center", "COL2"));

@SuppressWarnings("rawtypes")
Vector av = new Vector();

for (int i = 1; i < 5; i++) {

av.addElement("index1." + i);
av.addElement("index2." + i);

}

pw.print(HtmlUtils.getTableContents("center", av, 2));

}

pw.println("</table>");

pw.println("<form action='input' method='post'>");
pw.println("Rows : <input type='text' name='rows'><br>");
pw.println("Cols : <input type='text' name='cols'><br>");
pw.println("<input type='submit'>");
pw.println("</form></body></html>");
}

任何建议

最佳答案

从您的代码来看,您可能对请求属性和参数感到困惑。

填写值后,用户应单击表单的提交按钮。您需要配置表单以提交到同一个 servlet。然后,该 servlet 可以执行所需的任何处理(例如,将值存储在数据库中)并重新显示网页,但它应该检查并查看用户在表单中输入了哪些值(如果有)。如果他们填写了两个文本值中的任何一个,servlet 就可以将这些值放入表中。

假设您的表单如下所示:

<form name="input" action="your-servlet-name.action" method="get">
Text1: <input type="text" name="text1">
Text2: <input type="text" name="text2">
<input type="submit" value="Submit">
</form>

表单的action 属性必须设置为servlet 所在的URL。在 Java 代码中,您可以调用 request.getParameter("text1") 等来获取用户输入的值。

在编写的代码中,您尝试访问请求属性,这与参数不同。参数是从浏览器发送的值。属性是服务器上的 Java 代码插入到请求中的值。

关于java - 重新加载Servlet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14524968/

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