Ciao, posso dirti che ti capisco perfettamente. Allora proviamo a fare un pò di ordine nelle idee.
Quando devi realizzare un applicazione J2EE non è sufficiente conoscere come si realizza una servlet,jsp o EJB, è fondamentale capire come utilizzarli per realizzare l'idea progettuale che hai.
Adesso nel nostro caso possiamo dire che nei progetti web J2EE ci sono alcuni punti fissi, da un punto di vista architetturale, comuni a tutte le applicazioni ben fatte. Sto parlando dei seguenti aspetti:
- Pattern MVC (Model View Controller)
- Architettura a layer
Il pattern MVC definisce quindi come deve essere la struttura portante della tua applicazione:
1- Model.
Il modello, ovvero le classi che rappresentano il dominio dei dati. Ad esempio immagina di
di realizzare un sistema web tipo quello di repubblica, entità come Articolo o News fanno
parte del tuo dominio dei dati e per esse realizzerai ad esempio le classi Articolo e News.
2. View (Vista). Con View si intende la modalità di presentazione dei dati . Nel caso di
applicazioni J2EE sono rappresentate da pagine JSP. E' importante capire che in pagine JSP
dobbiamo inserire solo ciò che riguarda la presentazione dei dati che rappresentano la risposta
a seguito della richiesta di un client, nessuna logica di elaborazione dovrebbe essere inserita
in una pagina JSP. Una pagina JSP può rappresentare,ad esempio, un form per l'inserimento
dei dati o una lista di record risultato di una ricerca.
3.Controller. Il controller è quel modulo, nel nostro caso una servlet, responsabile della ricezione
delle richieste http provenienti dal client e della successiva azione da intraprendere per la loro
gestione.
Architettura a layer
Quando realizzi un'applicazione web J2EE hai sempre almeno questi layer dal punto di vista software:
- Presentazione (tutto ciò che riguarda la formazione e la presentazione dei dati)
- Business Logic ( tutto ciò che riguarda logica di elaborazione)
- DAO (tutto ciò che riguarda gli aspetti legati all'accesso ad un db)
Con riferimento a quanto mi hai scritto ,la mia risposta riguardo al riferimento del session bean
è che in una jsp non dovrebbe proprio essere presente una porzione di codice che lo richiama.
In questa risposta non riesco purtroppo a scriverti un esempio di quanto esposto ma se vuoi posso poi darti uno zip con una piccola applicazione che illustra quello che ho scritto.
Per quanto riguarda la tecnologia EJB , e più precisamente JPA, con il file persistence.xml tu definisci verso quale db(datasource) e all'interno di quale schema vuoi mappare le tue entities verso le tabelle.
Creare uno schema può essere necessario se sul db non ne è presente uno che vuoi utilizzare nel tuo progetto. Ad esempio installi un server db (esempio postgres) ti trovi solo gli schema di default e desideri crearne uno per la tua applicazione.Un esempio di persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="
http://java.sun.com/xml/ns/persistenc" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instanc" xsi:schemaLocation="
http://java.sun.com/xml/ns/persistenc http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="MyPersitenceUnit">
<jta-data-source>jdbc/MyDb</jta-data-source>
<properties>
<property name="openjpa.jdbc.Schema" value="MySchema" /></properties>
</persistence-unit>
</persistence>
Dove jdbc/MyDb è il JNDI name definito nella creazione del datasource nel tuo application server,
MySchema è lo schema del db dove risiedono le tue tabelle.All'interno di un session bean recuperi l'EntityManager per questa persistence unit nel seguente modo:
@PersistenceContext(unitName="MyPersitenceUnit")
private EntityManager entityManager;
e gestisci la tua persistenza.... . Per adesso mi fermo qui ma ti suggerirei di andare per gradi,capire bene prima come utilizzare jsp,servlet,classi di modello e classi di logica di business per la tua architettura e poi spostarti verso EJB e JPA per non appesantirti con tante nozioni tutte insieme.Spero di essere stato comprensibile ho voluto farti un pò una prima panoramica.