2015-08-31 2 views
0

Итак, я создал новый модуль maven. Я использовал «maven-archetype-webapp», чтобы создать его. И когда я делаю обычный текст в index.jsp, он работает нормально. Но я тоже хотел сделать сервлет.Статус HTTP 404 - сервлет jsp

Вскоре я напишу, как я его скрепил. Я щелкнул правой кнопкой мыши на модуле и New-> Servlet. Пакет Java: pl.marek, Имя класса: MyServlet, а затем я выбрал «doPost» и «doGet». А вот как мои файлы выглядеть следующим образом:

index.jsp

<%@page import="java.util.Date"%> 
<%@page import="pl.marek.countriesmapper.reader.*" %> 
<%@page import="pl.marek.countriesmapper.preparer.*" %> 
<%@page import="pl.marek.countriesmapper.country.*" %> 
<%@ page language="java" contentType="text/html; charset=US-ASCII" 
    pageEncoding="US-ASCII"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> 
<title>Hello</title> 
</head> 
<body> 
<form action="MyServlet"> 
    Please enter your Username: <input type="text" name="username" size="20px"> <br> 
    Please enter your Password: <input type="text" name="password" size="20px"> <br><br> 
<input type="submit" value="submit"> 
</form> 
</body> 
</html> 

MyServlet.java

package pl.marek; 
import java.io.IOException; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

/** 
* Servlet implementation class MyServlet 
*/ 
public class MyServlet extends HttpServlet { 
    private static final long serialVersionUID = 1L; 
    /** 
    * @see HttpServlet#HttpServlet() 
    */ 
    public MyServlet() { 
     super(); 
     // TODO Auto-generated constructor stub 
    } 
    /** 
    * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     String username = request.getParameter("username"); 
     String password = request.getParameter("password"); 
     PrintWriter out = response.getWriter(); 
     out.println (
        "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" +" + 
         "http://www.w3.org/TR/html4/loose.dtd\">\n" + 
        "<html> \n" + 
        "<head> \n" + 
         "<meta http-equiv=\"Content-Type\" content=\"text/html; " + 
         "charset=ISO-8859-1\"> \n" + 
         "<title> Crunchify.com JSP Servlet Example </title> \n" + 
        "</head> \n" + 
        "<body> <div align='center'> \n" + 
         "<style= \"font-size=\"12px\" color='black'\"" + "\">" + 
         "Username: " + username + " <br> " + 
         "Password: " + password + 
        "</font></body> \n" + 
        "</html>" 
       );  
     } 
    } 
    /** 
    * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 
     doGet(request, response); 
    } 
} 

web.xml

<!DOCTYPE web-app PUBLIC 
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"http://java.sun.com/dtd/web-app_2_3.dtd" > 

<web-app> 
    <display-name>Archetype Created Web Application</display-name> 
    <servlet> 
     <servlet-name>MyServlet</servlet-name> 
     <display-name>MyServlet</display-name> 
     <description></description> 
     <servlet-class>pl.marek.MyServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>MyServlet</servlet-name> 
     <url-pattern>MyServlet</url-pattern> 
    </servlet-mapping> 
</web-app> 

А вот фото моего проекта:

enter image description here

И когда я нажимаю отправить меня есть адрес: локальный: 8080/WebAplication/MyServlet имя пользователя = test123 & пароль = test321

Но на веб-странице я имеют:

HTTP Status 404 - 

type Status report 

message 

description The requested resource is not available. 
Apache Tomcat/7.0.47 

У кого-то может быть представление о том, что я делаю неправильно? :/

@edit

Я удалил "/" в web.xml и теперь у меня есть это:

HTTP Status 500 - Error instantiating servlet class pl.marek.MyServlet 

Ошибка 500 решена, но я до сих пор статус 404:/

@ edit2

Я сделал то, что написал SaviNuclear и у меня есть еще 404 ошибок:/

@edit 3

Проблема решена. Мне нужно было создать src/java вместо src/resources.

+0

'username = test123 $ password = test321' ?? это должно быть 'username = test123 & password = test321'? –

+0

Да, моя ошибка, потому что я не копировал ее, а писал вручную: P –

+0

Вы также получаете 404, если вы получаете доступ к сервлетам без параметров получения? http: // localhost: 8080/WebAplication/MyServlet – Alex

ответ

0

В вашей форме action preend/чтобы он изменился на/MyServlet.

+0

Я изменил его сейчас, но все еще не работает: / –

0

В вашем сервлете есть ошибка, поэтому, пожалуйста, удалите закрывающий кронштейн } на номер строки 44 и повторно скомпилируйте ваш сервлет, чтобы получить правильный вывод. enter image description here

Смежные вопросы