JSF - java File Verständnisfrage

OnDemand

Top Contributor
Moin!

Irgendwie hab ich ein riesen Fragezeichen überm Kopf, vielleicht kann mir jemand helfen.

Ich habe eine xhtml-JSF Seite (index.xhtml) und dazu eine .java Class (User.java), welche auf ein Buttonklick reagiert und eine Ausgabe auf Konsole erzeugt.

Wenn ich nun das Ganze deploye, öffnet sich localhost:8080/app/index.xhtml

Wozu habe ich dann aber beim Anlegen des Servlet (User.java)das URL-Pattern "/user" angelegt? Rufe ich im Browser localhost:8080/app/user auf, kommt ne weiße Seite.

Schmeiße ich hier 2 Dinge durcheinander oder muss ich die JSF seite noch irgendwie mit der Java-Datei verbinden?
 

OnDemand

Top Contributor
Klaro, ist aber nur ein Test, daher der sinnlose Methodenname :p
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui">
<h:head>
	<link rel="shortcut icon" type="image/x-icon" href="#{resource['favicon.ico']}" />
</h:head>

<h:body>
	<ui:include src="/resources/template/header_without_menu.xhtml" />

	<h:form class="contentBackground">
		<p:outputPanel deferred="false">
			<ui:include src="/news/news.xhtml"></ui:include>
		</p:outputPanel>
	</h:form>
	<h:form>
		<p:commandButton id="login" value="Los geht's!"
			action="#{loginController.mache}"/>
	
	</h:form>


	<ui:include src="/resources/template/footer.xhtml"></ui:include>
</h:body>
</html>

User:
Java:
import javax.faces.bean.ManagedBean;
import javax.servlet.http.HttpServlet;

@ManagedBean
public class LoginController extends HttpServlet {

	private static final long serialVersionUID = -1978333930019186692L;

	public String mache() {
		return "success";
	}

	}

Das mit der Domainendung ist mir jetzt eigentlich nicht so wichtig. Die Frage hat einen anderen Hintergrund wo ich dachte durch eine Antwort komme ich auf die Lösung. Ich möchte nämlich verhindern, dass ein User einfach die Domain Domain.de - Seite nicht gefunden eingibt ohne sich eingelogged zu haben.

Wie ist denn hier die beste vorgehendweise? Sessions, cookies?
 

stg

Top Contributor
Die "beste" Vorgehensweise gibt es nicht.
Für kleine Anwendungen reicht es mitunter aus im SessionScope irgendwo einen Merker zu setzen, ob ein user eine Seite sehen darf oder nicht, bzw einfach per rendered-Attribut die nicht erlaubten Inhalte schlicht nicht zu rendern.
Eine eingeschränkte Sicht auf ganze Sub-domains kannst du auch leicht mittels eines Listeners auf der Restore-View realisieren. Sofern es einen wie auch immer gearteten Dienst für Authorisierung und Authenfikation gibt, kann man oft auch völlig transparent den Application Server das ganze Sicherheitsgedöns verwalten lassen. Cookies oder anderer Client-seitiger Krams sollte bei sicherheitsrelevanten Aspekten aber immer nur zusätzlich (wenn überhaupt) Verwendung finden. Gründe sollten auf der Hand liegen... Vorteile, die zusätzliche Client-seitige Bestandteile deiner Anwendung liefern könnten, sind erst einmal nicht sonderlich von Interesse.

Deine ursprüngliche Frage ist so konfus und ein heilloses durcheinander. Tu dir selbst den Gefallen und versuche nicht alles auf einmal zu verstehen und/oder umzusetzen. Schnapp dir ein passendes Einsteiger-Tutorial und dann ab dafür... Zu deinem Code weiß ich gar nicht so Recht, was ich sagen soll. Die gleiche Klasse gleichzeitig eine Bean und ein Servlet sein zu lassen, sieht jedenfalls recht...sagen wir.. eigen aus. Zumal du keinerlei HTTP request explizit behandelst. Wozu das ganze dann also?
Die xhtml-Seite sieht normal aus. Hier konnte ich nix Auffälliges entdecken.
 

OnDemand

Top Contributor
Hi, danke dir für deine Antwort! Bezgl. der Bean gleichzeitig als Servlet macht wirklich keinen Sinn, muss ein Überrest aus anderen Versuchen sein ;)

Ich sehe du hast mein Durcheinander erkannt, welches mir durch den Kopf wuselt :D

Ich brauch jetzt erstmal einen Denkanstoß, wie ich folgendes Problem löse:

User geht kommt per welcome-page auf eine Seite wo er sich einloggen kann (Seite ok, welcome page in web.xml ok)
Nun hat der User verschiedene Rollen, er kann Modul A und Modul B aufrufen und nutzen. Modul A und B sollen zwei machen irgendwas mit Daten (auch ok, reiner Java-Code).

Die User und deren Modul-Erlaubnisse (Rollen) sind in einer DB persistent.

Wie kann ich nun prüfen, ob der User eingelogged ist? Und wie kann ich es verhindern, dass er die Seite Domain.de - Seite nicht gefunden aufruft ohne eingelogged zu sein? Ich verstehe nicht, wie ich in der XHTML Seite, beim Aufruf prüfen lasse ob er eingelogged ist. Und wo hinterlege ich ein ("true" für eingelogged). Fragen über Fragen, hab schon sämtliche Tutorials gegoogled aber das ist alles mit riesen Frameworks, was ich bisschen überladen finde.
 

FINF_AW_Alex

Aktives Mitglied
hey Nico, an so einer Sache arbeite ich auch gerade, das Interface HttpServeletRequest gibt einige Methoden die sehr hilfreich sind, z.B. getRemoteUser() mit der kannst du den aktuell eingeloggten Benutzer ermitteln.

Doku


ein getter für den Benutzernamen sieht bei mir dann so aus:

Java:
    //GETTER für Benutzerinformatinen
    public String getUser() {       
        FacesContext context = FacesContext.getCurrentInstance();
        HttpServletRequest request = (HttpServletRequest)context.getExternalContext().getRequest();      
        user        = request.getRemoteUser();
        return user;
    }

man sollte aber wohl noch ein tryCatch um das request basteln bevor man es richtig einsetzt :)

greetz Alex
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
K JPG file in Java Klasse speichern Allgemeines EE 13
T Java ServerFaces Anwendung mit XHTML & CSS Allgemeines EE 1
E modulare Java-Anwendung verteilen (Camel) Allgemeines EE 0
B Java Mail und idle() mit zig Emailadressen? Allgemeines EE 59
H JWebUnit Fehler: java.lang.NoClassDefFoundError: org/apache/regexp/RESyntaxException Allgemeines EE 24
B Java mail API - möchte nur eine gewisse Anzahl von Emails in die Liste holen Allgemeines EE 3
M Rest mit Java 11 Allgemeines EE 6
M java.lang.SecurityException: class "javax.persistence.TupleElement"'s signer information does not match ... Allgemeines EE 1
F Java Programmierer Allgemeines EE 13
R Wie viel DevOps sollte ein Java-Entwickler kennen, der sich in Microservices spezialisiert? Allgemeines EE 5
Dimax JSP Probleme mit Java in JSP Allgemeines EE 21
Dimax JSP Auf button click java methode ausführen.Ist das möglich? Allgemeines EE 6
B Logging (log4j) in JAVA EE application - WildFly Allgemeines EE 15
A Java EE (am Cleint) und websocket Allgemeines EE 8
J Ich kann Java JDK nicht downloaden Allgemeines EE 6
R Aufbau zum Java EE Entwickler - Schulungen Allgemeines EE 0
G Java EE Hosting ? Allgemeines EE 6
P Java EE Videotutorials Allgemeines EE 1
R Java Enterpise entwickeln mit Virtualbox Allgemeines EE 6
A OutOfMemoryError: Java heap space Allgemeines EE 7
I Start Word from Java Allgemeines EE 1
T Java Jersey Interceptor Allgemeines EE 7
R Post Variable in Java Allgemeines EE 8
L JSP Fehlermeldung bei Verwendung von Java-Expression-Language Allgemeines EE 8
K Wie habt ihr Java EE gelernt? Allgemeines EE 11
hjpsoft JSF Lösung einer Aufgabe im "Workshop Java EE7" Allgemeines EE 5
S Welcher Java EE Applikationserver für RESTful Webservice? Allgemeines EE 2
T Java Login Allgemeines EE 1
L Certified Master Java Enterprise Architect Java EE Allgemeines EE 3
R Java EE 6, eclipse, maven, jsf, hibernate, mysql Allgemeines EE 8
D Einfaches Java Projekt funktioniert nicht Allgemeines EE 3
W Authentifizierung und Sessions in Java EE7 Allgemeines EE 0
OnDemand Task in Java ee Allgemeines EE 7
OnDemand Deployen ohne .java Files Allgemeines EE 0
E Wie kann ich über einen Suchfeld in Java Server Pages nach Datenbankinhalten suchen? Allgemeines EE 11
V Java EE 7 CDI, annotations und beans Allgemeines EE 1
G Bachelorthesis: Java oder PHP (CMS) Allgemeines EE 7
X Konsolenausgabe einer java klasse in eine jsp umleiten Allgemeines EE 7
S Aufruf eines EJBs aus einer nativen Java-Applikation Allgemeines EE 1
T Fertiges html javascrip css template in java EE application Allgemeines EE 0
F Eclipse/Java EE Debug-Problem Allgemeines EE 1
D Java Projekt goes Webservice Allgemeines EE 6
L Button Handling in JSP mit Java-Backend Allgemeines EE 2
Shams Frage zu Dowload von JAVA SDK Allgemeines EE 5
T Größeres Java EE Beispiel Projekt Allgemeines EE 4
N JavaScript schickt und Java empfängt? Allgemeines EE 4
O Java EE in Netbeans + allgemeine Fragen Allgemeines EE 5
H java selenium spezis? Allgemeines EE 4
H java selenium test connection refused Allgemeines EE 6
M Java EE-Technologie-Lern-Wahl Allgemeines EE 5
B [EJB] javax.inject.DefinitionException: bean not a Java type Allgemeines EE 5
J Java Dependencies auslesen Allgemeines EE 19
2 installation java EE Allgemeines EE 12
J PHP oder Java? Allgemeines EE 12
L Webseiten Formulare über Java Oberfläche ausfüllen? Allgemeines EE 2
T Java CMS Entwicklung : Welcher Weg ist besser? Allgemeines EE 9
F Gesucht: Gratis Server für Java Entwickler Allgemeines EE 4
J Einstieg in Java EE Allgemeines EE 5
aze Eclipse Java EE Web Project:Wo liegen die Servlets ? Allgemeines EE 4
S java Entities Problem Allgemeines EE 19
D Grundüberlegung Java Webprojekt Allgemeines EE 10
F Einstieg in Java EE - Beispielanwendungen Allgemeines EE 52
R JAVA EE - eigene Klassen aus EJB übernehmen Allgemeines EE 2
T "normales" Java Programm auf einen Server laufen lassen Allgemeines EE 3
M EE6+EJB+JavaLib: Error in annotation processing: java.lang.NoClassDefFoundError Allgemeines EE 4
G java ResourceLocator Allgemeines EE 12
M Was ist mit Java möglich? Allgemeines EE 13
T Komponenten zusammenhänge Java EE Allgemeines EE 7
A Java CMS Allgemeines EE 2
P Architektur Java EE <-> HTML5 Allgemeines EE 3
A Java Tomcat findet Website nicht Allgemeines EE 8
F Java EE Server nutzung kostenlos an Schule? (zB. mit Glassfish) Allgemeines EE 6
B Java EE, kickstart my heart Allgemeines EE 10
P Frage zu Java EE Design Patterns Allgemeines EE 3
G EJB und Java EE - No Persistence provider Allgemeines EE 5
zilti Java EE Hosting, worauf muss ich achten? Allgemeines EE 5
M Java EE6: Wie Login-Vorgang durchführen? Allgemeines EE 2
MQue Java Web- Application -> MVC Allgemeines EE 4
G Java <-> Flex Allgemeines EE 2
Spin Ant - Java Beans umsetzen Allgemeines EE 4
V "null" durch NICHTS ersetzen jsp und java beans Allgemeines EE 3
M Serialisierung und Klonen in Java Allgemeines EE 5
W JAVA Optionen auslesen Allgemeines EE 3
D Spring 3 vs. Java EE 6 Allgemeines EE 33
MQue CMS in Verbindung mit Java Allgemeines EE 16
X3TitanCore Java Servertechnologie Allgemeines EE 7
C WebStart Fehler nach update auf Java 1.6 Allgemeines EE 2
R Variablen statt Java-Methoden in EL's Allgemeines EE 4
T Suche Buch für: Large Scale Web-Apps | Clustering | Scaling in Java ? Allgemeines EE 4
G Vergleich zwischen Java Spirng und Ruby on Rails Allgemeines EE 9
K EJB Enterprise Java Beans Allgemeines EE 32
F Ich will mit Java Internetseiten bauen, aber wo hosten? Allgemeines EE 14
J OOP Java Array Problem Allgemeines EE 2
T Problem mit Java Transaction API Allgemeines EE 2
D Java EE vs. Spring/Hibernate Allgemeines EE 26
R Java EE Anfänger will mehr. Allgemeines EE 7
A Fragen zum Einstieg in Java EE Allgemeines EE 11
M Evolution der Web-Entwicklung im Java-Bereich Allgemeines EE 15
N erstes Java EE Projekt - Server/ EJB-Verbindung-Anfängerfage Allgemeines EE 17
G Von Java SE nach JavaEE umsteigen Allgemeines EE 31

Ähnliche Java Themen

Neue Themen


Oben