Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    3

    [Java] Ricavare il contesto di una Servlet

    Salve a tutti,

    avrei necessità di ricavarmi il contesto di una servlet in java...
    Per meglio dire la mia situazione è questa: all'avvio del servet Tomcat lancio una certa servlet, da questa pianifico il lancio di altre servlet... ma per lanciare le servlet pianificate devo (per forza) passargli un contesto...

    Posso farlo? come?

    Grazie e Saluti.
    P.s.
    eventualmente scusate la poca chiarezza, ma sono "nuovo" nel mondo Java...

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    Sinceramente non ho ben capito cosa tu voglia fare e solo la premessa (sono nuovo nel mondo Java) mi lascia alquanto basito.

    Servlet e compagnia bella sono argomenti che riguardano JavaEE, insieme di tecnologie avanzate che non si dovrebbe nemmeno guardare se non si conoscono in modo solido le basi di JavaSE. Ma tant'è.

    Veniamo al problema del topic: ricavare il contesto di una Servlet.

    Se intendi ricavare il ServletContext, la strada è semplice. L'interfaccia Servlet espone il metodo getServletConfig(), che restituisce un oggetto ServletConfig, dal quale è possibile richiamare il metodo getServletContext() per ottenere proprio il ServletContext.

    Quindi, dall'interno di un metodo della Servlet:

    codice:
    ServletContext ctx = getServletConfig().getServletContext();
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    3
    Ciao e grazie della risposta.

    Avevamo un RAD che scriveva in un certo linguaggio, adesso ci hanno "migrato" sul nuovo prodotto RAD che scrive codice JAVA... senza che nessuno conosca un'istruzione java!!! (sono disperato!!!)

    Ed oltre a cercare di farmi una "J-cultura" devo anche "finire" un progettino... ho ancora difficoltà con classi e metodi, figuriamoci con il mondo JavaEE.

    Fattostà che dovrei lanciare una schedulazione di operazioni all'avvio del tomcat, ed a questo sono arrivato... ma le operazioni da lanciare sono servlet create dal RAD.

    Queste servlet del RAD devono essere lanciate passando contesto e stato del contesto (questo però può essere anche null) come parametri...

    All'avvio del Tomcat, tramite il web.xml faccio partire una mia servlet (scritta in java, senza RAD) che "istanzia" le pianificazioni (al momento stampo in console la data per veder che "giri")... ma adesso dovrei lanciare le famose servlet del RAD, ma non ho idea di come passargli il paramerto del contesto... e quello che gentilmente mi hai postato tu devo capire dove "inserirlo"... (dopo il costruttore della classe schedulata, prima del BL???)

    Grazie ancora, scusate sfogo/ignoranza, ma è venerdi e sono a pezzi...

  4. #4
    Sinceramente, come LeftFT, non ho capito molto bene cosa vorresti fare. O meglio, per capirlo bisognerebbe avere un esempio del codice che usi.
    Quando la tua RAD genera le servlet, in che modo gli dovresti passare il parametro context? Da costruttore? oppure dopo?
    Se dovessi passarli da costruttore, le servlet che generano la RAD dovrebbero essere tipo questa
    codice:
    public class ServletGenerata extends HttpServlet {
        public ServletGenerata (ServletContext context) {
            //...
        }
        //....
    }
    Puoi richiamarla da un'altra servlet semplicemente istanziandola, quindi:
    codice:
    public class TuaServlet extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            new ServletGenerata(getServletConfig().getServletContext()).doGet(request, response);
        } 
    }
    lolide
    Java Programmer

    Informati

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    3
    Ciao e Grazie...

    scusate la pochezza d'informazioni, cerco di rimediare.

    Dal codice generato dal RAD viene richiamata cosi (io dovrei "richiamare" r_caricaarticoliR):

    codice:
    ...  
    private void ExecuteRoutine(ServletStatus status) throws IOException {
        r_caricaarticoliR Rcalled;
        Rcalled = new r_caricaarticoliR(status.context,status);
    ...
    dove status lo generano da:

    codice:
      public void doProcess(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {
        // Inizializzazione delle variabili della classe globale di stato
        ServletStatus status;
        status = new ServletStatus();
        status.containing = this;
        SPParameterSource source;
        source = SPLib.GetSource(request);
    io necessiterei di richiamare r_caricaarticoliR(...) da:

    codice:
    private void scheduleParse() {
    	
    	try {
    		//r_caricaarticoliR(contesto, null)
    		System.out.println(CPLib.DateTimeToChar(CPLib.DateTime()));  
    		
    	}
    	catch (Exception e) {
    		System.out.println("Errore: " +e.getMessage());
    	}
    }
    }, 0, this.minutes * 60 * 1000);

    E' sufficiente o mancano ancora informazioni?
    Grazie 1000, ancora.

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.