funkt. encodeURL auch wenn Cookies eingeschalten sind

Status
Nicht offen für weitere Antworten.

MQue

Top Contributor
Hallo,

funktioniert encodeURL (also dass eine sessionid mit der URL mitgesendet wird) auch dann, wenn am Browser Cookies eingeschalten sind?

lg
 

MQue

Top Contributor
wahrscheinlich ist die Frage unverständlich oder falsch gestellt, mir ist bis jetzt nur bekannt, dass, wenn die Cookies am Browser ausgeschalten sind, dann kann man die Sessionid mit der URL (encodeURL) mitschicken,

ich ich wollte jetzt eben wissen ob das Mitschicken der Sessionid auch funktioniert, wenn am Browser Cookies eingeschalten sind?

Vielen Dank,
lg
 

JanHH

Top Contributor
Soweit ich weiss ist der Sinn der Funktion, zu erkennen, ob der Browser Cookies akzeptiert oder nicht, und ggf (also wenn Cookies deaktiviert sind) die session-id in die URL einzubauen (damit die Session wiedererkannt wird). Wenn Cookies aktiviert sind, wird die session-id ja über selbige übertragen.

Wenn Du also die session-id auch dann in der URL haben willst, wenn Cookies aktiviert sind, dann musst Du Dir dafür wohl eine eigene Funktion schreiben. Aber allzu schwierig ist das ja eigentlich nicht..

Frage mich nur, welchen Sinn das haben soll.
 
M

maki

Gast
ich ich wollte jetzt eben wissen ob das Mitschicken der Sessionid auch funktioniert, wenn am Browser Cookies eingeschalten sind?
Bei manchen Servern(zB. Tomcat) kann man konfigurieren, dass Cookies nicht benutzt werden.
 

JanHH

Top Contributor
Mir fällt nur gerade auf, dass es für den Threadstarter vermutlich weniger aufwand gewesen wäre, es einfach auszuprobieren, anstatt hier die Frage zu posten.
 

MQue

Top Contributor
Weiß jemand warum mein Code von unten nicht funktioniert, wenn ich die Cookies am Browser ausschalte?
Wenn die Cookies eingeschalten sind, dann funkionierts einwansfrei!

Ich vermute mal, das mit dem encodeURL stimmt nicht!?

lg


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

        System.out.println("request: " + session);

        if(session.getAttribute("list") != null) {
            final String s = request.getParameter("var");
            final List<String> list = (List<String>)session.getAttribute("list");
            list.add(s);
            System.out.println("Das ist die List in if: " + list);
            }
        else {
            List<String> list = new ArrayList<String>();
            final String s = request.getParameter("var");
            list.add(s);
            session.setAttribute("list", list);
            System.out.println("Das ist die List in else: " + list);
            }

        try {
            final String path = response.encodeURL("/zweiteSeite.jsp");
            final RequestDispatcher view = request.getRequestDispatcher(path);
            view.forward(request, response);
            }
        finally {
            out.close();
            }
        }
 

JanHH

Top Contributor
Kannst Dir doch mal "path" nach Aufruf von encodeURL anzeigen lassen (System.out.println..), dann wirst Du ja sehen ob es ok aussieht.
 

MQue

Top Contributor
Kannst Dir doch mal "path" nach Aufruf von encodeURL anzeigen lassen (System.out.println..), dann wirst Du ja sehen ob es ok aussieht.

Java:
String encodedUrl = response.encodeURL("/URLTest/zweiteSeite.jsp");
            System.out.println("Das ist die encodeURL: " + encodedUrl );
            final RequestDispatcher view = getServletContext().getRequestDispatcher(encodedUrl);
            view.forward(request, response);

Mit dem code oben bekomme ich die Anzeige im Browser:

Code:
HTTP Status 404 - /URLTest/URLTest/zweiteSeite.jsp;jsessionid=5B6D58CA1D2B91ED8B024497C0C15F90

also ein /URLTest zuviel, wenn ich:

Java:
String encodedUrl = response.encodeURL("zweiteSeite.jsp");  // ohne /URLTest
            System.out.println("Das ist die encodeURL: " + encodedUrl );
            final RequestDispatcher view = getServletContext().getRequestDispatcher(encodedUrl);
            view.forward(request, response);

schreibe, dann wird die jsessionid nicht angehängt.

keine Ahnung was ich da machen kann?

lg
 

JanHH

Top Contributor
Du kannst sie per Hand in die URL einbauen!

Brutalo-Lösung:

- Du rufst encodeURL für die URL mit "/URLTest" auf. Dann guckst Du per String.indexOf("jsessionid"), ob die jsessionid in die URL eingebaut wurde.
- wenn ja, dann baust Du sie "per Hand" in die eigentliche URL (also die ohne URLTest) ein.

nicht ganz die feine englische Art aber funktioniert zumindest.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben