Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Problema settaggio cookie con Servlet

    Rieccomi per un nuovo problema
    Allora, durante l'elaborazione di una JSP, mi collego ad un Servlet e gli passo dei parametri che serviranno per specificare i dettagli dei cookie da aggiungere alla response:

    codice:
    <c:choose>
        <c:when test = "${!empty param.remember}">
            <c:import url = "/addCookie">
                <c:param name = "userName" value = "${validUser.userName}"/>
                <c:param name = "password" value = "${validUser.password}"/>
                <c:param name = "age" value = "${60 * 60 * 24 * 30}"/>
            </c:import>
        </c:when>
        <c:otherwise>
            <c:import url = "/addCookie">
                <c:param name = "userName" value = "${validUser.userName}"/>
                <c:param name = "password" value = "${validUser.password}"/>
                <c:param name = "age" value = "0"/>
            </c:import>
        </c:otherwise>
    </c:choose>
    Questo il servlet:
    Codice PHP:
    package servlets;

    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.Cookie;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    public class 
    addCookie extends HttpServlet {

        protected 
    void processRequest(HttpServletRequest requestHttpServletResponse response)
        
    throws ServletExceptionIOException {
                
    Cookie userNameCookie = new Cookie ("userName"request.getParameter ("userName"));
                
    Cookie passwordCookie = new Cookie ("password"request.getParameter ("password"));
                
    userNameCookie.setMaxAge (Integer.parseInt (request.getParameter ("age")));
                
    passwordCookie.setMaxAge (Integer.parseInt (request.getParameter ("age")));
                
                
    response.addCookie(userNameCookie);
                
    response.addCookie(passwordCookie);
        } 
        protected 
    void doGet(HttpServletRequest requestHttpServletResponse response)
        
    throws ServletExceptionIOException {
            
    processRequest(requestresponse);
        } 

        protected 
    void doPost(HttpServletRequest requestHttpServletResponse response)
        
    throws ServletExceptionIOException {
            
    processRequest(requestresponse);
        }

    Mi accorgo del non funzionamento poichč quando tento di richiamare tramite espressione EL i cookie (${cookie.userName.value}) il risultato č null.
    Qualche idea?

  2. #2
    Dopo vari test ho potuto constatare che oltre al fatto che il link relativo al servlet č errato considerando la posizione della pagina che lo richiama, le operazioni che il servlet dovrebbe compiere non vengono eseguite nč con <c:import> nč con <jsp:include>. Se invece utilizzo un redirect o un forward il servlet viene eseguito correttamente. Ma siccome inserendo un redirect o un forward mi stravolgerebbe un pņ il sistema dell'applicazione, mi chiedo se esiste qualcosa di simile, e mi chiedo soprattutto perchč c:import e jsp:include non eseguono il servlet... a cosa servono allora?

  3. #3
    Ho provato a creare i Cookie direttamente utilizzando la stessa JSP invece di invocare il servlet:

    Codice PHP:
    ...
    <%@ 
    page import "javax.servlet.http.Cookie" %>
    <% 
    Cookie userNameCookiepasswordCookie; %>
    <
    c:choose>
        <
    c:when test "${!empty param.remember}">
            <%
                
    userNameCookie = new Cookie ("userName"request.getParameter ("userName"));
                
    passwordCookie = new Cookie ("password"request.getParameter ("password"));
                
    userNameCookie.setMaxAge (60 60 24 30);
                
    passwordCookie.setMaxAge (60 60 24 30);
                
                
    response.addCookie(userNameCookie);
                
    response.addCookie(passwordCookie);
            %>
        </
    c:when>
        <
    c:otherwise>
            <%
                
    userNameCookie = new Cookie ("userName"request.getParameter ("userName"));
                
    passwordCookie = new Cookie ("password"request.getParameter ("password"));
                
    userNameCookie.setMaxAge (0);
                
    passwordCookie.setMaxAge (0);
                
                
    response.addCookie(userNameCookie);
                
    response.addCookie(passwordCookie);
            %>
        </
    c:otherwise>
    </
    c:choose>
    ... 
    Ma non funziona! Insomma, cos'č che sbaglio? Prima non mi funzionano le action per includere il servlet esterno e ora non mi funziona questo frammento di codice... sto impazzendo .__.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.