Frage zu Verständnis und Logik

Status
Nicht offen für weitere Antworten.

SEAGATE

Mitglied
Hallo,

vor wenigen Wochen begann ich damit, mich in JSP/Servlet Entwicklung für WebAnwendungen einzuarbeiten.

Ich komme aus der Perl-Ecke, in dessen Bereich ich schon seit 17 Jahren tätig bin.

Nun, es ist sicher etwas anderes, Perl stellt nur bedingt OOP zur Verfügung.

Auch nach dem Durcharbeiten und Ausprobieren von Beispielen von insgesamt 3 Büchern zum Thema Servlet/JSP Entwicklung habe ich immer noch gravierende Schwierigkeiten, die Logik bzwl. Datenaustausch zwischen Servlet und JSP Page zu verstehen, geschweige denn umzusetzen.

Frage 1:)
Ein Servlet das Requests und Responses verarbeitet beinhaltet eine If-Abfrage die an URL-Parameter gebunden ist: z. B.

String sReq = request.getParameter( "req" );
if (sReq.equals("run") == true) { (...) }

Ich bekomme es nicht hin, daß innerhalb dieser IF-Abfrage Daten aus einer SQL-Tabelle
für die JSP-Seite bereit gehalten werden, die entweder mit dispatcher.forward oder mit sendRedirect angesprochen wird.

In dem Buch was ich habe wird folgendes empfohlen:
- MVS Architektur oder JSP Expression Language zu verwenden
- JSP Pages sollen die Objekte nie erzeugen
- JSP Pages sollen die Objekte nie ändern

Genau das versuche ich zu befolgen.

Meine DB-Abfrage funkioniert, auch die Zuweisung der Parameter.
Nur die JSP Seite will nicht.

In der JSP Seite versuche ich die Daten wie folgt darzustellen:

<jsp:useBean type="org.my.eps.app.epsapp" scope="application" id="epsapp">
<jsp:getProperty name="epsapp" property="log_user_id" />
</jsp:useBean>

Ich habe die Verwendung von Session und Cookies abgeschaltet, da sich meine Anwendung selbst um die Session-Verwaltung kümmert.

Frage 2:)

Verstehe ich es richtig, daß bei der Verwendung von sendRedirect die Daten plötzlich "weg" sind, also nicht mehr gehalten werden, im Gegensatz zu forward?

Frage 3:)

Worin besteht der Unterschied zwischen:

<jsp:useBean> und <%@ page import="myBean" %>
?

Frage 4:)

Für meine Begriffe wäre es einfacher, die HTML-Seiten aus einer Datenbank abzufragen und wie Templates zu behandeln, und einfach nur Werte durch ein Parsing auszutauschen.
Damit erspart man sich die Kommunikation zwischen Servlet und JSP.
Wie wird generell dieser Ansatz unter Java bewertet?

Vielen Dank schon mal im Voraus, ich hoffe sehr, hier Hilfestellung zu erhalten.

Viele Grüße.
 

Noctarius

Top Contributor
if (sReq.equals("run") == true) { (...) }

hast du das == true echt dahin geschrieben? Oo Zwingt Perl einen zu sowas? Wenn ja, armes Perl *gg*

Ok zu deinem Problem:
Du musst die Instanz mit einem Namen zusammen als Attribut in die Request Instanz stecken und dann kannst du mit dem Namen das Bean innerhalb der JSP verwenden (wenn ich dein Problem verstanden habe).
 

SEAGATE

Mitglied
Hi,

danke für Deine Antwort! :)

Nein, Perl zwingt einen zu so etwas ganz bestimmt nicht, weil Perl für so etwas mehrere und andere Methoden kennt:

my $string = "abc";

if ($string eq "abc") { (...) }

if ($string =~ m/abc/) { (..) }

$anderer_string = "123", if $string /abc/;

Laß' also bzgl. Java ein wenig "Gnade" walten - diese == true habe ich auch nur aus'm Lehrbuch, um Strings auf equal zu checken.

Nun aber wieder zu Java:

leider verstehe ich nicht so ganz, was Du meinst.
Mein Servlet sieht im Funktionsaufruf so aus:

protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, Exception {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();

try { (...)

if ( condition 1) { (...) }
else if (condition 2) { (...) }

}
}

Grüße,
SEAGATE
 

Noctarius

Top Contributor
Mini Beispiel:

Java:
public class SimpleServlet extends HttpServlet {
	@Override
	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
			
		if (request.getParameter("foo") == null ||
				request.getParameter("foo").length == 0)
			throw new ServletException("Illegal or missing argument foo");
			
		Integer foo = Integer.parse(request.getParameter("foo"));
			
		Connection con = null;
		
		try {
			con = DatabaseHelper.getConnection();
			PreparedStatement statement = con.prepareStatement("SELECT * FROM ....... WHERE foo = ?");
			statement.setInt(1, foo);
			
			ResultSet rset = statement.executeStatement();
			SomeDataHolder results = new AnyImplementationOfSomeDataHolder();
						
			... Datenverarbeitung - füllen der Datenobjekte ...
			
			request.setAttribute("datas", results);
			
			RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/sometemplate.jsp");
			dispatcher.forward(request, response);
		} catch (SQLException e) {
			throw new ServletException(e);
		} finally {
			try { if (con != null) con.close(); } catch (SQLException) { e.printStackTrace(); }
		}
		
		response.sendRedirect(errorpage);
	}
}

(Benutz das nächste mal bitte Codetags ;))

Ansonsten hab ich noch einen schönen, etwas älteren Beitrag gefunden: http://www.java-forum.org/web-tier/82097-datenuebergabe-von-servlet-java-server-page.html

PS: Ist in einem Texteditor runtergetippt, hoffe hab keine Klammer oder so vergessen ;)
 

SEAGATE

Mitglied
Danke für Dein Beispiel,

ich habe jedoch die DB-Verbindung in eine externe Klasse ausgelagert,
um den Code etwas übersichtlich zu halten.

dann habe ich auch mit request.setAttribute gearbeitet,
und in der JSP-Page die aufgerufen wird, mit ${foo} weiter gemacht.

Das funktioniert jetzt soweit.

Ich bin lehrsam, und kämpfe mich durch.

Obwohl ich ehrlich gesagt die Einfachheit von Perl etwas vermisse. Irgendwann hatte ich auch mal unter ColdFusion entwickelt, und bin dann doch wieder zurück.

Aber ich sehe in Java für WebAnwendungen ein besseres Spektrum für sichere Anwendungen.

Noch eine letzte Frage:

Da ich keine Cookies verwenden möchte, habe ich in der web.xml die Verwendung derselbigen abgeschaltet.

Die jsession schleppe ich im URL String also immer mit.

Kann ich diese jsession irgendwie als instanz behandeln, und ihr Eigenschaften zuweisen? ich meine, daß ich z. B. einen Benutzernamen oder eine IP an diese Session
knüpfen kann.

Vielen Dank und Grüße!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Verständnis Frage zu Variablen Java Basics - Anfänger-Themen 3
S Verständnis-Frage zu einer HÜ? Java Basics - Anfänger-Themen 1
NeoLexx equals()-Methode Verständnis Frage anhand Code Beispiel Java Basics - Anfänger-Themen 22
B Frage zum Code verständnis im Resultat Java Basics - Anfänger-Themen 10
B Verständnis Frage zu der Aufgabe Java Basics - Anfänger-Themen 30
I Verständnis Frage wegen einer Aufgabe Java Basics - Anfänger-Themen 10
P verständnis Frage Refernzen und Objekte Java Basics - Anfänger-Themen 1
S Verständnis - Frage mehrere SQL Statements in While Schleife Java Basics - Anfänger-Themen 0
R Input/Output MVC - Frage zum Verständnis Java Basics - Anfänger-Themen 5
J Musterlösung Verständnis Frage zu Math.abs() Java Basics - Anfänger-Themen 5
X Kompilat verständnis Frage Java Basics - Anfänger-Themen 9
C Input/Output Anfänger Array-Verständnis Frage Java Basics - Anfänger-Themen 7
F Verständnis Frage - && Java Basics - Anfänger-Themen 2
O Frage zu Verständnis von Collection Java Basics - Anfänger-Themen 4
C Methoden Frage zu Verständnis eines Beispiels Java Basics - Anfänger-Themen 3
M Verständnis Frage Java Basics - Anfänger-Themen 11
T Verständnis-Frage Java Basics - Anfänger-Themen 2
E Verständnis frage zum return wert eines Arrays Java Basics - Anfänger-Themen 7
A Array Verständnis Frage Java Basics - Anfänger-Themen 4
L Hashtable Verständnis Frage Java Basics - Anfänger-Themen 4
Zrebna Frage zu Test-Driven Development (TDD) Java Basics - Anfänger-Themen 3
I Frage Thymeleaf -> Fehler ignorieren und mit "" ersetzen? Java Basics - Anfänger-Themen 15
I Frage Thymeleaf -> Prefix / Suffix ändern? Java Basics - Anfänger-Themen 11
D Rekursions Probleme / frage Java Basics - Anfänger-Themen 4
T Frage zu Parse Java Basics - Anfänger-Themen 2
H Frage an die Profis Java Basics - Anfänger-Themen 4
J Eine konzeptionelle Frage zu OOP Java Basics - Anfänger-Themen 3
P Frage zu Rekursion und Backtracking Java Basics - Anfänger-Themen 2
H Frage zur Ausgabe Java Basics - Anfänger-Themen 4
H Frage zu arithmetischen Operationen Java Basics - Anfänger-Themen 20
F Kurze Frage zu replace() Java Basics - Anfänger-Themen 19
JavaSchmecktLecker Polymorphie Frage zur Methodenüberschreibung Java Basics - Anfänger-Themen 21
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
B Erste Schritte Frage zu Instanzierung und Referenzen Java Basics - Anfänger-Themen 8
DoubleM Runtime.getRuntime().exec Frage Java Basics - Anfänger-Themen 2
J Eine theoretische Frage zur Praxis - JPanel oder Canvas Java Basics - Anfänger-Themen 5
O Frage: Formaler Typbezeichner? Java Basics - Anfänger-Themen 3
I BlueJ Queue Frage für Klausur Java Basics - Anfänger-Themen 2
N Spezielle frage zum Comparator Java Basics - Anfänger-Themen 6
L Frage zum Array Java Basics - Anfänger-Themen 1
A Frage zum UML Design Java Basics - Anfänger-Themen 1
I Hilfe bei Klausur Frage Java Basics - Anfänger-Themen 8
izoards Drucken Frage zu FAQ Beitrag Java Basics - Anfänger-Themen 2
J Frage zu meinem Code (OOP) Java Basics - Anfänger-Themen 4
sserio Split() -> Regex Frage. Java Basics - Anfänger-Themen 7
A OCA Study Guide: 2. Frage aus Kapitel 3 Java Basics - Anfänger-Themen 9
sserio Date Library Frage Java Basics - Anfänger-Themen 9
Max246Sch Frage zu Währungsrechner Code Java Basics - Anfänger-Themen 2
sserio Frage zu HashMaps Java Basics - Anfänger-Themen 20
sserio Frage zu Threading - Multithreading Java Basics - Anfänger-Themen 2
sserio Frage zu Lambda Ausdrücken Java Basics - Anfänger-Themen 7
sserio Frage zu BigInteger Java Basics - Anfänger-Themen 1
D Frage bzgl. Enum-Handhabung Java Basics - Anfänger-Themen 16
xxx12 Frage Java Basics - Anfänger-Themen 2
I Generelle Frage zu Mikroservices (Spring Boot?), Docker... Java Basics - Anfänger-Themen 7
R Frage zu Methoden (Rückgabewert u. ohne.) Java Basics - Anfänger-Themen 2
A Frage zur programmierung Java Basics - Anfänger-Themen 12
M Frage zur Methode split der Klasse String Java Basics - Anfänger-Themen 32
R Input/Output Frage zu Java IO Java Basics - Anfänger-Themen 6
M Frage zu printWriter Java Basics - Anfänger-Themen 5
C Frage zu OLSMultipleLinearRegression Java Basics - Anfänger-Themen 31
KogoroMori21 Frage zum Euklidischen Algorithmus Java Basics - Anfänger-Themen 11
F Frage betreff Programm mit dem man C++-Code in JAVA-Code übersetzen lassen kann Java Basics - Anfänger-Themen 2
L Frage zur Ticket Maschine Java Basics - Anfänger-Themen 1
J Frage zu OOP-Klassendiagramm Java Basics - Anfänger-Themen 8
OSchriever Frage zu Compiler Java Basics - Anfänger-Themen 8
H Frage zu Throw Exception Java Basics - Anfänger-Themen 2
TimoN11 Frage zu Java-Vererbung (Cast) Java Basics - Anfänger-Themen 5
Bademeister007 Hallo Leute ich hab eine Frage zur ArrayList Java Basics - Anfänger-Themen 8
F Frage betreff Programmierbücher zu Lagerverwaltung als Konsolenprogramm Java Basics - Anfänger-Themen 3
dieter000 Kurze Frage kann mir ejmand kurz diesen Code erklären, bzw wie man die zeilen erklärt und so Java Basics - Anfänger-Themen 1
I String.split regex Frage Java Basics - Anfänger-Themen 2
N Best Practice Frage zum MVC-Pattern Java Basics - Anfänger-Themen 2
dieter000 Frage zu einem Beispiel... Java Basics - Anfänger-Themen 5
J Frage zum Loggen Java Basics - Anfänger-Themen 18
J Methoden Frage: Array-Werte in anderer Methode ändern Java Basics - Anfänger-Themen 4
Zrebna Frage zum "Referenzen-konzept" in Java Java Basics - Anfänger-Themen 8
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
marcooooo Frage zu bestimmten Beispiel Java Basics - Anfänger-Themen 31
N Input/Output Eine Frage über system.out.println. Java Basics - Anfänger-Themen 10
B Erste Schritte Learning Coding (!) Frage an erfahrene Programmierer. Java Basics - Anfänger-Themen 23
M konzeptuelle Frage: In welcher Klasse definiert man am Besten Methoden, die die Kommunikation mit dem User regeln? Java Basics - Anfänger-Themen 8
C Exception-Frage Java Basics - Anfänger-Themen 3
J Eine Frage zur Schreibweise == ? : Java Basics - Anfänger-Themen 3
S Frage des Designs Java Basics - Anfänger-Themen 1
JavaTalksToMe Extends/Implements Frage Java Basics - Anfänger-Themen 3
pkm Frage zu Servletfunktion Java Basics - Anfänger-Themen 0
B Frage zur Währungsumrechnung Java Basics - Anfänger-Themen 3
S Allgemeine Frage über Generics und Vererbungen Java Basics - Anfänger-Themen 5
Kirby.exe Frage zur Verwendung von Interfaces Java Basics - Anfänger-Themen 6
D Frage zu Strings einer Exception Java Basics - Anfänger-Themen 4
L Wie frage ich ab, ob in einem Array, Werte doppelt vorkommen? Java Basics - Anfänger-Themen 4
D Frage zur IDE IntelliJ IDEA Java Basics - Anfänger-Themen 6
H Frage zum 2d Array Java Basics - Anfänger-Themen 1
N Frage zum Newton-Fraktal Java Basics - Anfänger-Themen 1
H Frage zu interfaces Java Basics - Anfänger-Themen 1
J Frage dazu Variablen klassenübergreifend zu verändern Java Basics - Anfänger-Themen 22
I Frage zu SkipList Java Basics - Anfänger-Themen 4
G Frage zu JScrollPane Java Basics - Anfänger-Themen 12
Kirby.exe Allgemeine Frage Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben