Servlet + JSP: JSP-Seite ein Array/ArrayList überliefern vom Controller-Servlet

Korrak

Mitglied
Hallo Leute,

erst mal: Ich hab nicht viel Ahnung von Servlets + JSPs und bin dort etwas neu. Für meine Projektstudie im Studium hab ich folgenden Fall.

Ich möchte im Controller-Servlet eine Methode aufrufen die ein Array oder eine ArrayList mit Objekten füllt (die Objekte sind von einer Klasse, die ich erstellt habe). Anschließend möchte an eine .jsp Datei das Array(List) übergeben um die darin enthaltenen Daten auszulesen und anzuzeigen.

Das ganze soll ohne Session passieren (man kann der Session ja Objekte zuweisen) - nur ich hab keine Ahnung, wie das geht. Könnt ihr mir da auf die Sprünge helfen bzw. alternativ Lösungen erläutern? Wichtig ist, das ich im Controller in der doGet() Methode eine Session erstelle, allerdings soll in dieser keine Objekte gespeichert sein. Ist es auch möglich, von der JSP "Daten" an den Controller zu schicken (den dieser dann verarbeitet)?

Bin übrigens Anfänger in Java, also macht mich nicht fertig, wenn das hier etwas nach Anfänger klingt :D
 
Zuletzt bearbeitet:
S

SlaterB

Gast
alternativ zur Session gibt es noch das Requst-Objekt, da kann man auch beliebige Sachen ablegen

die JSP kommt erst nach dem Servlet dran, normalerweise findet keine Kommunikation in diese Richtung statt,
die JSP stellt der Lehre nach nur Daten dar, es gibt nichts was diese leistet, was den Controller interessieren könnte,
bzw. nicht schon eh weiß,
was genau stellst du dir da vor?
 

Korrak

Mitglied
alternativ zur Session gibt es noch das Requst-Objekt, da kann man auch beliebige Sachen ablegen

die JSP kommt erst nach dem Servlet dran, normalerweise findet keine Kommunikation in diese Richtung statt,
die JSP stellt der Lehre nach nur Daten dar, es gibt nichts was diese leistet, was den Controller interessieren könnte,
bzw. nicht schon eh weiß,
was genau stellst du dir da vor?

Wie kann ich dieses Objekt nutzen? request....?

Ich stell mir das so vor:

index.jsp -> Start-Button wird gedrückt -> Controller doGet() wird aufgerufen + Session erstellt + ArrayList mit Daten erzeugt -> ArrayList wird übergeben und auf ausgabe.jsp ausgegeben -> ausgabe.jsp gibt Controller "ich bin fertig" zurück -> Controller schließt session. Oder muss ich dann von der ausgabe.jsp eine andere Methode vom Controller aufrufen?
 
N

nillehammer

Gast
In der doGet-Methode des Servlets hast Du den Request als Methodenparameter. In diese kannst du mit setAttribute Deine ArrayList mit einem bestimmten Namen adden. In der JSP dann entweder mit Java-Code und getParameter oder mit jsp:useBean aus dem Request laden.
 
S

SlaterB

Gast
@Korrak
was du zur Session geschrieben hast habe ich der ersten Antwort lieber ignoriert, aber nun schon wieder,
was ist das für eine Session die geöffnet und geschlossen wird?
meinst du wirklich die HttpSession? die ist doch der Definition nach nur sinnvoll wenn man sie über mehrere Request verwendet,
wenn nicht kannst du sie auch gleich ignorieren

technisch bietet sich für deine Idee wohl ein Filter an, der kommt nach Erstellung der JSP automatisch wieder dran
um dann bei dir irgendwas aufzuräumen
Filtering Requests and Responses

edit: zudem könnte das Servlet schon aufräumen, bevor es an die JSP weitergeht,
lieber nur fertige Nutzdaten übergeben, die nicht noch offene Session (?) erfordern,
klingt jetzt wahrlich nach DB, meinst du dort die Hibernate-Session?

https://community.jboss.org/wiki/OpenSessionInView?_sscc=t
OpenSessionInView ist natürlich durchaus ein bekanntes Konzept


------

> Wie kann ich dieses Objekt nutzen? request....?
solche Grundlagen stehen in 500 Seiten-Büchern, die man wochenlang liest, Beispiele anschaut

hier in etwa ein Link dazu
JSP/Servlet setAttribute Problem @ tutorials.de: Tutorials, Forum & Hilfe

der JSP-Zugriff mit eingebetteten Java-Code ist dabei relativ unschön, gibt auch Tag-Libraries und wie das alles heißt,
"{request.xy}" usw.
aber wenn man mit der Session schon so verfährt, dann hier wohl auch ok,
wenn man mit der Session einen besseren Zugriff hat, dann auf den Request analog
 
Zuletzt bearbeitet von einem Moderator:

Korrak

Mitglied
In der doGet-Methode des Servlets hast Du den Request als Methodenparameter. In diese kannst du mit setAttribute Deine ArrayList mit einem bestimmten Namen adden. In der JSP dann entweder mit Java-Code und getParameter oder mit jsp:useBean aus dem Request laden.

wie funktioniert das mit jsp:useBean bzw. getParameter?

mach ich dann auf der ausgabe.jsp -> "request.getParameter("name")"?
 
S

SlaterB

Gast
Achtung Unterscheidung:
- Parameter im Request sind das was als ? im Request-String vom Client kommt, Strings
- Attribute im Request sind innerhalb der Verarbeitung gesetzte Objekte
(in der Session gibt es logischerweise nur Attribute)

weiter möchte ich persönlich aber nicht beitragen, in meinem Link steht schon etwas,
generell ein Thema für unzählige Tutorials/ Lehrbücher überall
 
N

nillehammer

Gast
Hat sich zwar schon erledigt, aber ich wollte nachträglich SlaterB nochmal Recht geben. Das war eine Nachlässigkeit von mir, getParameter mit getAttribute zu verwechseln.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Seite nur aufrufbar machen für eingeloggte User Web Tier 1
J dynamische jsf-seite programmatisch erstellen Web Tier 1
M Seite per Push neuladen Web Tier 2
P JSF Ajax aktualisiert Seite neu Web Tier 2
F JSF selectManyCheckbox Checkbox auf der rechten Seite Web Tier 3
M GWT - Externe Java Libs auf Server Seite - zB. JDBC Web Tier 6
A Aufruf eines Servlets auf einer JSP Seite funktioniert nicht Web Tier 10
J Was ist denn eine index.jsp seite ? Web Tier 5
T JSF Primefaces: DataTable Ajax Update - Weiterleitung von anderer Seite Web Tier 11
Q JSF bei Session-Timeout Weiterleitung auf spezielle Login-Seite Web Tier 15
xehpuk JSF 404 statt 500 bei nicht existenter JSF-Seite Web Tier 7
dataframe Persistenz aus JSF-Seite ansteuern Web Tier 12
M JSF Umfangreiche Seite strukturieren Web Tier 5
L einfache JSF-Seite wird nicht angezeigt Web Tier 8
R JSF Mit Ajax ganze Seite neu laden Web Tier 2
X Seite wird mit AJAX neu geladen Web Tier 4
R Zugriff auf Session direkt auf JSF-Seite Web Tier 2
B statische Html Seite als response erhalten (Servlet) Web Tier 3
D Auf andere Seite mit GWT Web Tier 2
S HTML Seite als PDF Web Tier 6
J JSP-Seite kann nicht aufgerufen werden Web Tier 14
K Analye einer Seite (Java, JSP, ...) Web Tier 12
I Setten auf der JSF - Seite Web Tier 2
M Ton wiedergabe über jsp-Seite Web Tier 2
G Code in JSF-Seite Web Tier 7
J Hilfe: seite includieren mit IceFaces Web Tier 2
T Template für die ganze Seite Web Tier 6
I JSF Nur max 20 Datensätze anzeigen lassen, dann nächste Seite Web Tier 8
P request.getParameter("name") von Formular auf JSP-Seite leer Web Tier 5
aokai ExterneJS-JSP Seite einbinden Web Tier 2
C navigation auf einer jsp Seite Web Tier 3
F sendError geht nicht richtig, seite leer Web Tier 6
K JSF Seite mit Dateien der Endung *.jsf Web Tier 4
D PreparedStatement: Seite zeigt nichts an Web Tier 7
T Wie feststellen, ob ein Benutzer noch auf meiner Seite ist Web Tier 14
K [gelöst] JSF-Seite wird nicht angezeigt Web Tier 3
H JSF Seite wird plain angezeigt Web Tier 3
P JSP Seite verlassen Web Tier 2
M Authentifizierung über PhaseListener je nach Seite Web Tier 11
M Servlet Submit ergebniss in seite einbauen Web Tier 2
F Beim Aufruf von einer JSF Seite eine Methode ausführen Web Tier 9
P JSF (Primefaces) SelectOneMenu Value auf Array wird nicht gesetzt Web Tier 0
C Websocket Array Web Tier 2
K JSP String[] Array nach Javascript Web Tier 4
M STRUTS2 - Array als Parameter übergeben Web Tier 2
J JSF Array als Input-Value Web Tier 8
T Array übergeben an JS oder anders ? Web Tier 2
R Array oder Listen einlesen mit JSF über javaserverpage Web Tier 2
P JSF ArrayList über InputText befüllen Web Tier 10
N Struts 1.1 - Arraylist einzelnes Element ausgeben - Sessionattribute weitergeben Web Tier 3
V Bild aus ArrayList via h:graphicImage anzeigen lassen Web Tier 4
A [JSF 2.0] Ausgabe aus Schleife bzw. einer ArrayList Web Tier 9
S Random aus ArrayList Web Tier 2
P For-Schleife mit JSTL über ArrayList Web Tier 8
G [JAVA / JSP] ArrayList in JSTL foreach verarbeiten Web Tier 4

Ähnliche Java Themen

Neue Themen


Oben