我正在尝试使用eclipse和tomcat 7运行一个简单的web应用程序。 我是一个带有文本输入的索引html文件和一个调用servlet的提交按钮。
我创建了一个动态Web项目,并将html(index.html)文件放在WebContent文件夹中。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>title</title>
</head>
<body>
<form action="/TestServ" method="get">
<input type="text" name="input">
<input type="submit" value="Send it!">
</form>
</body>
</html>
我在/ Java Rescources / src下有我的软件包com.testing.web 在我的servlet(TestServ.java)看起来喜欢这个:
@WebServlet("/TestServ")
public class TestServ extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public TestServ() {
super();
// TODO Auto-generated constructor stub
System.out.println("AA%WU^SDJI&^R&KU");
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("AA%WU^SDJI&^R&KU");
}
}
当我选择Run-&gt;在项目服务器上运行时,index.html文件加载就好了。 问题是,当我提交表单时,我得到以下错误页面:
HTTP Status 404 - /TestServ -------------------------------------------------------------------------------- type Status report message /TestServ description The requested resource is not available. -------------------------------------------------------------------------------- Apache Tomcat/7.0.34
我搜索过并搜索过,但找不到可以帮助我的解决方案。 网络上的大多数答案都指向servlet url映射错误。 请注意,我尝试了其中许多无济于事。
此外,我想补充一点,我的服务器配置为在运行时环境oprtion中使用jdk1.7.0_10。
最后,我不明白为什么eclipse在构建项目时不会在WEB-INF下创建正确的类/结构。
我完全被缓和,任何帮助将不胜感激。 非常感谢你提前!
答案 0 :(得分:4)
终于找到了问题,和往常一样,这是最简单的事情。
表单中的操作必须如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>title</title>
</head>
<body>
<form action="/TestProj/TestServ" method="get">
<input type="text" name="input">
<input type="submit" value="Send it!">
</form>
</body>
</html>
和url映射如下:
<servlet>
<servlet-name>TestServ</servlet-name>
<servlet-class>com.testing.web.TestServ</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestServ</servlet-name>
<url-pattern>/TestServ</url-pattern>
</servlet-mapping>
坦率地说,我并不完全理解为什么。不应该/ Testproj被认为是应用程序的根目录吗? :/
总之...
答案 1 :(得分:0)
为了删除404错误,我们必须检查web.xml和您在选项卡中提供的URL。网址应该是这样的 HTTP://&LT; 127.0.0.1:8080&GT; //。如果是webservice应用程序
答案 2 :(得分:0)
您的服务器配置没有任何问题。需要在web.xml文件中进行一些修改。试试吧!
在“<display-name>
”标记和&amp;之间添加这些标记。 “<welcome-file-list>
”标记。
<servlet>
<servlet-name>TestServ</servlet-name>
<servlet-class>TestServ</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestServ</servlet-name>
<url-pattern>/TestServ</url-pattern>
</servlet-mapping>
运行您的项目并在浏览器中输入网址为“http://localhost:8080/TestServ”
P.S。
*您实际上可以在“<servlet-name>
”标记之间使用任何名称。但两地的名字必须相同。