2014-10-27 3 views
0

Я пытаюсь запустить программу входа в систему forst jsp. Он показывает страницу входа в систему правильно, но когда я утверждаю это дает ошибку:Запрошенный ресурс недоступен. Ошибка JSP-программы

HTTP Status 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'?Кроме того, хотя это может быть полезным упражнением, чтобы узнать, как работают сервлеты, я настоятельно рекомендую не писать их вручную. Для реальных программ используйте фреймворк, такой как Spring MVC, который обрабатывает все детали шаблона для вас. – chrylis

+0

Ничего не происходит. После входа в систему я просто хочу, чтобы он отображался на консоли. – Siddharth

ответ

2

Вы должны поставить web.xml в /WEB-INF, а не в lib.

Кроме того, вам необходимо перезагрузить сервер, чтобы ваши изменения перезагружались и отражались.

+0

Ничего не изменилось. Такая же ошибка. – Siddharth

+0

Я просто попробовал вашу программу на своей машине, и она работает, когда я помещаю web.xml в/WebContent/WEB-INF и дает 404, когда я помещаю его в/lib. Можете ли вы опубликовать свой скриншот структуры каталогов проекта? –

+0

Я запустил затмение, и это сработало. Не знаю, как это исправлено. – Siddharth

1

Измените ваш сервлет отображение

<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

+0

Рассмотрите предложение Кумара также и очистите свой проект и сделайте его – mahesh

-1

По названию класса номенклатуры должно начинаться с заглавной буквы и попытаться изменить в

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

Пользователь:
Pass:

в login.jsp и посмотреть, если это работает

0

Я указал 2-3 вещи в web.xml.

первым поставил web.xml в /WEB-INF не Lib

второй проверки имени сервлета в 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> 
Смежные вопросы