404 Not Found (JavaEE, Servlet)



  • Hallo 🙂

    Also: Ich würde gerne meine eigene JavaEE-Anwendung schreiben. Ich nutze Linux Mint und als Server den Glassfish 4. Mein Eclipse ist Oxygen in der EE-Version.

    Ich möchte halt gerade teste, dass sich ein Kunde anmelden kann.

    Hier meine Index-HTML:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8"/>
    	<link rel="stylesheet" href="css/styles.css">
           <title>Onlineshop</title>
        </head>
        <body>
            <header>
                <hgroup>
                <h1 class="title">Onlineshop</h1>
                </hgroup>
                <nav>
                  <a href="index.html">Home</a>
                  <a href="register.html">Registrieren</a>
                  <a href="signin.html">Einloggen</a>
                  <a href="sell.html">Verkaufen</a>
                  <a href="search.html">Suchen</a>
                </nav>
    	</header>
    
    	<footer>
                Copyright 
    	</footer>
        </body>
    </html>
    

    Hier meine Registrierung:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8"/>
    	<link rel="stylesheet" href="css/styles.css">
           <title>Onlineshop</title>
        </head>
        <body>
            <header>
                <hgroup>
                <h1 class="title">Onlineshop</h1>
                </hgroup>
                <nav>
                  <a href="index.html">Home</a>
                  <a href="register.html">Registrieren</a>
                  <a href="signin.html">Einloggen</a>
                  <a href="sell.html">Verkaufen</a>
                  <a href="search.html">Suchen</a>
                </nav>
    	</header>
    	<form action="register" method="post">
    	<fieldset>
    	<legend>Registrieren</legend>
    	<table>
    		<tbody>
    		<tr>
    			<th>
    				<label for="email">Email:</label>
    			</th>
    			<td>
    				<input 
    					type="email" 
    					name="email"
    					size="40"
    					maxlength="40"
    					title="muster@beispiel.de"
    					placeholder="E-Mail eingeben"
    					pattern=".{6,40}" 
    					required="required">
    			</td>
    		</tr>
    		<tr>
    			<th>
    				<label for="password">
    					Password:
    				</label>
    			</th>
    			<td>
    				<input 
    					type="password" 
    					name="password"
    					size="10"
    					maxlength="10"
    					title="6-10 Zeichen"
    					placeholder=
    						"Passwort eingeben"
    					pattern=".{6,10}" 
    					required="required">
    			</td>
    		</tr>
    		<tr>
    			<td/><td>
    				<input type="submit"> 		
    				<input type="reset"> 		
    			</td>
    		</tr>
    	</tbody>
    	</table>
    	</fieldset>
    	</form>
    
    	<footer>
                Copyright 
    	</footer>
        </body>
    </html>
    

    Wenn ich jetzt auf Absenden klicke, soll halt dieses Servlet aufgerufen werden.

    Hier mein Servlet:

    package de.java2enterprise.onlineshop;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet implementation class RegisterServlet
     */
    @WebServlet(urlPatterns = "/register")
    public class RegisterServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    
        /**
         * Default constructor. 
         */
        public RegisterServlet() {
            // TODO Auto-generated constructor stub
        }
    
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) 
    			throws ServletException, IOException {
    
    		response.setContentType("text/html;charset=UTF-8");
    
    		final String email = request.getParameter("email");
    		final String password = request.getParameter("password");
    
    		final PrintWriter out = response.getWriter();
    
    		out.println("<!DOCTYPE html>");
    		out.println("<html>");
    		out.println("<body>");
    		out.println("<br> Ihre Eingaben");
    		out.println("<br> EMail: " + email);
    		out.println("<br> EMail: " + password);
    		out.println("</body>");
    		out.println("</html>");
    
    	}
    
    }
    

    Ich habe keine Web.XML geschrieben, da ich es nur mit den Annotationen machen möchte.
    Nun habe ich 2 Fragen:

    Die Ganzen imports der Servlet-API können nicht aufgelöst werden.
    Warum kann Eclipse nicht die Bibliotheken auflösen? Ich habe als ich das Java-Enterprise-Application-Project angelegt habe diesem das Webproject onlineshop-war zugeordnet. Und dem Java-Enterprise-Application-Project habe ich den Glassfish zugeordnet und dort sind doch die Bibliotheken hinterlegt, oder? D.h. die Verbindung müsste er auflösen können?

    Und die zweite Frage: Warum kann er das Servlet nicht finden? Liegt das vielleicht daran, weil er die Verbindungen nicht auflösen kann?

    Danke! 🙂