从表单调用servlet但从不调用servlet

时间:2010-02-12 13:45:55

标签: java jsp forms servlets

我试图使用jsp中的以下行调用名为AddClass.java的Servlet

<form method="post" name="addClass" action="AddClass.do">

该类位于 web 包中,文件名为 AddClass.java

在另一个jsp中,从这段代码中调用一个名为SeedSearch的类似servlet(并且一切正常)。

<form method="post" name="seedSearch" action="SeedSearch">

我的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>sempedia</display-name>

<servlet>
  <servlet-name>SeedSearch</servlet-name>
  <servlet-class>web.SeedSearch</servlet-class>
</servlet>
<servlet>
  <servlet-name>AddClass</servlet-name>
  <servlet-class>web.AddClass</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>SeedSearch</servlet-name>
  <url-pattern>/SeedSearch</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AddClass</servlet-name>
<url-pattern>/AddClass.do</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
 </welcome-file-list>

</web-app>

请帮忙。

4 个答案:

答案 0 :(得分:3)

web.xml看起来很好,所以问题出在其他地方。

  1. 网址是完全错误的。必须根据当前请求URL或-if任何HTML <base>标记从其绝对格式中提取相对URL。小心:领先的斜杠将您带到域根!这是必然是正确的解决方案,因为其他人似乎在想,尤其是如果webapp有上下文路径的话。
  2. web.xml中的包/类名与实际的Servlet类不匹配(区分大小写!)
  3. Servlet类不在运行的webproject的类路径中。至少,不是在预期的位置。
  4. Servlet类无法加载/初始化。阅读appserver日志以获取异常/错误详细信息。
  5. web.xml实际上有更多内容,例如另一个吃*.do并获得优先权的servlet。
  6. 您没有使用您认为的特定web.xml运行webproject。双重,重建,重新部署和重新启动。

答案 1 :(得分:1)

您对SeedSearch的调用中没有前导'/'。

答案 2 :(得分:1)

也许你在其他地方映射“* .do”(struts可能是?),你的servlet永远不会被调用。

答案 3 :(得分:0)

enter image description here

2个servlet:KK是默认或正常方式; LL是一个自定义包。 在web.xml中,LL必须具有完全限定名称不仅用于类,还必须用于servlet名称。

enter image description here

从html调用每个servlet对于两者都是相同的:      要么 不需要任何资格