我正在使用 Eclipse Indigo 我安装了 Maven 插件。
我有一个名为 squarefour 的 Eclipse 项目
新建-项目->网络->动态网络项目
目标运行时:apache Tomcat v7.0
动态网页模块版本:3.0
配置:Apace Tomcat v7.0 的默认配置
结束
Java资源->src->square[一个包]->SquareServlet.java
package square;
import java.io.*;
import javax.servlet.*;
import javax.servlet.annotation.*;
import javax.servlet.http.*;
/** Simple servlet for testing
*/
@WebServlet("/sqr")
public class SquareServlet extends HttpServlet {
@Override
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println
("<!DOCTYPE html>\n" +
"<html>\n" +
"<head><title>A Test Servlet</title></head>\n" +
"<body bgcolor=\"#fdf5e6\">\n" +
"<h1>Square</h1>\n" +
convert(request.getParameter("param")) +
"</body></html>");
}
public String convert (String x)
{
int z;
try
{
z = Integer.parseInt(x);
}
catch (NumberFormatException e)
{
return "Input not an Integer";
}
z = z*z;
Integer y = new Integer(z);
return y.toString();
}
}
然后是 WebContent->index.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<head>
<meta name=viewprt content="user-scalable=no,width=device-width" />
</head>
<body>
<div data-role=page id=home>
<div data-role=header>
<h1>Number Fun</h1>
</div>
<form action=sqr>
<div data-role=content>
<span> Integer </span>
<input type="text" name="param" value="3" />
</div>
<div data-role=content>
<input type="submit" data-role=button value="Square">
</div>
</form>
</div>
</body>
</html>
然后,当我在服务器上运行 index.jsp 时,我也在使用 Tomcat 7.0。我可以输入我的号码,按下按钮,然后加载第二页,显示平方数(或错误消息)。
但是当我右键单击项目并配置-> Maven 项目时,一切都运行它的工具,方形包变成了一个文件夹。并且 pom.xml 在主项目文件夹中创建。
现在的问题是当我在服务器上运行 index.jsp 时,会显示第一个网页,但是当我按下提交按钮时
HTTP 状态 404 - /square4b/sqr
类型状态报告
消息 /square4b/sqr
描述 请求的资源 (/square4b/sqr) 不可用。
Apache Tomcat/7.0.28
显示。所以在 Eclipse 到 Maven 的转换之间出现了一些问题。我是否遗漏了一个步骤,或者其中一个文档中是否存在导致问题的错误?我已经重复了四次,每次都会出现错误。是因为我缺少 web.xml 文件吗?我知道 Tomcat 7.0 不需要动态 Web 模块 3.0 版