2016-07-25 7 views
0

Ich habe bereits eine kleine Anwendung erstellt, aber ich habe Probleme beim Ausführen eines Stück Code in Tomcat Server 7. Ich möchte eine einfache Anmeldeseite erstellen. Ich habe eine Datenbank mit MySQL erstellt. Mein Formular ist korrekt im Browser erschienen, aber zu dem Zeitpunkt, als ich den Submit Button drücke, erhalte ich einen 404 Fehler. Ich habe Servlets und Jsp verwendet. Ich würde es schätzen, wenn jemand in meinen Code unten schaut.Die Verwendung von Servlets und JSP

LoginKlientiServlet.java:

package prorent.controllers; 
    import java.io.IOException; 
    import java.io.PrintWriter; 
    import java.sql.DriverManager; 
    import java.sql.ResultSet; 
    import java.sql.SQLException; 

import javax.servlet.RequestDispatcher; 
import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
//import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import javax.servlet.http.HttpSession; 

import com.mysql.jdbc.Connection; 
import com.mysql.jdbc.PreparedStatement; 
import java.io.*; 
import javax.servlet.http.*; 
import javax.servlet.*; 
import java.sql.*; 


import prorent.DAO.LoginKlientiDAO; 
//@(name="LoginKlientiServlet", urlPatterns= {"/LoginKlientiServlet"}) 
public class LoginKlientiServlet extends HttpServlet{ 

private static final long serialVersionUID = 1L; 

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    response.setContentType("text/html"); 
    PrintWriter out = response.getWriter(); 
    String user = request.getParameter("username"); 
    String pass = request.getParameter("password"); 
    String repass = request.getParameter("repassword"); 
    try { 
     Class.forName("com.mysql.jdbc.Driver"); 
     Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/pro", "root", "erida"); 
     PreparedStatement pst = (PreparedStatement) conn.prepareStatement("Select username,password, repassword from klienti where username=? and password=? and repassword=?"); 
     pst.setString(1, user); 
     pst.setString(2, pass); 
     pst.setString(2, repass); 
     ResultSet rs = pst.executeQuery(); 
     if (rs.next()) { 
      out.println("Correct login credentials"); 
     } 
     else { 
      out.println("Incorrect login credentials"); 
     } 
    } 
    catch (ClassNotFoundException | SQLException e) { 
     e.printStackTrace(); 
    } 
} 
} 

LoginKlientiDAO.java

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 
<html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Login Application</title> 
</head> 
    <body> 
    <form action="LoginKlientiServlet" method="post"> 
    <fieldset style="width: 300px"> 
     <legend> Login to App </legend> 
     <table> 
      <tr> 
       <td>User ID</td> 
       <td><input type="text" name="username" required="required" /></td> 
      </tr> 
      <tr> 
       <td>Password</td> 
       <td><input type="password" name="password" required="required" /></td> 
      </tr> 
      <tr> 
       <td>Repassword</td> 
       <td><input type="password" name="repassword" required="required" /></td> 
      </tr> 
      <tr> 
       <td><input type="submit" value="Login" /></td> 
      </tr> 
     </table> 
    </fieldset> 
</form> 

web.xml

<?xml version="1.0" encoding="UTF-8"?> 

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee"  xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp" 
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
metadata-complete="true" version="2.5"> 

<display-name>Jap me qera</display-name> 


<servlet> 

    <description /> 

    <display-name>LoginKlientiController</display-name> 

    <servlet-name>LoginKlienti-DAO</servlet-name> 

    <servlet-class>prorent.controllers.LoginKlientiServlet</servlet-class> 

</servlet> 



    <servlet-mapping> 

    <servlet-name>login-lista</servlet-name> 

    <url-pattern>/listalog</url-pattern> 



</servlet-mapping> 

Meine Konsole zeigt diese Fehlermeldung

 Jul 25, 2016 2:48:40 PM org.apache.catalina.core.AprLifecycleListener init 
    INFO: The APR based Apache Tomcat Native library which allows optimal  performance in production environments was not found on the java.library.path: C:\Program Files\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/bin/server;C:/Program Files/bin;C:/Program Files/lib/amd64;C:\Program Files\WinRAR;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files (x86)\Skype\Phone\;C:\Users\USER\AppData\Local\Temp\Rar$EX59.800\eclipse;;. 
    Jul 25, 2016 2:48:40 PM org.apache.tomcat.util.digester.SetPropertiesRule begin 
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:prorent' did not find a matching property. 
Jul 25, 2016 2:48:40 PM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["http-bio-8080"] 
Jul 25, 2016 2:48:40 PM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["ajp-bio-8009"] 
Jul 25, 2016 2:48:40 PM org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 899 ms 
Jul 25, 2016 2:48:40 PM org.apache.catalina.core.StandardService startInternal 
INFO: Starting service Catalina 
Jul 25, 2016 2:48:40 PM org.apache.catalina.core.StandardEngine startInternal 
INFO: Starting Servlet Engine: Apache Tomcat/7.0.47 
Jul 25, 2016 2:48:41 PM org.apache.catalina.util.SessionIdGenerator createSecureRandom 
INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [197] milliseconds. 
Jul 25, 2016 2:48:41 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-bio-8080"] 
Jul 25, 2016 2:48:41 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["ajp-bio-8009"] 
Jul 25, 2016 2:48:41 PM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 1164 ms 

Vielen Dank im Voraus!

Antwort

0

Ihr Formular sendet die Daten an die URL /LoginKlientiServlet, aber Sie haben keine Servlet-Zuordnung für dieses URL-Muster.

Möglicherweise können Sie ein URL-Muster in Ihrem web.xml hinzufügen, wie Sie /listalog haben. Zum Beispiel

<servlet-mapping> 
    <servlet-name>LoginKlienti-DAO</servlet-name> 
    <url-pattern>/LoginKlientiServlet</url-pattern> 
</servlet-mapping> 
0

Ihre Servletzuordnung scheint im Deployment Descriptor (web.xml)

Sie können erfahren Sie mehr darüber, wie abzubilden Ihr Servlet auf die Anwendung here

Richtig, falsch zu sein Code aussehen sollte somethinf wie:

<servlet> 
    <servlet-name>LoginKlienti-DAO</servlet-name> 
    <servlet-path>prorent.controllers.LoginKlientiServlet</servlet-path> 
</servlet> 
<servlet-mapping> 
    <servlet-name>LoginKlienti-DAO</servlet-name> 
    <url-pattern>/LoginKlientiServlet</url-pattern> 
</servlet-mapping> 
+0

ich versuchte es, aber es ändert sich nichts – Elly

+0

scheint – Elly

+0

ein Fehler zu sein, Sie y beheben sollte unser Servlet-Pfad, um auf Ihre Servlet-Klasse zu verweisen. Da ich den Code zur Verfügung gestellt habe, sollte sich Ihr Servlet im Paket 'prorent.controllers' befinden. Wenn es nicht da ist, sollten Sie dies beheben und das richtige Paket auswählen – MaVRoSCy

Verwandte Themen