我是Web编程的新手,我正在尝试编写一个简单的应用程序来从输入表单中收集数据,并通过HTTPServletRequest
将其传递给servlet。我知道每个servlet都需要映射到web.xml
内的特定URL。我的web.xml
看起来如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>InputFormTest</display-name>
<welcome-file-list>
<welcome-file>InputForm.jsp</welcome-file>
</welcome-file-list>
<servlet>
<description></description>
<display-name>InputFormTest</display-name>
<servlet-name>InputFormTest</servlet-name>
<servlet-class>com.jsp.core.InputFormTest</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>InputFormTest</servlet-name>
<url-pattern>/InputFormTest</url-pattern>
</servlet-mapping>
</web-app>
InputForm.jsp正确显示。我已经使用Eclipse的上下文菜单添加了InputFormTest servlet,即New - &gt; Servlet,具有以下代码:
package jsp.core;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class InputFormTest
*/
public class InputFormTest extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>InputFormTest</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>User inserted: " + request.getParameter("id") + "</h1>");
out.println("</body>");
out.println("</html>");
}
}
我有两个问题:
首先,在Eclipse中运行应用程序后,我收到以下错误
HTTP状态404 - / InputFormTest
输入状态报告
message / InputFormTest
说明请求的资源不可用。
Apache Tomcat / 6.0.36
其次,更改<url-pattern>/InputFormTest</url-pattern>
中的web.xml
不会影响上述输出,这很奇怪,因为我认为message /InputFormTest
应该反映{{1}内的设置}}
任何提示都表示赞赏。
答案 0 :(得分:5)
这意味着,在使用“Run as - &gt; Run on server”运行新更改的项目后,Eclipse内部浏览器中显示的页面是一个旧的缓存页面。之后需要手动刷新。在Web开发项目中出现奇怪的行为。除此之外,一切正常 - 案件结束。
答案 1 :(得分:0)
右键单击服务器和服务器资源管理器,然后单击“清理”。 尝试再次运行该应用程序。我认为它会奏效。
希望这有帮助。
答案 2 :(得分:0)
只是尝试添加上面的答案:
如果您已清除服务器的缓存并刷新项目,但仍然无法正常工作,请尝试清除您所在的Web浏览器的缓存。这是我必须执行的最后一步,以使我的更新的web xml工作。