2014-10-27 215 views
0

我正在嘗試使用我的jsp登錄程序。它正確地顯示了登錄頁面,但是當我提交給了錯誤:請求的資源不可用。 JSP程序錯誤

HTTP狀態404 - /爲userpass /用戶名

類型狀態報告

消息/爲userpass /用戶名

描述請求的資源不可用。

這裏是我的代碼:

username.java 

package sid; 

import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

public class username extends HttpServlet{ 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    { 
     response.setContentType("text/html"); 

     String user=request.getParameter("username"); 
     String pass=request.getParameter("password"); 

     if(user.equals("sid") && pass.equals("hello")) 
     { 
      System.out.println("Welcome"); 
     } 
     else 
     { 
      System.out.println("Invalid username or password"); 
     } 
    } 
} 

user.jsp

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html"> 
<title>Insert title here</title> 
</head> 
<body> 
<h1>Login Page</h1> 
<center> 

<form action="username" method="GET"> <br/> 
User :<input type="text" name="username"> <br/> 
Pass :<input type="password" name="password"> 
<br/><input type="submit" value="Submit"> </form> 
</center> 
</body> 
</html> 

的web.xml

<web-app> 
    <servlet> 
    <servlet-name>login</servlet-name> 
    <servlet-class>sid.username</servlet-class> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>login</servlet-name> 
    <url-pattern>/username/*</url-pattern> 
    </servlet-mapping> 
</web-app> 

我user.jsp代碼在WebContect,和我的web.xml是在WebContent/WEB-INF/lib中。 我正在使用Eclipse Indigo SR2和Apache Tomcat。

+0

爲'/爲userpass /用戶名/ foo'會發生什麼?另外,雖然這可能是學習servlet如何工作的有用練習,但我強烈建議不要手寫它們。對於真實世界的程序,使用Spring MVC之類的框架來處理所有的樣板細節。 – chrylis 2014-10-27 04:53:21

+0

那裏沒有任何反應。登錄後,我只想讓它顯示在控制檯上。 – Siddharth 2014-10-27 04:57:39

回答

2

你應該把你的web.xml/WEB-INF,而不是在lib

此外,您將需要重新啓動服務器以進行更改以重新加載和反映。

+0

沒有任何變化。同樣的錯誤。 – Siddharth 2014-10-27 05:03:25

+0

我剛剛在我的機器上試過你的程序,它在web.xml中放入/ WebContent/WEB-INF,並且當我把它放到/ lib中時,它正在工作。你能發佈你的項目目錄結構的屏幕截圖嗎? – 2014-10-27 05:10:43

+0

我重新啓動了日食,它工作。不知道如何修復它。 – Siddharth 2014-10-27 05:16:20

1

改變你的servlet映射

<servlet-mapping> 
    <servlet-name>login</servlet-name> 
    <url-pattern>/username/*</url-pattern> 
    </servlet-mapping> 

<servlet-mapping> 
    <servlet-name>login</servlet-name> 
    <url-pattern>/username</url-pattern> 
    </servlet-mapping> 
+0

已經完成。沒有什麼變化。 – Siddharth 2014-10-27 05:00:49

+0

考慮庫馬爾的建議,並清理你的項目,並將它 – mahesh 2014-10-27 05:13:17

-1

通過命名類名應以大寫字母開頭,並嘗試改變,因爲

form action="/username" method="GET"> <br/> 

用戶:
通行證:

login.jsp中,看看這是否正常工作

0

我已經指出在web.xml 2-3的事情。

第一web.xml中/WEB-INF沒有LIB

第二檢查servlet名稱在web.xml中。它應該是用戶名而不是登錄

<servlet> 
<servlet-name>username</servlet-name> 
<servlet-class>sid.username</servlet-class> 
</servlet> 

第三改變這種

<servlet-mapping> 
<servlet-name>username</servlet-name> 
<url-pattern>/username</url-pattern> 
</servlet-mapping> 
相關問題