2017-03-05 6 views
1

unaccessible mache ich eine JSP, die von einem Servlet geöffnet wird, so kann ich dies eine Variable weiterleiten, indem Sie:JSP von außen

RequestDispatcher dispatcher = request.getRequestDispatcher("/Page.jsp"); 
request.setAttribute("filesystem", getFileSystem()); 
dispatcher.forward(request, response); 

Ohne die „Dateisystem“ Variable die JSP würde keinen Inhalt haben mit Ausnahme das Sidebar- und Header-Menü.

Mein Problem ist, dass der Benutzer immer noch in der Lage ist, die JSP aufzurufen, indem website.com/Page.jsp in den Browser eingeben.

Gibt es trotzdem eine Möglichkeit, den Benutzer davon abzuhalten?

+0

Wenn Sie einen Benutzer vom Zugriff auf eine bestimmte Seite einschränken möchten, sollten Sie die Sitzungsverwaltung verwenden –

+2

Setzen Sie Ihre JSPs in WEB-INF –

+0

@MouadELFakir dies scheint die richtige Antwort auf mein Problem zu sein =] –

Antwort

1

Eigentlich kann man JSP Dateien an einer beliebigen Stelle in der WAR Datei setzen, aber wenn wir es innerhalb des WEB-INF Verzeichnis gesetzt ist, können Benutzer den Zugang zu verhindern, dass es direkt von der externen.

Dann erneut anpassen Code diese Änderungen in Betracht zu ziehen:

RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/Page.jsp"); 
//... 
dispatcher.forward(request, response); 
0

Sie sollten Ihren JSPs innerhalb WEB-INF-Verzeichnis platzieren, die den Zugriff von außen nicht zugänglich für die Nutzer ist. Technisch Servlet-Container liefern keinen Inhalt innerhalb des WEB-INF-Verzeichnisses und daher sind unsere JSPs vor direktem Zugriff geschützt.

Beispiel:

<servlet> 
     <display-name>userdata</display-name> 
     <servlet-name>userdata</servlet-name> 
     <jsp-file>/WEB-INF/userdata.jsp</jsp-file> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>userdata</servlet-name> 
     <url-pattern>/userdata</url-pattern> 
    </servlet-mapping> 

Hinweis: Betrachten Sie Frameworks wie Struts, Spring verwendet, die solche kleinen Dinge in eine bequemere Art und Weise behandelt.