Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    615

    Due brevi quesiti sulle modalità di apertura delle pagine JSP (grazie)

    Cari utenti,
    avrei due quesiti molto semplici relativi alla mia web application sviluppata in Java.

    1) La mia web application permette all'utente di navigare attraverso diverse pagine jsp utilizzando il comando che indico sotto. Purtroppo però nella barra di navigazione resta sempre visibile il nome della servlet (ed a volte anche quello dei parametri che alla servlet sono stati passati), come posso fare in modo che in quella barra si visualizzi sempre lo stesso link, magari preimpostato da me?

    codice:
    request.getRequestDispatcher("/miapagina.jsp").forward(request,response);
    2) Succede una cosa piuttosto strana. Il percorso per raggiungere dal browser una mia certa pagina jsp della mia applicazione è http://localhost:8080/myapp/login.jsp. Se apro quella pagina passando per la stessa applicazione, ad esempio impostandola come prima pagina di avvio dal file web.xml o richiamandola da una servlet, tutto funziona correttamente. Se invece apro quella pagina digitando direttamente nel browser il pecorso che vi ho appena indicato pare che la pagina visualizzi il contenuto in modo "grezzo" ignorando qualsiasi stile css o tag jstl. Come mai? La cosa per me è pittosto importante in quanto uno di quei tag condizionali jstl serve proprio a non far vedere il contenuto della pagina qualora l'utente non sia regolarmente autenticato e tenti di accedere alla pagina in modo diretto.

    Grazie a tutti per l'attenzione.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Rispondendo alla prima domanda: solo da quella riga di codice non saprei cosa dirti, la prima cosa che mi sovviene è fai una post o una get?
    rispondendo alla seconda domanda: probabilmente è semplicemente una questione di path delle risorse (non vedendo codice vado ad intuito).

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    615
    Innanzitutto grazie per la tua risposta. Dimmi quale codice o informazioni ti occorrono per capire meglio il problema e ti posto tutto quello che ti occorre, anzi scusa se sono stato carente nei dati ma non volevo inserire un post chilometrico!

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    riguardo al primo caso dovrei vedere come componi la request, nel secondo caso come riferisci gli elementi di stile (cmq le risorse locali che chiami dalla pagina jsp)

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    615
    Subito.

    Primo caso: ti posto tutta la servlet che chiama la pagina.

    codice:
    package srvSession;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet implementation class SrvStart
     */
    public class SrvStart extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public SrvStart() {
            super();
            // TODO Auto-generated constructor stub
        }
    
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		request.getRequestDispatcher("/login.jsp").forward(request,response);
    	}
    
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		doGet(request,response);
    		
    	}
    
    }

    Nel secondo caso, la pagina jsp ha in testa l'istruzione
    codice:
    <%@include file="/include/includemain.jsp"%>
    che richiama a sua volta la pagina includemain.jsp che si compone così, richiamando nell'ordine la libreria jstl, un file con i testi che verranno usati nella pagina, il file css con gli stili ed un file javascript. Tutti questi file si trovano nella cartella WebContent del progetto e tutto funziona benissimo, se apro usando il progetto e non un link diretto.
    codice:
    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
    <fmt:setBundle basename="properties.languages.texts" />
    <LINK href="css/sizedesktop.css" rel="stylesheet" type="text/css">
    <script type="text/javascript" src="js/js-layout.js"></script>

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    si vedi però che stai specificando un path assoluto,

    codice:
    <%@include file="/include/includemain.jsp"%>
    devi invece specificare un path relativo partendo dalla posizione attuale di index.jsp (path che sicuramente non inizia con "/")

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    615
    Ho copiaincollato tutta la include direttamente nella jsp, e quei path non iniziano per "/", il risultato non cambia. ALtri suggerimenti?

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    tu vai a specificare un path ad un file e devi mettere la risorsa in condizione di trovare il file da te richiesto.
    ora tu dici che sei in index.jsp, ma dove si trova il file?dentro include? e la cartella include dove si trova?
    probabilmente devi mettere come path

    codice:
    <%@include file="include/includemain.jsp"%>
    ponendo in questo caso la cartella include allo stesso livello di index.jsp.

    La cartella web come è fatta? Il deploy come lo fai??
    Riguardo al primo parametro, usa dopost e non doget guarda

    qui

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    615
    Valia, ti ringrazio tantissimo. Ho capito che per richiamare correttamente risorse anche in modo "statico", quelle risorse devono per forza trovarsi sotto la root della pagina che richiama. Resta un ultimo problema, si richiamano css e js, ma non jstl. Il collegamento che ancora pare fare le bizze è questo, e non c'è verso di farlo ragionare, neppure con la struttura attuale:

    codice:
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fn"%>

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    su jstl non ti so aiutare visto che l'ho usato pochissimo sorry

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 © 2025 vBulletin Solutions, Inc. All rights reserved.