2016-05-13 52 views
0

我有這種形式的聲明在我的JSP頁面:如何包含在JSP頁面的形式發送到Servlet正確

<form name="login" method="post" action="loginServlet"> 

假設的servlet在web.xml文件中已適當聲明;與此模式<url-pattern>/loginServlet</url-pattern>;

servlet包含一個doPost方法。

但是,當按下與登錄表單關聯的按鈕時,服務器會抱怨找不到此servlet。我應該使用什麼樣的路徑才能使其工作?

這是我的項目的文件夾結構:

-Project0 
    -jsppages 
     login.jsp 
    +htmlpages 
    -WEB-INF 
     -classes 
      LogIn.class 

我想有與路徑的問題。我怎麼能解決這個問題。謝謝!

編輯:web.xml文件中包含的正是這種被稱爲我的servlet:

<servlet> 
     <servlet-name>LogInServlet</servlet-name> 
     <servlet-class>LogIn.class</servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>LogInServlet</servlet-name> 
     <url-pattern>/loginServlet</url-pattern> 
    </servlet-mapping> 

解決:

當調用releted的形式作用,有必要走出去的JSP文件夾在我的項目文件夾中使用路徑../loginsServlet,使它變成這樣。

<form name="login" method="post" action="../loginServlet"> 
+0

它是一個錯字,或者是不是真的寫在你的文件嗎? – MedAl

+0

https://docs.oracle.com/cd/E13222_01/wls/docs92/webapp/configureservlet.html請看這個。如果您只使用 – MedAl

+0

'/loginServlet<< - 這是無效的XML – gfelisberto

回答

0

檢查web.xml這是目前在WEB-INF目錄

下面

是樣品

<web-app> 
<display-name>HelloWorld Application</display-name> 
<servlet> 
    <servlet-name>HelloServlet</servlet-name> 
    <servlet-class>SERVLET CLASS NAME WITH PACKE</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>HelloServlet</servlet-name> 
    <url-pattern>/loginServlet</url-pattern> 
</servlet-mapping> 

,改變你的行動值

<form name="login" method="post" action="./loginServlet"> 
0

將其添加到您的web.xml文件中。您的頁面都將映射到Servlet

<servlet> 
    <servlet-name>loginservlet</servlet-name> 
    <servlet-class>package.LogIn</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>loginservlet</servlet-name> 
    <url-pattern>/loginServlet</url-pattern> 

注意: - 請你的類名之前把完整的包名(如com.login.ClassName)。

謝謝