我正在使用Eclipse Indigo我安装了 Maven 插件。
我有一个名为squarefour的Eclipse项目
新建项目>网络>动态网页项目
目标运行时:apache Tomcat v7.0
动态网页模块版本:3.0
配置:Apace Tomcat v7.0 的默认配置
完成
Java resources->src->square[a package]->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>
然后我也在使用Tomcat 7.0当我在服务器上运行索引.jsp时。我可以输入我的号码,按下按钮,然后加载第二页,显示平方数字(或错误消息)。
但是当我右键单击该项目并配置> Maven 项目时一切都运行其工具,方形包成为一个文件夹。和 pom.xml 在主项目文件夹中创建。
现在的问题是当我在服务器上运行 index.jsp 时,会显示第一个网页,但是当我按下"提交"按钮时
HTTP Status 404 -/square4b/sqr
类型 状态报告
消息/square4b/sqr
说明 请求的资源 (/square4b/sqr) 不可用。
阿帕奇雄猫/7.0.28
显示。因此,在Eclipse到Maven转换之间出现了一些中断。我是否缺少一个步骤,或者其中一个文档中是否存在导致问题的错误?我已经重复了四次,每次都重现错误。是因为我缺少网络.xml文件吗?我知道 Tomcat 7.0 不需要动态 Web 模块版本 3.0
从动态 Web 项目转换为 Maven 项目时,需要将打包从 .jar 更改为 .pom