0

我第一次尝试使用 servlet(在业余时间我是一个非常糟糕的 Web 开发人员)。

我创建了一个 servlet,并将它与我的所有其他类(javabean)一起放入一个文件夹中。我放我的课的包叫做牛仔裤。

我创建了一个页面,它在提交时调用 servlet(按下提交按钮后)。

<form action="prova" method="post" id="FormNews" name="FormNews">
//prova is the name of the servlet

我可以看到在 web.xml 中有我的 servlet

   <servlet>
    <description></description>
    <display-name>prova</display-name>
    <servlet-name>prova</servlet-name>
    <servlet-class>prova</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>prova</servlet-name>
    <url-pattern>/prova</url-pattern>
  </servlet-mapping>

但是当我试图在浏览器上查看我的 servlet 时,我得到了这个错误

javax.servlet.ServletException: Wrapper cannot find servlet class prova or a class it depends on
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    java.lang.Thread.run(Unknown Source)

我应该怎么做才能使用 servlet?可能我必须在某个地方设置它的路径......可能 TomCat 看不到我的 servlet 位于 my_web_application_name/jeans 文件夹中

谢谢你们

4

4 回答 4

0

您的课程在课程路径中不可用。确保其可用。如果您放入一个包,请确保您使用包声明对其进行编译。手动复制类文件后,重新启动应用程序服务器。在 Web.xml 中用包名声明类。

您可能需要有关如何编写 servlet 的教程。 http://www.mkyong.com/servlet/a-simple-servlet-example-write-deploy-run/

于 2013-10-14T10:21:17.690 回答
0

您必须将完全限定的class名称放入<servlet-class>

例子 :

  <servlet-class>examples.servlets.HelloWorld</servlet-class>
于 2013-10-14T10:23:05.887 回答
0
The package where i put my classes is called Jeans  

然后你的第一行 servletprova.java

 package jeans; //use small case package name

 public class Prova extends HttpServlet { //see the class name, this is by java naming conventions
 ....
 .......
 }

此外,web.xml

 <servlet>
  <description></description>
  <display-name>Prova</display-name>
  <servlet-name>Prova</servlet-name>
  <servlet-class>jeans.Prova</servlet-class>
 </servlet>
<servlet-mapping>
  <servlet-name>Prova</servlet-name>
  <url-pattern>/Prova</url-pattern>
</servlet-mapping>

有用的链接:

  1. java命名约定
  2. 小服务程序信息
于 2013-10-14T10:28:45.953 回答
0

谢谢大家。我的错误出现在“servlet-class”标签上。

我写 <servlet-class>Prova</servlet-class>

代替

<servlet-class>jeans.Prova</servlet-class>

牛仔裤是我放班级的文件夹。

于 2013-10-14T12:05:24.683 回答