2014-11-06 38 views
-1

我是Servlets的新手。 我用2個jsp文件做了一個簡單的項目。和兩個Servlers jsp1,jsp2,servlet1和servlet2。項目中的第二個servlet無法正常工作

當兩者的JSP代碼body標籤是這樣的(這兩個點servlet1)

<form method="post" action="servlet1"> 
<input type="submit"> 
</form>` 

,並有一個簡單的系統輸出的servlet的doPost方法..

它完美罰款在這種情況下。

但是,當我使第二個jsp調用servlet2。它不起作用。它給了我這個錯誤屏幕

HTTP狀態404 - /項目/ servlet2 型狀態報告 消息/項目/ servlet2 描述所請求的資源(/項目/ servlet2)不可用。 Apache Tomcat/6.0.26

因此我們不能在同一個項目中使用兩個不同的servlet嗎?

編輯:

這是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>Project</display-name> 
    <welcome-file-list> 
    <welcome-file>jsp1.jsp</welcome-file> 
    </welcome-file-list> 
    <servlet> 
    <description></description> 
    <display-name>servler1</display-name> 
    <servlet-name>servler1</servlet-name> 
    <servlet-class>servler1</servlet-class> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>servler1</servlet-name> 
    <url-pattern>/servler1</url-pattern> 
    </servlet-mapping> 
    <servlet> 
    <description></description> 
    <display-name>servler2</display-name> 
    <servlet-name>servler2</servlet-name> 
    <servlet-class>servler2</servlet-class> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>servler2</servlet-name> 
    <url-pattern>/servler2</url-pattern> 
    </servlet-mapping> 
</web-app> 

'

+1

您是否在web.xml中添加了條目 – kirti 2014-11-06 07:34:38

+1

是的,您可以。代碼和映射在哪裏? – 2014-11-06 07:34:38

+0

請檢查問題。我剛剛使用web.xml內容進行編輯。我想,映射都很好。 – Napstablook 2014-11-06 07:43:11

回答

0

我同意@San Krish的回答。但更多的解釋。

至於你說:

項目第二個servlet不能正常工作。

你需要每一個在Servlet web.xml文件映射像你映射第一個servlet。

編輯:

從你編輯的問題。您在web.xml文件中使用servler1,但在jsp中使用servlet1,所以這是主要問題。所以在你的jsp文件中使用servler1

如:

<form method="post" action="servler1"> 
    <input type="submit"> 
</form>` 

EDITED1: 有可能是另一個原因。

如果你的第二個servlet在包內,你必須在web.xml中包含包名。假設你的第二個servlet servlet2.javacom.myproject.test包內,你需要在web.xml文件中像下面這樣做。

<servlet> 
    <description></description> 
    <display-name>servler2</display-name> 
    <servlet-name>servler2</servlet-name> 
    <servlet-class>com.myproject.test.servlet2</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>servler2</servlet-name> 
    <url-pattern>/servler2</url-pattern> 
</servlet-mapping> 
+0

對不起,這只是一個錯誤的問題。它也是JSP中的「servler1」。 – Napstablook 2014-11-06 07:45:01

2

您可能沒有映射在WEB.XML的第二個servlet。檢查進入其他創建自己喜歡,

<servlet> 
    <servlet-name>Second</servlet-name> 
    <servlet-class>path.SecondServlet</servlet-class> 
    <load-on-startup>2</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Second</servlet-name> 
    <url-pattern>/SecondServlet</url-pattern> 
</servlet-mapping> 

檢查什麼Oracle配置您的web.xml

又看了我的回答對這個How to map a servlet call from a JSP page using form action?

更新前說:

你2.jsp應該將action屬性映射爲,

<form action="./servler2" method="post"> 
+0

我用web.xml內容更新了問題。正如你所看到的,映射很好。 – Napstablook 2014-11-06 07:41:34

+0

你可以在你的回答中顯示你正在調用第二個servlet.check的jsp到我的更新 – 2014-11-06 07:42:36

相關問題