Servlets HTTP状态404-Servlet。。。。不可用
我使用eclise创建如下servlet:Servlets HTTP状态404-Servlet。。。。不可用,servlets,servletexception,Servlets,Servletexception,我使用eclise创建如下servlet: package hello; public class NewServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
package hello;
public class NewServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doPost");
String name = request.getParameter("textField");
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
pw.print("<html><head></head><body><center>");
pw.print("Hello " + name + "!");
pw.print("</center></body></html>");
}
}
我检查了文件夹:WEB-INF或其他任何文件夹,但看不到file.class
这是如何导致的,我如何解决它?需要注册servlet并映射到特定的URL模式,以便能够通过HTTP请求执行它们。给定HTML代码,您似乎希望servlet在
/NewServlet
的URL上侦听
如果您使用的是Tomcat 7,那么只需将@WebServlet
注释放在类上,并使用该URL模式:
@WebServlet("/NewServlet")
public class NewServlet extends HttpServlet {
// ...
}
如果出于某种原因,您仍然使用Tomcat6或更老的版本,那么您需要使用老式的web.xml
方式。一个具体的例子可以在中找到
Eclipse不会在项目浏览器中显示
.class
文件。它将只在导航器中的/build
文件夹中显示它们。但现在不必担心这一点。您应该检查IDE中的web inf文件夹,并将servlet映射到web.xml文件中
<servlet>
<servlet-name>NewServlet</servlet-name>
<servlet-class>NewServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>NewServlet</servlet-name>
<url-pattern>/NewServlet</url-pattern>
</servlet-mapping>
新闻服务
新闻服务
新闻服务
/新闻服务
确保这个映射正确完成,并且您的servlet不在任何包或文件夹中(如果是这样的话),然后在servlet标记中写入类名,后跟。和您的servlet名称
如果问题仍然出现,请确保删除servlet的.class文件,然后重新构建项目。(NetBean有一个选项“清理并构建,然后运行”)没有使用eclipse,但我确信它也有类似的选项。web.xml中的格式应该是这样的
<servlet-name>NewServlet</servlet-name>
<servlet-class>PackageName.JavaClass</servlet-class>
NewServlet
PackageName.JavaClass
你的情况是什么
<servlet-name>NewServlet</servlet-name>
<servlet-class>Hello.NewServlet</servlet-class>
NewServlet
你好,NewServlet
编辑以下内容:
form method=“post”action=“NewServlet”
对此form method=“post”action=“/(您的项目名称)/NewServlet”
我也有同样的问题,这对我很有效问题仍然存在。。。它应该是
packageName.ClassName
。。。在这种情况下,应该是hello.NewServlet
<servlet-name>NewServlet</servlet-name>
<servlet-class>PackageName.JavaClass</servlet-class>
<servlet-name>NewServlet</servlet-name>
<servlet-class>Hello.NewServlet</servlet-class>