Servlet läuft in Eclipse, aber nicht im Browser

Dimax

Top Contributor
Leute ich habe ein jsp Servlet mit multipart/form-data und post Methode.Das Programm soll aus dem textfile verschiedene Programme in die Datenbank eintragen.Das funktioniert einwandfrei unter Eclipse auf tomcat 8.5 Server.Wenn ich aber dieses Programm im Browser ausführe (deployed auch auf dem tomcat 8.5) reagiert das irgendwie nicht.Das Programm öffnet sich ,ein Textfile lässt sich auswählen wenn ich aber auf hinzufügen drücke reagiert das nicht.Es gibt keine Fehlermeldung und ich sehe dass irgendwas gesendet wird,aber dann bleibt es so wie es war.Habe auch mit glassfish 5 ausprobiert,ist dasselbe.Woran kann es wohl liegen?.Danke im voraus.
 

Flown

Administrator
Mitarbeiter
Da hilft nur Profiling und Debugging. Wenn beide Server das nicht machen, liegts mit ziemlicher Sicherheit an deiner Implementierung.
 

Dimax

Top Contributor
tomcat 8.5 in eclipse integrierter server macht aber alles was man braucht nur über den browser will er nicht..wo ist den unterschied?
 

Flown

Administrator
Mitarbeiter
Was soll ich jetzt, deiner Meinung nach, dazu sagen? Ich kann dir nur eine generische Lösung zu deinem generischen Problem liefern.
 

Dimax

Top Contributor
Es ist zum Lachen))) Das Programm lief..nur halt zu lange..man sollte abwarten)))..ok hat sich erledigt..danke
 

Dimax

Top Contributor
Der Unterschied war :Eclipse hat die Consolen Ausgabe..Der Browser nur die out,,naja 602 Programme einzulesen dauert halt..aber Fazit Microsoft Edge Browser hat es um einiges schneller gemacht)
 

mihe7

Top Contributor
Der Unterschied war :Eclipse hat die Consolen Ausgabe..Der Browser nur die out,,naja 602 Programme einzulesen dauert halt..aber Fazit Microsoft Edge Browser hat es um einiges schneller gemacht)

Ich weiß zwar nicht, welche Datenmengen Du da einliest, aber 602 Datensätze hören sich für mich jetzt nicht danach an, dass man darauf warten müsste.
 

Dimax

Top Contributor
Leute,ich habe so eine Aussage gefunden:"Zu beachten ist jetzt lediglich, dass die Verarbeitung von sehr großen Strings in Java ineffektiv sein kann, insbesondere wenn Sie mit String-Konkatenationen arbeiten werden. Wenn Performance wichtig ist, kann es nachteilig sein, eine Datei in einen String zu lesen"-was gibts da sonst für Alternativen?
 

Dimax

Top Contributor
Code:
<td width=40%><h2>SAS Base Code Analyse</h2></td>
<td width=30%><img src="../images/cth_logo.png" align="right" height="75px"></td></tr>
</table></div>
<br /><br /><br /><br />
<p align=center><b><span style="font-size:11pt; font-weight:bold;">W&auml;hlen Sie eine Datei mit Programmen aus</span></b><br></p>
<FORM ENCTYPE="multipart/form-data" ACTION="Programmehinzufuegen.jsp"
    METHOD=POST>

    <table border="0" align="center" rules="groups" cellspacing="11">
        <tbody>

            <tr>
                <td align="right">Source-Datei: </td>
                <td align="left"><INPUT NAME="file" TYPE="file" class="file"></td>
            </tr>
            <tr><td></td></tr>
            <tr><td></td></tr>
            <tr>
                <td align="right">Projekt ID: </td>
                <td align="left"><select name="SelectDropDown" size=1 class="standard">
                        <option value=''></option>
                        <%
                            String[][] Projekte2 = AuswahlAusMYSQL.ErmittlungDerProjekte();
                            String[] Projekt_IDs = new String[Projekte2.length];
                            for (int i = 0; i < Projekte2.length;) {
                                ++i;
                                out.print("<option value=\"" + i + "\">" + Projekte2[i - 1][1] + " " + Projekte2[i - 1][0]
                                        + "</option>");
                                Projekt_IDs[i - 1] = Projekte2[i - 1][1];

                            }
                        %>

                </select></td>
            </tr>
            <tr><td></td></tr>
            <tr><td></td></tr>
            <tr>
                <td></td>
                <td align="left"><b><INPUT TYPE="submit" VALUE="hinzuf&uuml;gen"></b></td>
                <td></td>
                <td></td>
            </tr>
           
            <tr>
                <td></td>
                <td align="right"><a href="Projektorganisation.jsp"><b><input type="button" name="zurueck" value="Zur&uuml;ck"></input></b></a>
                <td></td>
        </tbody>
    </table>



</FORM>
<div class="footer"></div>

<%

    String contentType = request.getContentType();

    if ((contentType != null)
            && (contentType.indexOf("multipart/form-data") >= 0)) {
       
       
           
       
        DataInputStream in = new DataInputStream(
                request.getInputStream());
       
        int formDataLength = request.getContentLength();
        byte dataBytes[] = new byte[formDataLength];
        int byteRead = 0;
        int totalBytesRead = 0;

        while (totalBytesRead < formDataLength) {
            byteRead = in.read(dataBytes, totalBytesRead,
                    formDataLength);
            totalBytesRead += byteRead;
        }
         
        String Projekt_ID = null;
        String file = new String(dataBytes);
        int projekt_id_int = 0;
        int programm_id_int = 0;
        String ProgrammBeschreibung = "";
        String ProjektBeschreibung = "";
        String textfile = "";
       
       
       
        //System.out.println("file.indexOf(\"name=\"SelectDropDown\") = "
        //        + file.indexOf("name=\"SelectDropDown\""));

       
        if (file.indexOf("name=\"SelectDropDown\"") != -1) {
            String Ausgewaehlt = file.substring(
                    file.indexOf("name=\"SelectDropDown\"") + 22,
                    file.indexOf("name=\"SelectDropDown\"") + 26);

            /*System.out.println("Projekt Ausgewaehlt = |" + Ausgewaehlt
                    + "|");*/

            Projekt_ID = Projekte2[Integer.parseInt(Ausgewaehlt.trim()) - 1][1];
            ProjektBeschreibung = Projekte2[Integer.parseInt(Ausgewaehlt.trim()) - 1][0];
            projekt_id_int = Integer.parseInt(Projekt_ID.trim());
            /* */
       
            int PROGname = file.indexOf("name=\"file\"");
           
            String progName=file.substring(PROGname+23,file.indexOf("\"",PROGname+23));
            System.out.println(progName);
           
                       
                        String FlagImProgramm="ADD ";
                        String Datei="";
                        String FileName="";
                        int flagCounter=0;
                        try {                       
                            String data =new String (dataBytes)    ;                       
                           
                                 System.out.println("Halo "+data.length());
                               
                                        for(int b=0;b<=(data.length()-4);b++){
                                       
                                            String     tempFlag=data.substring(b,b+4); // Zusammengefügtes String zum Vergleich
                                           
                                                if(tempFlag.equals(FlagImProgramm)){
                                                   
                                                    flagCounter++;
                                                
                                                   
                                                    String tempData=data.substring(0,b); //Zwwieschenspeichern eines Programmabschnittes
                                                    data=data.substring(b, data.length());//Ausschneiden gefundene Programme aus Datei
                                                   
                                                    try {       
                                                        if (tempData.startsWith(FlagImProgramm)) {
                                                       
                                                        FileName=tempData.substring(11,19)+".txt";
                                                        ProgrammBeschreibung=tempData.substring(11,19);
                                                        File fileT=new File(FileName);
                                                        FileWriter fw=new FileWriter(fileT);
                                                        fw.write(tempData);
                                                        fw.close();
                                                                                                       
                                                        String sDbDrv = MYSQLparameter.getDriver();
                                                        String sDbUrl = MYSQLparameter.getURL();
                                                        String sUsr = MYSQLparameter.getUser();
                                                        String sPwd = MYSQLparameter.getPassword();
                                                        Connection myConnection = null;
                                                        PreparedStatement myStatement = null;
                                       
                                           
                                                        String sSql = "SELECT max(programm_id) + 1 FROM sasco.programm";
                                                        Connection cn = null;
                                                        Statement st = null;
                                                        ResultSet rs = null;
                                                       
                                                        try {
                                                                Class.forName(sDbDrv);
                                                                cn = DriverManager.getConnection(sDbUrl, sUsr, sPwd);
                                                                st = cn.createStatement();
                                                                rs = st.executeQuery(sSql);
                                                                programm_id_int = 1;
                                                            while (rs.next()) {
                                                                programm_id_int = Integer.parseInt(rs.getString(1).trim());
                                                            }cn.close();myConnection.close();
                                                        } catch (Exception ex) {/* ok */}
                           
                                    }

                                        String Datenbank = "sasco";       

                                        if (projekt_id_int != 0 && programm_id_int != 0 ) {
                                           
                                            //System.out.println("========== Analyse der Text-Datei (SAS Source Code) =========");
                                            boolean GesamtErgebniss = true;
                                            boolean Ergebniss = false;
                                            Ergebniss = SpeicherungInMYSQL.SpeicherungDesProgramms(Datenbank,
                                                    projekt_id_int, programm_id_int, ProgrammBeschreibung);
                                            if (Ergebniss == false){
                                                out.println("ACHTUNG: Fehler beim Speichern des Programms: "+ ProgrammBeschreibung);
                                                GesamtErgebniss = false;
                                                }

                                            String[][] Werte = Analyse.ZeilenBestimmen(tempData);

                                            String OHNEKom1 = Analyse.EntferneKommentarTyp1(tempData);

                                            Ergebniss=SpeicherungInMYSQL.SpeicherungDerZeilen(Datenbank,
                                                    projekt_id_int, programm_id_int, Werte);
                                            if (Ergebniss == false){
                                                out.println("ACHTUNG: Fehler beim Speichern der Zeilen: " + ProgrammBeschreibung);
                                                GesamtErgebniss = false;
                                                }
                                            else {
                                                String[][] OHNEKom2 = Analyse
                                                        .EntfernungVonKommentarVomTyp2(OHNEKom1, Werte);
                                   
                                                int AnzahlDerStatements = Werte.length;
                                   
                                                Ergebniss=SpeicherungInMYSQL.SpeicherungVonStatements(Datenbank,
                                                        projekt_id_int, programm_id_int, OHNEKom2);
                                                if (Ergebniss == false){
                                                    out.println("ACHTUNG: Fehler beim Speichern der Statements: "+ProgrammBeschreibung );
                                                    GesamtErgebniss = false;
                                                    }
                                                else {
                                   
                                                    String[][] KommentarVonTyp1 = Analyse.EntferneCodeUndTyp2(
                                                            tempData, Werte);
                                                   
                                                    Ergebniss=SpeicherungInMYSQL.SpeicherungKommentarVonTyp1(Datenbank,
                                                            projekt_id_int, programm_id_int, KommentarVonTyp1);
                                                    if (Ergebniss == false){
                                                        out.println("ACHTUNG: Fehler beim Speichern der Kommentare vom Typ 1: "+ProgrammBeschreibung );
                                                        GesamtErgebniss = false;
                                                        }
                                       
                                                    String[][] KommentarVonTyp2 = Analyse
                                                            .ErmittlungderKommentareVomTyp2(OHNEKom1, Werte);
                                       
                                                    Ergebniss=SpeicherungInMYSQL.SpeicherungKommentarVonTyp2(Datenbank,
                                                            projekt_id_int, programm_id_int, KommentarVonTyp2);
                                                    if (Ergebniss == false){
                                                        out.println("ACHTUNG: Fehler beim Speichern der Kommentare vom Typ 2: " +ProgrammBeschreibung);
                                                        GesamtErgebniss = false;
                                                        }
                /*************************************************************************************************************/                                   
                                                    try{
                                                    String[][] tokenstabelle = Analyse.BildungderTokens(
                                                            OHNEKom1, Werte);
                                                    Ergebniss=SpeicherungInMYSQL.SpeicherungDerTokens(Datenbank,
                                                            projekt_id_int, programm_id_int, tokenstabelle);
                                                    }catch(ArrayIndexOutOfBoundsException e){e.getLocalizedMessage();}
                                                   
                                                    if (Ergebniss == false){
                                                        out.println("ACHTUNG: Fehler beim Speichern der Token: " +ProgrammBeschreibung);
                                                        GesamtErgebniss = false;
                                                        }
                                                    else {
                                                        Ergebniss=SpeicherungInMYSQL.AufrufenderProzeduren(Datenbank,
                                                                projekt_id_int, programm_id_int);
                                                        if (Ergebniss == false){
                                                            out.println("ACHTUNG: Fehler beim Ausführen der Prozeduren:" +ProgrammBeschreibung);
                                                            GesamtErgebniss = false;
                                                            }
                                                    }
                                                }
                                            }
                                       
                                            /*if (GesamtErgebniss == true){
                                                out.println("Das Programm '" + ProgrammBeschreibung
                                                            + "' wurde dem Projekt '" + ProjektBeschreibung + "' hinzugef&uuml;gt" );
                                               
                                           
                                                }*/
                                                        System.out.println("Erstellt-----"+FileName);
                                                        b=0;
                                                        tempData="";
                                               
                                                   
                                                        }
                                                    } catch(StringIndexOutOfBoundsException e){System.out.println("Datei zu klein: "+ProgrammBeschreibung);}                           
                                                }
                                            }
                                        // Zum Schlüss gebliebene Inhalte Speichern
                                            FileName=data.substring(11, 19)+".txt";
                                            ProgrammBeschreibung=data.substring(11,19);
                                            File lastFile=new File(FileName);
                                            FileWriter fw=new FileWriter(lastFile);
                                            fw.write(data);
                                            fw.close();   
                                           
                                            String sDbDrv = MYSQLparameter.getDriver();
                                            String sDbUrl = MYSQLparameter.getURL();
                                            String sUsr = MYSQLparameter.getUser();
                                            String sPwd = MYSQLparameter.getPassword();
                                            Connection myConnection = null;
                                            PreparedStatement myStatement = null;
                           
                               
                                            String sSql = "SELECT max(programm_id) + 1 FROM sasco.programm";
                                            Connection cn = null;
                                            Statement st = null;
                                            ResultSet rs = null;
                                           
                                            try {
                                                    Class.forName(sDbDrv);
                                                    cn = DriverManager.getConnection(sDbUrl, sUsr, sPwd);
                                                    st = cn.createStatement();
                                                    rs = st.executeQuery(sSql);
                                                    programm_id_int = 1;
                                                while (rs.next()) {
                                                    programm_id_int = Integer.parseInt(rs.getString(1).trim());
                                                }myConnection.close();
                                                cn.close();
                                            } catch (Exception ex) {/* ok */}
                                                /*System.out.println("ProgrammID = |"
                                                    + programm_id_int + "|");*/
                            String Datenbank = "sasco";       

                            if (projekt_id_int != 0 && programm_id_int != 0 ) {
                               
                                //System.out.println("========== Analyse der Text-Datei (SAS Source Code) =========");
                                boolean GesamtErgebniss = true;
                                boolean Ergebniss = false;
                                Ergebniss = SpeicherungInMYSQL.SpeicherungDesProgramms(Datenbank,
                                        projekt_id_int, programm_id_int, ProgrammBeschreibung);
                                if (Ergebniss == false){
                                    System.out.println("ACHTUNG: Fehler beim Speichern des Programms: " +ProgrammBeschreibung);
                                    GesamtErgebniss = false;
                                    }

                                String[][] Werte = Analyse.ZeilenBestimmen(data);

                                String OHNEKom1 = Analyse.EntferneKommentarTyp1(data);

                                Ergebniss=SpeicherungInMYSQL.SpeicherungDerZeilen(Datenbank,
                                        projekt_id_int, programm_id_int, Werte);
                                if (Ergebniss == false){
                                    System.out.println("ACHTUNG: Fehler beim Speichern der Zeilen: " +ProgrammBeschreibung);
                                    GesamtErgebniss = false;
                                    }
                                else {
                                    String[][] OHNEKom2 = Analyse
                                            .EntfernungVonKommentarVomTyp2(OHNEKom1, Werte);
                       
                                    int AnzahlDerStatements = Werte.length;
                       
                                    Ergebniss=SpeicherungInMYSQL.SpeicherungVonStatements(Datenbank,
                                            projekt_id_int, programm_id_int, OHNEKom2);
                                    if (Ergebniss == false){
                                        System.out.println("ACHTUNG: Fehler beim Speichern der Statements: "+ProgrammBeschreibung );
                                        GesamtErgebniss = false;
                                        }
                                    else {
                       
                                        String[][] KommentarVonTyp1 = Analyse.EntferneCodeUndTyp2(
                                                data, Werte);
                                       
                                        Ergebniss=SpeicherungInMYSQL.SpeicherungKommentarVonTyp1(Datenbank,
                                                projekt_id_int, programm_id_int, KommentarVonTyp1);
                                        if (Ergebniss == false){
                                            System.out.println("ACHTUNG: Fehler beim Speichern der Kommentare vom Typ 1: "+ProgrammBeschreibung );
                                            GesamtErgebniss = false;
                                            }
                           
                                        String[][] KommentarVonTyp2 = Analyse
                                                .ErmittlungderKommentareVomTyp2(OHNEKom1, Werte);
                           
                                        Ergebniss=SpeicherungInMYSQL.SpeicherungKommentarVonTyp2(Datenbank,
                                                projekt_id_int, programm_id_int, KommentarVonTyp2);
                                        if (Ergebniss == false){
                                            System.out.println("ACHTUNG: Fehler beim Speichern der Kommentare vom Typ 2: "+ProgrammBeschreibung );
                                            GesamtErgebniss = false;
                                            }
                                        String[][] tokenstabelle = Analyse.BildungderTokens(
                                                OHNEKom1, Werte);
                                        Ergebniss=SpeicherungInMYSQL.SpeicherungDerTokens(Datenbank,
                                                projekt_id_int, programm_id_int, tokenstabelle);
                                        if (Ergebniss == false){
                                            System.out.println("ACHTUNG: Fehler beim Speichern der Token: "+ProgrammBeschreibung );
                                            GesamtErgebniss = false;
                                            }
                                        else {
                                            Ergebniss=SpeicherungInMYSQL.AufrufenderProzeduren(Datenbank,
                                                    projekt_id_int, programm_id_int);
                                            if (Ergebniss == false){
                                                System.out.println("ACHTUNG: Fehler beim Ausführen der Prozeduren: " +ProgrammBeschreibung);
                                                GesamtErgebniss = false;
                                                }
                                        }
                                    }
                                }
                           
                                /*if (GesamtErgebniss == true){
                                    out.println("Das Programm '" + ProgrammBeschreibung
                                                + "' wurde dem Projekt '" + ProjektBeschreibung + "' hinzugef&uuml;gt" );
                                   
                               
                                    }*/System.out.println("Erstellt-letztes----"+FileName);data="";   
                                }
                            }catch(IOException e) {System.out.println(e.getMessage());}
        }
}
       
       
    //}
%>
</body>
</html>
 

mihe7

Top Contributor
Kann man da irgendwas verbessern?

Die Frage wäre eher: kann man da irgendwas so lassen? :) SCNR.

Ich würe den Code erstmal aus der JSP rausnehmen, rein in wenigstens ein Klasse und mit Methoden strukturieren. BTW: Variablenbezeichner und Methodennamen schreibt man in Java per Konvention klein.

Unabhängig davon: wenn ich es richtig sehe, "suchst" Du für jedes Programm die DB-Treiber-Klasse, öffnest eine Connection, lässt jedesmal ein SQL-Statement übersetzen usw. Mach das vor der Schleife (PreparedStatement).

Falls das Einfügen von Programmen bzw. ihren Zeilen parallel funktionieren soll (z. B. mehr als ein Upload gleichzeitig), kannst Du das mit "SELECT max" vergessen, um die nächste ID zu ermitteln.

Du unterdrückst an manchen Stellen Exceptions komplett "{}" -> keine gute Idee. Du solltest Dir wenigstens den Stack-Trace ausgeben lassen. Im catch-Block nur "e.getLocalizedMessage();" zu schreiben, bringt es auch nicht wirklich. Du musst die Message schon auch irgendwo ausgeben. Warum Du eine ArrayIndexOutOfBoundsException abfängst, weiß ich auch nicht. Wenn die auftritt, deutet das in der Regel auf einen Bug hin. Der wird nicht dadurch gefixt, dass man die Exception abfängt ;-)

Zum Thema "if (Ergebniss == false)" zwei Dinge: das Ergebnis ist bereits ein boolescher Ausdruck, d. h. Du willst "if (!Ergebniss)" und zweitens sollte das Ergebnis ja nur ausnahmsweise false sein, oder? Dann bieten sich Exceptions an und Du sparst Dir die ewigen if-Abfragen.

Zum Thema Performance: es gibt die Möglichkeit von Batch-Inserts (PreparedStatement#addBatch). Es würde sich anbieten, die ca. 300 Zeilen/Programm in einem Rutsch einzufügen.

Sollte für's erste genügen.
 

mihe7

Top Contributor
Was ich noch vergessen habe, dazu zu schreiben: schalte autocommit ab. Du kannst den commit z. B. nach jedem (x.) Programm ausführen.
 

Dimax

Top Contributor
Danke mihe7 für deine Tipps.Jetzt habe ich was zu Tun)).Melde mich mit upgedrehtem Code zurück.
Zu Browsern Problemmen hab rausgefunden das manche von dennen Problemme mit
String data =new String (Files.readAllBytes(Paths.get(progName))) haben.
 

Dimax

Top Contributor
Ich meine dass ich progName aus dem request auslese und das wird wahrscheinlich unterschiedlich aufgebaut.Wenn ich es richtig verstehe.
 

mihe7

Top Contributor
Ja. Wenn ich mich recht erinnere, dann gibt IE den kompletten Pfad mit, während andere nur den Dateinamen übermitteln.
 

Dimax

Top Contributor
Wie oben versprochen hab mein code ein wenig modifiziert.D.h Kritik wird erwünscht)
Java:
<p align=center><b><span style="font-size:11pt; font-weight:bold;">W&auml;hlen Sie eine Datei mit Programmen aus</span></b><br></p>
<FORM ENCTYPE="multipart/form-data" ACTION="Programmehinzufuegen.jsp"
    METHOD=POST>
    <table border="0" align="center" rules="groups" cellspacing="11">
        <tbody>
            <tr>
                <td align="right">Source-Datei: </td>
                <td align="left"><INPUT NAME="file" TYPE="file" class="file"></td>
            </tr>
            <tr><td></td></tr>
            <tr><td></td></tr>
            <tr>
                <td align="right">Projekt ID: </td>
                <td align="left"><select name="SelectDropDown" size=1 class="standard">
                        <option value=''></option>
                        <%
                            String[][] Projekte2 = AuswahlAusMYSQL.ErmittlungDerProjekte();
                            String[] Projekt_IDs = new String[Projekte2.length];
                            for (int i = 0; i < Projekte2.length;) {
                                ++i;
                                out.print("<option value=\"" + i + "\">" + Projekte2[i - 1][1] + " " + Projekte2[i - 1][0]
                                        + "</option>");
                                Projekt_IDs[i - 1] = Projekte2[i - 1][1];
                            }
                        %>
                </select></td>
            </tr>
            <tr><td></td></tr>
            <tr><td></td></tr>
            <tr>
                <td></td>
                <td align="left"><b><INPUT TYPE="submit" VALUE="hinzuf&uuml;gen"></b></td>
                <td></td>
                <td></td>
            </tr>           
            <tr>
                <td></td>
                <td align="right"><a href="Projektorganisation.jsp"><b><input type="button" name="zurueck" value="Zur&uuml;ck"></input></b></a>
                <td></td>
            </tr>
        </tbody>
    </table>
</FORM>

<%
    String contentType = request.getContentType();

    if ((contentType != null)
            && (contentType.indexOf("multipart/form-data") >= 0)) {

        DataInputStream in = new DataInputStream(
                request.getInputStream());     
        int formDataLength = request.getContentLength();
        byte dataBytes[] = new byte[formDataLength];
        int byteRead = 0;
        int totalBytesRead = 0;

        while (totalBytesRead < formDataLength) {
            byteRead = in.read(dataBytes, totalBytesRead,
                    formDataLength);
            totalBytesRead += byteRead;
        }in.close();
        boolean GesamtErgebniss = true;
        int projekt_id_int = 0;
        int programm_id_int = 0;
        String Projekt_ID = null;
        String file = new String(dataBytes);
        String ProgrammBeschreibung = "";
        String ProjektBeschreibung = "";
        String textfile = "";
        String Datenbank = "sasco";   
       
        Statement st = null;
        Statement st1 =null;
        ResultSet rs = null;
        ResultSet rs1 =null;
       
        if (file.indexOf("name=\"SelectDropDown\"") != -1) {
            String Ausgewaehlt = file.substring(
                    file.indexOf("name=\"SelectDropDown\"") + 22,
                    file.indexOf("name=\"SelectDropDown\"") + 26);

            Projekt_ID = Projekte2[Integer.parseInt(Ausgewaehlt.trim()) - 1][1];
            ProjektBeschreibung = Projekte2[Integer.parseInt(Ausgewaehlt.trim()) - 1][0];
            projekt_id_int = Integer.parseInt(Projekt_ID.trim());
            int PROGname = file.indexOf("name=\"file\"");
            String progName=file.substring(PROGname+23,file.indexOf("\"",PROGname+23));
            System.out.println(progName);                                   
            String FlagImProgramm="ADD ";
            String Datei="";
            String FileName="";
            String sSql = "SELECT max(programm_id) + 1 FROM sasco.programm";
                        try (Connection cn=MYSQLparameter.eureVerbindungMeinHerr();){
                           
                            String data =new String (dataBytes)    ;
                            String tempData=new String("");
                            System.out.println("Datei enthält "+data.length()+" Zeichen");
   
                                        for(int b=0;b<(data.length()-7);b++){
                                           
                                            String     tempFlag=data.substring(b,b+4);
               
                                                if(tempFlag.equals(FlagImProgramm)){                                                                                                   
                                                    if(data.indexOf("ADD ",b+4)!=-1){
                                                        tempData=data.substring(data.indexOf("ADD ",b),data.indexOf("ADD ",b+4));
                                                       
                                                        b=data.indexOf("ADD ",b+4)-6;
                                                       
                                                    }
                                                    else if(data.lastIndexOf("%MEND")!=-1){
                                                       
                                                        tempData=data.substring(data.indexOf("ADD ",b),data.lastIndexOf("%MEND")+7);
                                                       
                                                      }
                                                        else{
                                                           
                                                            tempData=data.substring(data.indexOf("ADD "),data.lastIndexOf("RUN;")+6);
                                                           
                                                        }
                                                    try {       
                                                                                                                                           
                                                        FileName=tempData.substring(11,19)+".txt";
                                                        ProgrammBeschreibung=tempData.substring(11,19);
                                                        File fileT=new File(FileName);
                                                        FileWriter fw=new FileWriter(fileT);
                                                        fw.write(tempData);
                                                        fw.close();                                                                                                                                                                                                                                                              
                                                        try {                                                               
                                                                st = cn.createStatement();
                                                                rs = st.executeQuery(sSql);
                                                                programm_id_int = 1;
                                                            while (rs.next()) {
                                                                programm_id_int = Integer.parseInt(rs.getString(1).trim());
                                                            }
                                                        } catch (Exception ex) {ex.getStackTrace();}                           
                                                                           
                                        if (projekt_id_int != 0 && programm_id_int != 0 ) {
                                                                                                               
                                            boolean Ergebniss = false;                                                                                   
                                                   
                                            Ergebniss = SpeicherungInMYSQL.SpeicherungDesProgramms(Datenbank,
                                                    projekt_id_int, programm_id_int, ProgrammBeschreibung);
                                            if (Ergebniss == false){
                                                out.println("ACHTUNG: Fehler beim Speichern des Programms: "+ ProgrammBeschreibung);
                                                GesamtErgebniss = false;
                                                }
                                           
                                            String[][] Werte = Analyse.ZeilenBestimmen(tempData);
                                            String OHNEKom1 = Analyse.EntferneKommentarTyp1(tempData);
                                            Ergebniss=SpeicherungInMYSQL.SpeicherungDerZeilen(Datenbank,
                                                    projekt_id_int, programm_id_int, Werte);
                                            if (Ergebniss == false){
                                                out.println("ACHTUNG: Fehler beim Speichern der Zeilen: " + ProgrammBeschreibung);
                                                GesamtErgebniss = false;
                                                }
                                            else {
                                                String[][] OHNEKom2 = Analyse
                                                        .EntfernungVonKommentarVomTyp2(OHNEKom1, Werte);
                                   
                                                int AnzahlDerStatements = Werte.length;
                                   
                                                Ergebniss=SpeicherungInMYSQL.SpeicherungVonStatements(Datenbank,
                                                        projekt_id_int, programm_id_int, OHNEKom2);
                                                if (Ergebniss == false){
                                                    out.println("ACHTUNG: Fehler beim Speichern der Statements: "+ProgrammBeschreibung );
                                                    GesamtErgebniss = false;
                                                    }
                                                else {
                                   
                                                    String[][] KommentarVonTyp1 = Analyse.EntferneCodeUndTyp2(
                                                            tempData, Werte);                                           
                                                    Ergebniss=SpeicherungInMYSQL.SpeicherungKommentarVonTyp1(Datenbank,
                                                            projekt_id_int, programm_id_int, KommentarVonTyp1);
                                                   
                                                    if (Ergebniss == false){
                                                        out.println("ACHTUNG: Fehler beim Speichern der Kommentare vom Typ 1: "+ProgrammBeschreibung );
                                                        GesamtErgebniss = false;
                                                        }
                                       
                                                    String[][] KommentarVonTyp2 = Analyse
                                                            .ErmittlungderKommentareVomTyp2(OHNEKom1, Werte);                                       
                                                    Ergebniss=SpeicherungInMYSQL.SpeicherungKommentarVonTyp2(Datenbank,
                                                            projekt_id_int, programm_id_int, KommentarVonTyp2);
                                                   
                                                    if (Ergebniss == false){
                                                        out.println("ACHTUNG: Fehler beim Speichern der Kommentare vom Typ 2: " +ProgrammBeschreibung);
                                                        GesamtErgebniss = false;
                                                    }                               
                                                    try{
                                                    String[][] tokenstabelle = Analyse.BildungderTokens(
                                                            OHNEKom1, Werte);
                                                    Ergebniss=SpeicherungInMYSQL.SpeicherungDerTokens(Datenbank,
                                                            projekt_id_int, programm_id_int, tokenstabelle);
                                                    }catch(ArrayIndexOutOfBoundsException e){e.getStackTrace();}
                                                   
                                                    if (Ergebniss == false){
                                                        out.println("ACHTUNG: Fehler beim Speichern der Token: " +ProgrammBeschreibung);
                                                        GesamtErgebniss = false;
                                                        }
                                                    else {
                                                        Ergebniss=SpeicherungInMYSQL.AufrufenderProzeduren(Datenbank,
                                                                projekt_id_int, programm_id_int);
                                                        if (Ergebniss == false){
                                                            out.println("ACHTUNG: Fehler beim Ausführen der Prozeduren:" +ProgrammBeschreibung);
                                                            GesamtErgebniss = false;                                                       
                                                        }
                                                    }
                                                }
                                            }
                                            Ergebniss=SpeicherungInMYSQL.SpeichernSteps(tempData,programm_id_int,projekt_id_int);
                                            if(Ergebniss==false){
                                                System.out.println("Fehler beim SpeichernSteps "+programm_id_int);
                                            }
                                            else{
                                                //System.out.println("SpeichernSteps ist ok "+programm_id_int);
                                            }
                                            Ergebniss=SpeicherungInMYSQL.SpeichernMacroDaten(projekt_id_int, programm_id_int, tempData);
                                           
                                            if(Ergebniss==false){System.out.println("Fehler beim SpeichernMacroDaten");}
                                            else{//System.out.println("Speichern MacroDaten ist ok");
                                            }                       
                                                        System.out.println("Erstellt-----"+FileName);                                                       
                                                        tempData="";                                                                                                   
                                                        }
                                                    } catch(Exception e){e.printStackTrace();System.out.println(ProgrammBeschreibung);}                           
                                                }
                                            }       
                            cn.close();
                        }catch(Exception e) {System.out.println(e.getMessage()+"hinzufüg");}
        }
}       
%>
</body>
<div class="footer"></div>
</html>
 

Dimax

Top Contributor
Ja dass stimmt,da kann man ein paar Zeilen auslagern aber nicht viel,weil eigentlich ist diese Seite dafür gedacht um
mögliche Fehler bei Datenverarbeitung aufzulisten und deswegen 20 Zeilen auslagern in eine separate Klasse um die dann wieder einholen lohnt sich nicht.Gebe zu ist auch keine Profi Lösung..mit der Zeit wird es aber).
 

mrBrown

Super-Moderator
Mitarbeiter
Das klingt jetzt echt hart, aber der Code ist wirklich schlecht.

Das Auslagern in eine Klasse wäre ein zwingend nötiger Schritt, damit man da irgendwas dran verbessern kann.
 

mihe7

Top Contributor
Ja dass stimmt,da kann man ein paar Zeilen auslagern aber nicht viel,weil eigentlich ist diese Seite dafür gedacht um
mögliche Fehler bei Datenverarbeitung aufzulisten und deswegen 20 Zeilen auslagern in eine separate Klasse um die dann wieder einholen lohnt sich nicht
  1. 20 Zeilen?!? Du hast etwa 200 Zeilen Java-Code in der JSP, die alles mögliche machen, vom Request einlesen bis zur DB-Abfrage.
  2. Das lohnt sich schon deswegen, weil es die Lesbarkeit drastisch erhöht.
FROM sasco.programm
Da ist ein Tippfehler, das muss fiasco.programm heißen :p
 

mihe7

Top Contributor
Nein, die sonst passen würden klingen alle nicht so gut (https://synonyme.woxikon.de/synonyme/fiasko.php)

Um nochmal zum Thema zurück zu kommen: ich würde z. B. den unteren Teil in ein Servlet verschieben, dann kannst Du per @MultipartConfig annotieren und einfach auf die Parts bzw. Parameter zugreifen: https://docs.oracle.com/javaee/6/tutorial/doc/glraq.html

Nach getaner Arbeit kannst Du das Ergebnis in Form von Attributen in den Request legen und diesen an das JSP weiterleiten.

Der Rest wäre natürlich weiter zu strukturieren, da stellt es einem wirklich die Zehennägel auf.
 

Dimax

Top Contributor
ist noch in der Entwicklung im Moment sieht so aus
Java:
%>   
<br><br><div >
<iframe width=49% height="500" align="left" frameborder="1" src="<!--kommt noch etwas rein-->"></iframe> 
       
<iframe width=49% height="500" align="right" frameborder="1" src="DatenbankStatistik.jsp"></iframe>
        </div>
       
<%
bin immer noch bei dem Bilder senden und empfangen(
 

Dimax

Top Contributor
Weiteres Versuch diesen Dreck zu verbessern.
Habe ein Servlet geschrieben und da läuft jetzt alles
Vom Code in jsp ist nur das geblieben:
Code:
</table></div>
<br /><br /><br /><br />
<p align=center><b><span style="font-size:11pt; font-weight:bold;">W&auml;hlen Sie eine Datei mit Programmen aus</span></b><br></p>
<FORM ENCTYPE="multipart/form-data" ACTION="/sasco/daten.einlesen/FilesReader"
    METHOD=POST>
    <table border="0" align="center" rules="groups" cellspacing="11">
        <tbody>
            <tr>
                <td align="right">Source-Datei: </td>
                <td align="left"><INPUT NAME="file" TYPE="file" class="file"></td>
            </tr>
            <tr><td></td></tr>
            <tr><td></td></tr>
            <tr>
                <td align="right">Projekt ID: </td>
                <td align="left"><select name="SelectDropDown" size=1 class="standard">
                        <option value=''></option>
                        <%
                            String[][] Projekte2 = AuswahlAusMYSQL.ErmittlungDerProjekte();
                            String[] Projekt_IDs = new String[Projekte2.length];
                            for (int i = 0; i < Projekte2.length;) {
                                ++i;
                                out.print("<option value=\"" + i + "\">" + Projekte2[i - 1][1] + " " + Projekte2[i - 1][0]
                                        + "</option>");
                                Projekt_IDs[i - 1] = Projekte2[i - 1][1];
                            }
                        %>
                </select></td>
            </tr>
            <tr><td></td></tr>
            <tr><td></td></tr>
            <tr>
                <td></td>
                <td align="left"><b><INPUT TYPE="submit" VALUE="hinzuf&uuml;gen"></b></td>
                <td></td>
                <td></td>
            </tr>           
            <tr>
                <td></td>
                <td align="right"><a href="Projektorganisation.jsp"><b><input type="button" name="zurueck" value="Zur&uuml;ck"></input></b></a>
                <td></td>
            </tr>
        </tbody>
    </table>
</FORM>

</body>
<div class="footer"></div>
</html>

im servlet ist der Rest:
Java:
@WebServlet("/daten.einlesen/FilesReader")

public class FilesReader extends HttpServlet{

    private static final long serialVersionUID = 1L;
    @Override
    protected void doGet(HttpServletRequest anfrage, HttpServletResponse antwort) throws ServletException, IOException {
        doPost(anfrage,antwort);
    }
    protected void doPost(HttpServletRequest anfrage, HttpServletResponse antwort) throws ServletException, IOException {
       
        String contentType = anfrage.getContentType();
        System.out.println(contentType);
            if ((contentType != null)
                    && (contentType.indexOf("multipart/form-data") >= 0)) {
               
                DataInputStream in = new DataInputStream(
                        anfrage.getInputStream());.....usw
Alles leuft aber ein wenig langsammer als direkt von JSP aus. Früher 5 min jetzt 10 min mit gleicher Datei.
Und am Ende kommt blanko Seite wie kann man nach dem Einlesen zurück auf die jsp umleiten die den Servlet aufgerufen hat?
Danke für jede Hilfe.
 

mrBrown

Super-Moderator
Mitarbeiter
Die 150_000 Zeilen sind die verarbeitete Datei?

Ja, dann ist es völlig egal ob JSP oder Servlet.
Irgendwas anderes machst du falsch, vermutlich zwei mal Hochladen und/oder Auslesen.
 

mihe7

Top Contributor
Auch bei 150 000 Zeilen?
Ja, wobei ich mich vorhin vertan habe: ich hatte eine Bean im Kopf, die im JSP instantiiert und verwendet wird. Du richtest aber den Request direkt an Dein Servlet, somit gibt es überhaupt keinen Overhead.

Wenn Du eine Bean verwendet hättest, dann würdest Du - egal wie viele Zeilen Du einliest - nur ein einziges Mal ein Objekt erzeugen und eben die Methode aufrufen. Die Objekterzeugung und der Methodenaufruf sind so schnell, dass man einiges an Anstrengungen unternehmen muss, um das wirklich messen zu können (wenn Dich das interessiert: https://openjdk.java.net/projects/code-tools/jmh)

Ansonsten kannst Du mal überlegen, dass ein Methodenaufruf selbst für jede Zeile überhaupt nicht ins Gewicht fallen würde, weil die DB eine Ewigkeit länger braucht.
 

Dimax

Top Contributor
Der Opfer meldet sich zurück)..Ich habe mit dem RequestDispatcher herumgespielt.
Java:
RequestDispatcher r=anfrage.getRequestDispatcher("../Projektorganisation/Projektorganisation.jsp");
                        r.forward(anfrage, antwort);
und nach dem Einlesen öffnet er zwar die Projektorganisation.jsp aber weitere Navigation macht er von der Servlett Adresse und nicht von Projektorganisation.jsp ,also er macht
/daten.einlesen/Projektorganisation.jsp
statt
/fantastico/Projektorganisation/Projektorganisation.jsp
was mache ich falsch?
 

Dimax

Top Contributor
also ohne Dispatcher? Hab auch so gemacht mit dem PrintWriter neue Seite ausgegeben mit dem button ahref Zielseite) aber ist nicht gut denke ich.Eigentlich werde ich Später versuchen irgendein Statusbalken zu erstellen der das Einlesevorschritt zeigt..aber das ist erst mal ein Traum.
 

Dimax

Top Contributor
Habe mich Gestern mit Multipart beschäftigt und mein Servlet modifiziert.
Wenn ich aber versuche ein Part initialisieren bekomme ich endlose Schleife.
Java:
@WebServlet("/daten.einlesen/FileReader")
@MultipartConfig
public class FileReader extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String contentType = request.getContentType();
   
    final Part partName=request.getPart("progra_name");//Alles leuft perfekt wenn ich diesen Satz schreibe,dann 
//leuft die while schleife endlos und nach einiger Zeit spuckt eine blanke Seite aus, ohne Fehlermeldungen

        final PrintWriter out=response.getWriter();
        String[][] Projekte2 = AuswahlAusMYSQL.ErmittlungDerProjekte();
       
        if ((contentType != null)
                && (contentType.indexOf("multipart/form-data") >= 0)) {
           
            DataInputStream in = new DataInputStream(
                    request.getInputStream());
           
            int formDataLength = request.getContentLength();
            byte dataBytes[] = new byte[formDataLength];
            int byteRead = 0;
            int totalBytesRead = 0;

            while (totalBytesRead < formDataLength) {
                byteRead = in.read(dataBytes, totalBytesRead,
                        formDataLength);
                totalBytesRead += byteRead;
            }
 

Dimax

Top Contributor
mihe7 ich verstehe nicht
Hab dein link analysiert->fruherDataInputStream in = new DataInputStream( request.getInputStream());
wenn ich aber versuche irgendwas mit Parts zu machen muss ich auf so was umschreiben?->
DataInputStream in = new DataInputStream( Part.getInputStream());
 

mihe7

Top Contributor
Richtig. Vorher bestand ein Request nur aus einem Teil, dessen Inhalt konntest Du mit request.getInputStream() einlesen. Jetzt besteht ein Request aus mehreren Teilen und jeder Teil hat seinen eigenen Inhalt.
 

Dimax

Top Contributor
Ein Servlet habe ich modifiziert,eins muss ich noch,es bleiben aber ein paar Fragen offen.
1.)Mein request besteht aus 3 Parts,die Eigentlich nur die Strings enthalten aber werden mit input Stream übertragen?
2)Um daraus String zu basteln muss ich erst in ein byte Array einlesen und dann String str=new String(byte[]);?
3)Ist Punkt 2 Vollfunktionsfähig ?und gibt es vielleicht bessere Methoden? (Servlet anfang sihe code)Also in diesem Zustand leuft alles.
Java:
import java.io.DataInputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import methoden.ComboPoole;
import methoden.*;

@WebServlet("/daten.einlesen/FileReader")
@MultipartConfig
public class FileReader extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      
        final Part partFile=request.getPart("file");
        final Part partProg=request.getPart("progra_name");
        final Part partProj=request.getPart("SelectDropDown");
        long sizeFile=partFile.getSize();
        long sizeProg=partProg.getSize();
        long sizeProj=partProj.getSize();
        final PrintWriter out=response.getWriter();

        if ((sizeFile >0)&& (sizeProg > 0)&&(sizeProj>0)) {
            DataInputStream in = new DataInputStream(
                    partFile.getInputStream());
            System.out.println(sizeFile+" | "+sizeProg+" | "+sizeProj);
            byte dataBytes[] = new byte[(int)sizeFile];
            int byteRead = 0;
            int totalBytesRead = 0;
            while (totalBytesRead < sizeFile) {
                byteRead = in.read(dataBytes, totalBytesRead,
                        (int)sizeFile);
                totalBytesRead += byteRead;
            }
            String files =new String(dataBytes);
            byteRead = 0;
            totalBytesRead = 0;
          
            in=new DataInputStream(partProj.getInputStream());
            byte proj[] = new byte[(int)sizeProj];
            while (totalBytesRead < sizeProj) {
                byteRead = in.read(proj, totalBytesRead,
                        (int)sizeProj);
                totalBytesRead += byteRead;
            }
            String Projekt_ID =new String(proj);
            byteRead = 0;
            totalBytesRead = 0;
            in=new DataInputStream(partProg.getInputStream());
            byte prog[] = new byte[(int)sizeProg];
            while (totalBytesRead < sizeProg) {
                byteRead = in.read(prog, totalBytesRead,
                        (int)sizeProg);
                totalBytesRead += byteRead;
            }
            int projekt_id_int = 0;
            int programm_id_int = 0;
            String ProgrammBeschreibung =new String(prog);
            projekt_id_int = Integer.parseInt(Projekt_ID);
            //System.out.println(Projekt_ID+" | "+ProgrammBeschreibung+" | "+files);
                String sSql = "SELECT max(programm_id) FROM fantastico.programm";
                Connection cn=ComboPoole.getInstance().getConnection();....usw
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Servlet (Bilder aus Datenbank liefern) läuft nur einige Zeit Allgemeines EE 12
G Jakarta Servlet API 5.0 Allgemeines EE 1
pkm Frage wegen AJAX-Zugriff auf ein Servlet Allgemeines EE 1
Dimax Servlet Servlet Kommunikation Allgemeines EE 18
K Unterschied zwischen JSP & Servlet gegenüber REST mittels JAX-RS Allgemeines EE 1
M URL Servlet Request getParameter Allgemeines EE 2
M Servlet Methoden Aufruf im Servlet Allgemeines EE 10
J 404 Not found (Servlet) Allgemeines EE 1
J Asynchrones Servlet löst NullPointerException aus Allgemeines EE 5
E Servlet Servlet das richtige? Allgemeines EE 11
B HTTP-Header-Inspektor-Servlet Allgemeines EE 1
N JSP Servlet mit JSP ansprechen Allgemeines EE 2
F Mehrere Bilder aus MySQL DB via Servlet darstellen. Allgemeines EE 1
J FTP und Servlet Allgemeines EE 11
H Post an Servlet Allgemeines EE 2
A Binärdatei vom Servlet erzeugen lassen Allgemeines EE 3
S Servlet Authentication Filter Allgemeines EE 0
S LDAP JAAS oder Servlet Allgemeines EE 0
G Problem: Servlet in JSP einbinden mit <jsp:include> Allgemeines EE 3
F eigene Anwendung per Servlet Container starten Allgemeines EE 9
F Servlet Daten im Speicher ablegen Allgemeines EE 3
L Servlet ClassNotFoundException Servlet Allgemeines EE 3
G Allgemeine Frage zu Authentifizierung mittels Servlet API Allgemeines EE 2
J Servlet "package does not exist" Allgemeines EE 5
K Servlet-Mapping Allgemeines EE 9
0 Servlet mit ArrayList Allgemeines EE 3
E Servlet unter mehreren Adressen Allgemeines EE 16
S Pfad-Zugriff über Servlet-init() Allgemeines EE 2
E Servlet Wie kann ich ohne Hilfe von Eclipse in JBoss mein servlet aufrufen Allgemeines EE 2
S Servlet.service() threw exception Allgemeines EE 4
A Servlet erkennt request Objekt nicht Allgemeines EE 8
G Direkter Zugriff auf Servlet- doPost Allgemeines EE 15
G Servlet doGet, doPost Allgemeines EE 3
A Kodierungsproblem bei Parameterübergabe von Browser an Servlet (GET) Allgemeines EE 2
Antoras servlet-mapping auf dynamische URLs Allgemeines EE 17
0 Problem mit librarys javax.servlet.http.HttpServletRequest cannot be resolved Allgemeines EE 1
MQue Ajax - Servlet Allgemeines EE 2
MQue Servlet Allgemeines EE 9
S [Design] Dynamischer EJB Aufruf von Servlet Allgemeines EE 3
S Servlet auf JBoss 5? Allgemeines EE 11
B HttpSession bekommen wenn nicht in Servlet Allgemeines EE 8
MQue Servlet / Button Allgemeines EE 5
S In Eclipse werden die "Servlet-Klassen" nicht gefu Allgemeines EE 2
U javax.faces und javax.servlet cannot be resolved Allgemeines EE 2
W Potentielles Memory Leak bei Servlet Allgemeines EE 6
B unterschied servlet und bean Allgemeines EE 2
Escorter Servlet .sar und jede Menge .jar Archive Allgemeines EE 2
N Servlet und JSF (URL-Rewriting)? Allgemeines EE 3
A jsf: Servlet aufrufen, wie geht das? web.xml Fehler? Allgemeines EE 13
N Servlet zyklisch aktualisieren Allgemeines EE 2
zilti Verbindung Applet <-> Servlet Allgemeines EE 5
ARadauer Servlet Bild Rückgabe Allgemeines EE 2
I Über Formular Daten zu Servlet Allgemeines EE 36
H Servlet - Zwischenmeldung anzeigen bei längerer Berechnung Allgemeines EE 2
G Ordner mit Umlauten einlesen - Servlet Allgemeines EE 3
A web.xml für Servlet in Tomcat 5.5 erstellen Allgemeines EE 2
M Zwei Buttons in einem Servlet Allgemeines EE 2
M Servlet lässt sich nicht aufrufen Allgemeines EE 6
A web.xml für Servlet in Tomcat erstellen Allgemeines EE 6
B Servlet Allgemeines EE 3
G EJB - EJB wird nicht ins Servlet geladen Allgemeines EE 3
K load-on-startup -> in der Servlet Klasse Allgemeines EE 6
G Objekt an Servlet übergeben - oder Objekt global definieren? Allgemeines EE 4
W Was bei Servlet-Entwicklung alles beachten? Allgemeines EE 8
R Zugriff auf Filter Servlet Allgemeines EE 10
I JBOSS Jsp Files Pfad im Servlet? Allgemeines EE 4
N Servlet-Request abbrechen? Allgemeines EE 3
D Java Servlet mit Radio Buttons Allgemeines EE 2
G Servlet debugging Allgemeines EE 8
N Thread von Servlet aus starten Allgemeines EE 16
N JSP: Collection im Servlet überwachen (mit AJAX)? Allgemeines EE 5
J Socket daten darstellen per jsp,servlet Allgemeines EE 2
W servlet über https Allgemeines EE 2
L Servlet kann Funktion nicht aufrufen Allgemeines EE 3
B Parameterübergane von Servlet an JSP funktioniert nicht ? Allgemeines EE 2
M Aus einem Servlet auf ein anderes zugreifen ? Allgemeines EE 2
G Servlet Serializable Allgemeines EE 2
B Servlet-Api.jar auf JBoss? (Migration von Tomcat zu JBoss) Allgemeines EE 4
H Servlet - Importieren von Code Allgemeines EE 2
P Java Servlet - Umgang mit Verlinkungen Allgemeines EE 7
M Wert aus Servlet an normale Klasse übergeben Allgemeines EE 2
E Servlet soll JFRame öffnen. Jframe.setvisible schlägtfehl Allgemeines EE 2
M servlet --> jsp - problem beim umstrukturieren Allgemeines EE 5
D Servlet Problem über Server Allgemeines EE 26
K Servlet per Formular aufrufen Allgemeines EE 8
L sessions mit servlet oder jsp ? Allgemeines EE 9
B JSF - Servlet mit Parametern über einen Link öffnen Allgemeines EE 3
D Binärdaten im Servlet entgegen nehmen, aber wie? Allgemeines EE 5
T Servlet-Instanzen und ServletContext Allgemeines EE 2
L speichern von daten mittels servlet in xml Allgemeines EE 8
N Collection überwachen (Servlet + AJAX) Allgemeines EE 3
N Liste mit Checkboxen an Servlet übergeben? Allgemeines EE 3
T Wie Datenbank und Servlet koppeln? Allgemeines EE 3
G Ladeseite anzeigen lassen während das Servlet noch arbeitet? Allgemeines EE 6
P Tomcat Servlet POST Daten als Array Allgemeines EE 2
P PDF per Servlet übertragen, danach keinen Inhalt mehr Allgemeines EE 12
N JSP kann Servlet nicht aufrufen! :-( Allgemeines EE 2
J Servlet Parameter aus web.xml übergeben, wie zugreifen? Allgemeines EE 2
L servlet.jar ? Allgemeines EE 2
K Servlet: Respone.redirect mit POST-Parametern Allgemeines EE 5

Ähnliche Java Themen

Neue Themen


Oben