Zum Inhalt springen

Wert von Seite1 auf Seite2 anzeigen


Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben
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ß

Geschrieben

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

Geschrieben
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

Geschrieben

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

Geschrieben

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

Geschrieben
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!

Geschrieben

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

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...