Java 重新加载Servlet?
我是新来的仆人,请容忍我 我想制作一个servlet,它用默认值(例如,2行2列)编写一个标准表,并在两个文本值的下面编写 在这些文本框中,我想填写所需的行和列。填写这些文本值后,表格必须更改为要求的表格 此时我得到一个404错误Java 重新加载Servlet?,java,servlets,Java,Servlets,我是新来的仆人,请容忍我 我想制作一个servlet,它用默认值(例如,2行2列)编写一个标准表,并在两个文本值的下面编写 在这些文本框中,我想填写所需的行和列。填写这些文本值后,表格必须更改为要求的表格 此时我得到一个404错误 /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse * response) */ protected void doGet(HttpServletRe
/**
* @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>");
}
/**
*@参见HttpServlet#doGet(HttpServletRequest请求,HttpServletResponse
*(答复)
*/
受保护的无效数据集(HttpServletRequest请求,
HttpServletResponse响应)引发ServletException,IOException{
doPost(请求、响应);
}
/**
*@参见HttpServlet#doPost(HttpServletRequest,HttpServletResponse
*(答复)
*/
@抑制警告(“未选中”)
受保护的void doPost(HttpServletRequest请求,
HttpServletResponse响应)引发ServletException,IOException{
response.setContentType(“Text/html”);
PrintWriter pw=response.getWriter();
pw.println(“”);
pw.println(“表格生成器”);
整数行=(整数)请求.getAttribute(“行”);
整数列=(整数)请求.getAttribute(“cols”);
if(行!=null&&col!=null){
for(int i=1;i ”;
pw.println(“Cols:
”;
pw.println(“”);
pw.println(“”);
}
代码中的任何建议看起来可能会混淆请求属性和参数 填写完值后,用户应单击表单的提交按钮。您需要将表单配置为提交到同一个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>
正文1:
文本2:
表单的action属性必须设置为servlet所在的URL。
在Java代码中,可以调用request.getParameter(“text1”)等来获取用户键入的值
在编写的代码中,您试图访问与参数不同的请求属性。参数是从浏览器发送的值。属性是通过服务器上的Java代码插入到请求中的值。404只意味着浏览器地址栏中的URL是错误的。这与servlet没有多大关系。您应该确保URL是正确的,或者您在该URL上侦听了一些内容。尽管我想提醒大家,这不是使用servlet的正确方法。它应该只包含Java代码,而不是HTML代码。HTML属于JSP。另请参见我们的servlets wiki页面,了解一些Hello World示例。您可以将鼠标悬停在问题上的
[servlets]
标记上,直到出现一个黑框,然后单击其中的信息链接。