PDA

View Full Version : Apache+PHP+Java o Tomcat+JSP+Java?


AnonimoVeneziano
25-10-2007, 23:09
olà

Nell'ottica di progettare una Web application, quale di queste combinazioni di tre elementi sarebbe meglio usare?

Nel primo caso vedo tra i vantaggi :

1) Non dover installare Tomcat (visto che c'è già apache sulla macchina dove dovrà essere messa l'applicazione)
2) Non dover usare JavaEE

Nel secondo caso i vantaggi sarebbero essenzialmente una più facilità di integrazione tra i vari componenti, in quanto nel primo caso conosco solo , come metodo di interfacciamento tra PHP e Java , PHP-Java-Bridge, ma ho sentito che non è così affidabile come modulo, mentre JSP+Java+Tomcat sono un connubbio sicuramente più affidabile.

Mi affido ai vostri commenti esperti :)

Ciao

AnonimoVeneziano
26-10-2007, 19:00
Ok, rigiriamo la domanda ....

Io ho un idea piuttosto flebile di come si programma una Web Application .

Non so bene quali sono gli strumenti di sviluppo attualmente migliori per fare una applicazione portabile e senza smadonnare .

Qualcuno di voi sa quale potrebbe essere la combinazione di nomi? Cercando su internet mi sono solo confuso, ti sparano sigle e combinazioni di elementi, ma è stato piuttosto difficile capire. La Java EE SDK la sto già odiando ...

Qualcuno che ha fatto applicazioni che si interfacciano col web può consigliarmi?

Grazie

isAlreadyInUse
26-10-2007, 19:02
Io preferisco Java+tomcat

AnonimoVeneziano
26-10-2007, 19:07
Io preferisco Java+tomcat

Ok, grazie per il consiglio.

Una cosa non ho capito di Java EE però. L'SDK dal sito della SUN bisogna scaricarlo per forza? La versione su Gentoo è VEEEEEEEEECHIA (1.3.1) e proprio non mi si vuole installare la versione 5 su linux (ho una 64 bit e forse smadonna per quello) . Hai notizie a riguardo?

k0nt3
26-10-2007, 19:53
intendi l'sdk di javaEE? nono.. scarica tomcat a parte che implementa la parte che ti serve di javaEE.
se devi per forza interfacciarti a java anche io opterei per tomcat

AnonimoVeneziano
26-10-2007, 20:08
intendi l'sdk di javaEE? nono.. scarica tomcat a parte che implementa la parte che ti serve di javaEE.
se devi per forza interfacciarti a java anche io opterei per tomcat

Beh, il java è una delle scelte per il progetto che devo fare.

Il vantaggio è che già lo conosco abbastanza , ma se hai da consigliare un alternativa buona dì pure :)

Ciao

EDIT: Ah, l'alternativa consigliata se possibile dovrebbe usare Apache come server

^TiGeRShArK^
26-10-2007, 20:27
Comunque io installerei ASSOLUTAMENTE l'ultima versione di java perchè se avrai in qualche modo bisogno di gestire la persistenza su DB quanto meno ti potrai affidare alle annotation piuttosto che a tutti quegli odiosissimi (ed è dire poco :mad: ) file di mapping XML che sinceramente alla fine ti diventano + complessi del tuo progetto.
Se vuoi una soluzione portabile, leggera, facilissima da usare e MOLTO veloce nello sviluppo allora mi sa che l'unica scelta è Ruby On Rails.
Le uniche due pecche veramente gravi secondo me sono la mancanza di free hosting in giro per la rete e la minore velocità rispetto a JEE5.
Ma se le performance non sono un problema prova a darci un'occhio ;)
http://www.rubyonrails.org/

AnonimoVeneziano
27-10-2007, 15:56
Ok, sto provando con tomcat + jsp + java, però eclipse mi fa sclerare!!

Ho installato i plugins "Web tools" di eclipse , ma non riesco ad aggiungere le mie classi java al Deployment descriptor (web.xml) , così quando porto l'applicazione sul server non mi vede un tubo di classi! :cry:

Come funziona questa cosa?

Ciao

feyd
27-10-2007, 16:30
non capisco perchè Apache+PHP+Java.
Dal mio punto di vista la scelta è Apache+PHP o Tomcat-->Java (JSP&Servlet) (scarterei Jboss).
Io ho scelto Tomcat (ed anche Jboss).
Dal sito sun NON devi scaricare il j2ee sdk di fatto per sviluppare con servlet e jsp ti basta la servlet-api.jar che trovi dentro tomcat dove ci sono le api. Sarà poi tomcat a farsi carico dell'implementazione delle stesse.
Le jsp poi non hai nemmeno bisogno di compilarle per cui il jar relativo è perfettamente inutile.

feyd

AnonimoVeneziano
27-10-2007, 17:06
non capisco perchè Apache+PHP+Java.
Dal mio punto di vista la scelta è Apache+PHP o Tomcat-->Java (JSP&Servlet) (scarterei Jboss).
Io ho scelto Tomcat (ed anche Jboss).
Dal sito sun NON devi scaricare il j2ee sdk di fatto per sviluppare con servlet e jsp ti basta la servlet-api.jar che trovi dentro tomcat dove ci sono le api. Sarà poi tomcat a farsi carico dell'implementazione delle stesse.
Le jsp poi non hai nemmeno bisogno di compilarle per cui il jar relativo è perfettamente inutile.

feyd

Mmm, mi sembri esperto!

Allora ti rubo ancora una qualche domanda :p

A prima vista JSP e le Servlets non sembrano molto diverse, anzi, sembra quasi che le JSP siano delle Servlets che si autocompilano al momento della visualizzazione. Quindi a questo punto le servlets a che servono?

Inoltre sai come faccio ad aggiungere dei Java Beans al mio progetto in Eclipse? Io creo una classe normalissima, ma poi Tomcat si rifiuta di caricarmela. Sto impazzendo, non capisco cosa dovrei aggiungere (e nemmeno DOVE aggiungerlo) per fare in modo che tomcat veda le mie classi Java e possa usarle con <jsp:useBean> una volta trovate nel file .jsp .

isAlreadyInUse
27-10-2007, 17:30
Che tipo di progetto hai creato in eclipse?

Java project
o Dynamic Web Progect?

isAlreadyInUse
27-10-2007, 17:33
http://it.wikipedia.org/wiki/Model-View-Controller

AnonimoVeneziano
27-10-2007, 17:54
Che tipo di progetto hai creato in eclipse?

Java project
o Dynamic Web Progect?

Dynamic Web Project

Comunque mo ho provato su vista ed esportando il WAR funziona. Sotto linux mi da un errore tipo : "Bad .class version" o una roba del genere :mbe:

Inoltre sotto linux quando uso le funzioni della Java EE in eclipse si impalla dopo pochi minuti. (scompare la GUI)

Farò qualche test cambiando JVM ....

Ah, un altra cosa.

Per quanto riguarda la direttiva <%@ page import="xxx"%/> ...

Se faccio <%@ page import="it.package.*"/%> se cerco di usare le classi in it.package come :

<jsp:useBean id="xXX" scope="page" class="Oggetto"/>

mi da un errore di visibilità (mi dice che Oggetto non lo trova in pratica)

Se invece gli do :

<jsp:useBean id="xxx" scope="page" class="it.package.Oggetto"/>



allora funziona.

Qual'è la politica per l'import??

Grazie

Ciao

AnonimoVeneziano
28-10-2007, 09:46
Raga, avete idea di come poter tenere dei file di configurazione nella mia applicazione in modo che siano slegati dal path assoluto?

Grazie

isAlreadyInUse
28-10-2007, 10:09
Mettili a livello delle classi

AnonimoVeneziano
28-10-2007, 10:13
Mettili a livello delle classi

Ok, ma il problema è che la directory "." per il programma è (al momento in cui lo faccio partire via netbeans) "D:\DLoads\apache-tomcat-6.0.14\apache-tomcat-6.0.14\bin" il che è male ovviamente, visto che in \bin non ci stanno le mie classi. Io pensavo che di default la cartella "." fosse quella dove è dislocato il mio index.jsp

Sto iniziando ad odiare le applicazioni web ....

feyd
29-10-2007, 07:56
Mmm, mi sembri esperto!

Allora ti rubo ancora una qualche domanda :p

A prima vista JSP e le Servlets non sembrano molto diverse, anzi, sembra quasi che le JSP siano delle Servlets che si autocompilano al momento della visualizzazione. Quindi a questo punto le servlets a che servono?

Inoltre sai come faccio ad aggiungere dei Java Beans al mio progetto in Eclipse? Io creo una classe normalissima, ma poi Tomcat si rifiuta di caricarmela. Sto impazzendo, non capisco cosa dovrei aggiungere (e nemmeno DOVE aggiungerlo) per fare in modo che tomcat veda le mie classi Java e possa usarle con <jsp:useBean> una volta trovate nel file .jsp .

Hai visto giusto: jsp e servlet a runtime sono la stessa cosa. Non si autocompilano bensì è tomcat che le compila trasformandole in una servlet particolare.
L'utilità se ben usate sta nel fatto che la logica di controllo viene scritta a partire da una servlet con tutta la potenza che java rende disponibile. poi la visualizzazione all'utente viene fatta attraverso una jsp dove si deve ridurre al minimo il codice java (i.e. non mettere logica nelle jsp se puoi) in maniera tale che uno sviluppatore html/css ed un grafico possano poi perfezionare l'aspetto senza conoscere nulla (o quasi) di programmazione.
La prima domanda è un grande classico di chi si avvicina a JSP e Servlet per cui penso che in rete troverai spiegazioni motlo più esaurienti della mia ;)
Quello che ti ho appena esposto è il Model View Controller Pattern (MVC2).

Le jsp possono usare qualsiasi classe java usando le direttive di import.
Le specifiche di una web application sono tali per cui tutte le classi che vanno usate devono essere nelle directory WEB-INF/classes e WEB-INF/lib della tua web application.

Per partire ti consiglio il sito www.coreservlets.com li trovi anche la prima e seconda :eek: edizione del libro di marty hall http://volume1.coreservlets.com/

feyd

AnonimoVeneziano
29-10-2007, 16:02
Grazie feyd, OTTIMO LIBRO!! :eek:

Senti una domanda che mi è venuta in mente adesso leggendo il thread di un altro utente ...

Mettiamo il caso che ho un file XML che uso come database per alcuni dati (ad esempio nome utente e password di utenti dell'applicazione). Come faccio ad accedere univocamente a questi file all'interno della mia applicazione senza dover specificare l'intero "path" dei files in questione? (il che sarebbe tra l'altro una cattiva idea , perchè cambiando la cartella in cui sta l'applicazione bisognerebbe modificare il sorgente del programma).

Mi sfugge ancora questo concetto.

Grazie

Ciao :)

feyd
01-11-2007, 15:46
per fare quello che chiedi ci sono tante tecniche la piu semplice è quella di utilizzare il metodo
ServletContext.getServletContext().getResourceAsStream(String path)
chiedi al servlet context di ritornarti un'input stream del file che vuoi leggere. Se metti il file nella WEB-INF/classes dovresti essere a posto.

feyd