Raziel Geschrieben 5. März 2008 Geschrieben 5. März 2008 Hallo. Ich bins mal wieder^^ ich versteh nicht ganz wie ich einen wert von einer seite auf der anderen anzeigen soll... also es geht halt immer noch um einen taschenrechner^^ das ergebnis soll auf einer 2. seite nochmal stehen und dann soll eine meldung kommen ob man das abspeichern möchte... also ich hab mir gedacht ich kann es so auf der 2. seite anzeigen lassen <% String display = request.getParameter("display"); double r = Integer.parseInt("display"); out.print("Ergebnis: "+r); %> weil ich hab auf der seite1 die variable r für das ergebnis und ich dachte so kann ich das auf der 2. seite anzeigen lassen? nun ja es klappt aber nicht und ich habe nichts passendes gefunden im google :/ jemand eine idee? brauch keine lösung oder so.. nur einen (verständlichen) tipp wie man das von seite 1 auf seite 2 anzeigen lassen kann.. Danke im voraus für eure antworten! Raziel Zitieren
kingofbrain Geschrieben 5. März 2008 Geschrieben 5. März 2008 Servus, was ist Seite 1 und Seite 2? Ich vermute, es geht um eine Webanwendung? Du willst auf einen Request-Parameter zugreifen. Hast Du denn den Wert in den Request reingelegt bzw. reinlegen lassen (Formular, GET-Parameter)? Beschreib mal den konkreten Aufbau Deiner Anwendung, also welche Seiten gibts, was ist auf denen los (Formulare, Links), und wer verarbeitet diese Sachen. Peter Zitieren
TDM Geschrieben 5. März 2008 Geschrieben 5. März 2008 Wieso legst du eine double Variable für einen Integer Wert an? Was ist wenn in Display ein double steht, da schneidest du doch die Nachkommastellen ab... Zitieren
Raziel Geschrieben 5. März 2008 Autor Geschrieben 5. März 2008 also seite 1 <html> <head> <script language="JavaScript"> var r = 0; function ergebnis() { r = eval(window.document.rechner.display.value); window.document.rechner.display.value = r; } function hinzu(zeichen) { window.document.rechner.display.value = window.document.rechner.display.value + zeichen; } </script> </head> <body> <form name="rechner"> <center> <table border="7" cellpadding="5"> <tr> <td align="center" valign="middle"> <input type="text" name="display" size="23" maxlength="40"> </tr> <tr><td><table> <td width="10"><input style="height:30px; width:30px" type=button value="7" onclick="hinzu(this.value)"></td> <td width="50"><input style="height:30px; width:30px" type=button value="8" onclick="hinzu(this.value)"></td> <td width="50"><input style="height:30px; width:30px" type=button value="9" onclick="hinzu(this.value)"></td> <td width="50"><input style="height:30px; width:30px" type=button value="+" onclick="hinzu(this.value)"></td> </tr> <tr> <td width="10"><input style="height:30px; width:30px" type=button value="4" onclick="hinzu(this.value)"></td> <td width="50"><input style="height:30px; width:30px" type=button value="5" onclick="hinzu(this.value)"></td> <td width="50"><input style="height:30px; width:30px" type=button value="6" onclick="hinzu(this.value)"></td> <td width="50"><input style="height:30px; width:30px" type=button value="-" onclick="hinzu(this.value)"></td> </tr> <tr> <td width="10"><input style="height:30px; width:30px" type=button value="1" onclick="hinzu(this.value)"></td> <td width="50"><input style="height:30px; width:30px" type=button value="2" onclick="hinzu(this.value)"></td> <td width="50"><input style="height:30px; width:30px" type=button value="3" onclick="hinzu(this.value)"></td> <td width="50"><input style="height:30px; width:30px" type=button value="*" onclick="hinzu(this.value)"></td> </tr> <tr> <td width="50"><input type="reset" style="height:30px; width:30" type=button value="C"></td> <td width="50"><input style="height:30px; width:30px" type=button value="0" onclick="hinzu(this.value)"></td> <td width="50"><input style="height:30px; width:30px" type=button value="." onclick="hinzu(this.value)"></td> <td width="50"><input style="height:30px; width:30px" type=button value="/" onclick="hinzu(this.value)"></td> </tr> </tr></td></table> <tr> <td width="50"><input style="height:30px; width:170px" type=button value="=" onclick="ergebnis()"></td> </td> </tr> </table> </tr></td></table> <br> <input type=button style="height:30px; width:70px" name="Weiter" value="Weiter" onclick="self.location.href='http://localhost:8080/Taschenrechner/seite2.jsp'"> </center> </form> </body> </html> da drin kann man mit den grundfunktionen einfach nur rechnen. Mit dem button Weiter soll man dann auf die nächste Seite kommen wo das ergebnis angezeigt wird und ein Button zum speichern. Seite 2: <%@ page language="java" %> <html> <head> </head> <body> <table width=100% height=100%> <tr> <td align=center valign=middle> <% String display = request.getParameter("display"); double r = Integer.parseInt("display"); out.print("Ergebnis: "+r); %> </td> </tr> </table> </body> </html> hier soll eigentlich das ergebnis nochmal angezeigt werden. dann möchte ich noch einen button erstellen der mir das ergebnis z.B. in einer *.txt speichert. Button erstellen ist kein prob aber speichern schon... hab grad im inet gesucht und nichts gefunden oO hab auch nicht die geringste ahnung wie man in bestimmte verzeichnisse speichern kann... bzw wie man den button dazu bringt es zu tun Zitieren
Raziel Geschrieben 5. März 2008 Autor Geschrieben 5. März 2008 Wieso legst du eine double Variable für einen Integer Wert an? Was ist wenn in Display ein double steht, da schneidest du doch die Nachkommastellen ab... hmm eigentlich nicht... hatte einen ganz simplen taschenrechner nur mit java gemacht und der hat mir ganzzahlen ausgegeben und komazahlen. Gruß Zitieren
kingofbrain Geschrieben 5. März 2008 Geschrieben 5. März 2008 Servus, Du sendest das Formular ja gar nicht ab, sondern verweist lediglich auf die seite2.jsp. Wer sollte denn Deiner Meinung nach die Requestattribute senden? Probier mal aus, ob es geht, wenn Du als action-Attribut des form-Tags Deine JSP angibst, das sollte es schon tun. Darüber hinaus solltest Du solche hässlichen Sachen aber nicht machen. Schreib Servlets, die die Geschäftslogik abbilden (also bei Dir das Berechnen der Eingabewerte) und verweise von dort aus auf Deine JSP zur Anzeige. Dann sprichst Du im Formular das Servlet statt der JSP an und gut. Schöne Grüße, Peter Zitieren
Raziel Geschrieben 5. März 2008 Autor Geschrieben 5. März 2008 Servus, Du sendest das Formular ja gar nicht ab, sondern verweist lediglich auf die seite2.jsp. Wer sollte denn Deiner Meinung nach die Requestattribute senden? Probier mal aus, ob es geht, wenn Du als action-Attribut des form-Tags Deine JSP angibst, das sollte es schon tun. Darüber hinaus solltest Du solche hässlichen Sachen aber nicht machen. Schreib Servlets, die die Geschäftslogik abbilden (also bei Dir das Berechnen der Eingabewerte) und verweise von dort aus auf Deine JSP zur Anzeige. Dann sprichst Du im Formular das Servlet statt der JSP an und gut. Schöne Grüße, Peter du erklärst es zwar sehr gut.. allerdings bin ich neu in der ganzen programmiersache... kannst du mir einen tipp geben wie man am besten mit servlets anfängt? habs beim vorbeigoogeln mal gelesen aber kA davon. kannst du eventuell ein kleines leichtes newbie beispiel reinposten wie man damit umgeht? Danke vielmals für deine mühe! Gruß, Raziel Zitieren
kingofbrain Geschrieben 6. März 2008 Geschrieben 6. März 2008 Servus, Servlets gehören wie JSPs zu Java EE (also Enterprise Edition). Die EE ist schon ein recht umfangreiches Thema und es gehören solide Grundlagenkenntnisse in Java dazu. Ein kleines Beispiel: in den Schulungen, die ich halte, haben die Leute fünf Tage Java Grundlagen und danach erst drei Tage JSP / Servlets. Wir kauen also die kompletten Grundlagen gut durch, bevor wir uns ans Thema Web machen. Fazit: einfach ein kleines Beispiel macht keinen Sinn, da Du es abtippen und laufen lassen kannst, aber keinen Nutzen für weitere Sachen hast. Arbeite Dich durch das Sun J2EE Tutorial (- The Java EE 5 Tutorial), da kommt das Thema Web recht weit am Anfang. Schau Dir an, wie ein WAR-Archiv aufgebaut ist und wo die VM die benötigten Informationen (Klassen und Ressourcen) herbekommt. Danach den Unterschied (aber auch die Gemeinsamkeiten) von JSPs und Servlets, dann das Stichwort "Web MVC" und danach kommst Du nochmal vorbei, dann kriegst Du ein erstes schönes Beispielservlet, das das macht, was Du willst. Peter Zitieren
Raziel Geschrieben 6. März 2008 Autor Geschrieben 6. März 2008 Was kostet eigentlich so ein Java-Grundkurs im Durchschnitt? Bringt das auch was? Also wird das richtig gut erklärt, dass man nachher auch was davon hat? Zitieren
kingofbrain Geschrieben 6. März 2008 Geschrieben 6. März 2008 Servus, also bei uns kostet der Grundkurs über fünf Tage 2.500 Euro. Das dürfte so ziemlich Durchschnitt sein. Bei solchen Trainings kommt es sowohl auf den Trainer, als auch auf die Teilnehmer an. Wenn man die falschen Leute im Kurs hat, dann bringt der beste Trainer nichts, da das Zielpublikum nicht passt, umgekehrt werden die besten Teilnehmer bei einem schlechten Trainer nichts vernünftiges Lernen. Also kann man das nicht pauschal sagen. Ich habe in guten Trainings als Teilnehmer gesessen (auch in grottigen), und habe auch selbst Trainings gehalten, die ich sehr gut fand, und solche, die eher bescheiden waren. Ein Kurs ist aber keine Zwangsvoraussetzung. Ein fundiertes Grundwissen schon! Und das kannst Du auch z.B. über Grundlagentutorials oder Einsteigerbücher bekommen. Warum willst Du denn mit der Webanwendung anfangen? Mach den Rechner doch erst mal als Konsolenanwendung mit Ein- und Ausgabe. Peter Zitieren
Raziel Geschrieben 6. März 2008 Autor Geschrieben 6. März 2008 Servus, also bei uns kostet der Grundkurs über fünf Tage 2.500 Euro. Das dürfte so ziemlich Durchschnitt sein. Bei solchen Trainings kommt es sowohl auf den Trainer, als auch auf die Teilnehmer an. Wenn man die falschen Leute im Kurs hat, dann bringt der beste Trainer nichts, da das Zielpublikum nicht passt, umgekehrt werden die besten Teilnehmer bei einem schlechten Trainer nichts vernünftiges Lernen. Also kann man das nicht pauschal sagen. Ich habe in guten Trainings als Teilnehmer gesessen (auch in grottigen), und habe auch selbst Trainings gehalten, die ich sehr gut fand, und solche, die eher bescheiden waren. Ein Kurs ist aber keine Zwangsvoraussetzung. Ein fundiertes Grundwissen schon! Und das kannst Du auch z.B. über Grundlagentutorials oder Einsteigerbücher bekommen. Warum willst Du denn mit der Webanwendung anfangen? Mach den Rechner doch erst mal als Konsolenanwendung mit Ein- und Ausgabe. Peter also einen rechner mit grundfunktionen der rechnen kann hab ich ja schon mal geschrieben. bin grad in meiner ausbildung zum fi ae... und naja ich lerne es hier so: Leiter gibt mir aufgabe -> ich muss schauen, dass ich sie meiste (wie auch immer) -> besprechung der aufgabe mit "lösung" und ich hätte halt gern, dass mir jemand die grundkenntnisse erklärt... mensch zu mensch eben^^ allerdings werd ich mir einen kurs für 2,5k euro nicht leisten können... eine frage hab ich noch... ich such schon die ganze zeit rum und weiß aber nicht wie ich einen download button erstelle... beim googeln hab ich nur folgendes gefunden: <input type="button" value="Download" onclick="document.location.href='blabla.txt';"> allerdings wenn ich bei location das eingebe was ich runtergeladen haben will, schickt er mich einfach auf die seite weiter... wie erstelle ich den so einen download? also der soll mir ein Download-Fenster bringen (mit öffnen, speichern, abbrechen) wo ich dann die seite z.b. als html datei speichern kann... geht das mit java? Gruß, Raziel PS: Danke für deine bisherigen antworten! Zitieren
kingofbrain Geschrieben 6. März 2008 Geschrieben 6. März 2008 Was willst Du denn herunterladen? Eine eigentlich anzuzeigende Seite? Der Browser entscheidet, wie er mit bestimmten Inhalten umgeht. Wenn Du also das Beispiel mit der txt-Datei nimmst: mein Browser (Firefox) würde bei dem Link nicht herunterladen (schon, aber das meinst Du nicht. ), sondern würde mir die Datei anzeigen. Ein Download ist erst mal einfach ein Link (also ein HTTP GET in den meisten Fällen), der Browser hat dann die Aufgabe, das richtige für die Datei zu machen. Und zum anderen Thema. Wenn Du mit den Grundlagen keine Probleme hast, dann kannst Du Dich ja an ein Servlet machen. Schau im Tutorial von Sun nach, was die Servlet-Klasse beerben oder implementieren muss, tu das und erfreue Dich am Ergebnis. Vorher noch informieren, wie ein WAR aussieht, ... EDIT: ok, dann will ich mal nicht so sein, vor allem, weil ich eine Rechenkomponente für meine JSP-Schulungen habe. Hier ist Dein Controllerservlet, das auf die View verweist. package de.pgoetz.servlet.example; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class for Servlet: Controller */ public class CalculationController extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet { static final long serialVersionUID = 1L; private static final String CALCULATION_TYPE_ADDITION = "+"; private static final String CALCULATION_TYPE_SUBTRACTION = "-"; private static final String CALCULATION_TYPE_MULTIPLICATION = "*"; private static final String CALCULATION_TYPE_DIVISION = "/"; private static final String REQUEST_PARAM_CALCULATION_TYPE = "calculationType"; private static final String REQUEST_PARAM_OPERAND_ONE = "operandOne"; private static final String REQUEST_PARAM_OPERAND_TWO = "operandTwo"; private static final String REQUEST_ATTR_RESULT = "result"; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String forward = "/error.jsp"; String calculationType = request .getParameter(CalculationController.REQUEST_PARAM_CALCULATION_TYPE); String operandOneParam = request .getParameter(CalculationController.REQUEST_PARAM_OPERAND_ONE); String operandTwoParam = request .getParameter(CalculationController.REQUEST_PARAM_OPERAND_TWO); Double operandOne = null; Double operandTwo = null; try { operandOne = Double.valueOf(operandOneParam); operandTwo = Double.valueOf(operandTwoParam); } catch (NumberFormatException e) { e.printStackTrace(); } if (calculationType != null && operandOne != null && operandTwo != null) { Double result = null; if (calculationType .equals(CalculationController.CALCULATION_TYPE_ADDITION)) { result = operandOne + operandTwo; } else if (calculationType .equals(CalculationController.CALCULATION_TYPE_SUBTRACTION)) { result = operandOne - operandTwo; } else if (calculationType .equals(CalculationController.CALCULATION_TYPE_MULTIPLICATION)) { result = operandOne * operandTwo; } else if (calculationType .equals(CalculationController.CALCULATION_TYPE_DIVISION)) { result = operandOne / operandTwo; } if (result != null) { request.setAttribute(CalculationController.REQUEST_ATTR_RESULT, result); forward = "/success.jsp"; } } request.getRequestDispatcher(forward).forward(request, response); } } Ich denke aber, das es Dir nicht bringt, ohne das Du die Grundlagen zu Java Webanwendungen lernst. Viel Spaß damit. Peter Zitieren
Raziel Geschrieben 6. März 2008 Autor Geschrieben 6. März 2008 Danke für deine Tipps und Hilfe! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.