Esercizi java ee - slide - manuale pratico

di il
19 risposte

Esercizi java ee - slide - manuale pratico

Buongiorno,

Qualcuno di Voi, ha dei esercizi con soluzioni in java ee? mi serve per esercitarmi e capire di più gli argomenti.
-jdbc
-spring mvc
-hibernate

In rete non trovo niente.


saluti

19 Risposte

  • Re: Esercizi java ee - slide - manuale pratico

    robot ha scritto:


    Qualcuno di Voi, ha dei esercizi con soluzioni in java ee? mi serve per esercitarmi e capire di più gli argomenti.
    -jdbc
    -spring mvc
    -hibernate

    In rete non trovo niente.
    Di "esercitazioni" su webapp JavaEE, specialmente se si tira in ballo una base dati su DB, se ne possono fare a carriolate.
    Non saprei adesso dirti dove reperire esercitazioni di questo livello in rete. Vuoi qualche suggerimento, per esempio?
  • Re: Esercizi java ee - slide - manuale pratico

    Si, se gentilmente mi puoi fare un elenco dove reperire.

    Grazie
  • Re: Esercizi java ee - slide - manuale pratico

    robot ha scritto:


    Si, se gentilmente mi puoi fare un elenco dove reperire.
    Dove reperirne, come ho detto non lo so.

    Uno scenario modesto/banale: realizzare una "rubrica telefonica" in cui registrare i telefoni delle persone. Con possibilità di inserire/modificare/eliminare contatti (e più telefoni per contatto), elencarli con possibilità di filtri/ordinamenti vari.
    Con una base dati su DB, mettendo in gioco Spring con Hibernate (o in alternativa anche solo l'uso diretto di JDBC), ti assicuro che "ti impegna un po' ".
  • Re: Esercizi java ee - slide - manuale pratico

    Va bene ci provo.
    Una volta realizzato, ti consegno il progetto in formato rar o zip.

    Grazie
  • Re: Esercizi java ee - slide - manuale pratico

    Ciao,
    Ecco il primo problema riscontrato, che non capisco il perchè non fa uscire tutti i dati nella tabella.

    Vedi codice SERVLET:
    
    private QueryJdbc queryJdbc;
    	
    	public rubricaservletjdbc() {
    		queryJdbc = new QueryJdbc();
    	}
    
    	protected void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		String pagina = "/index.jsp";
    		
    		try {
    			List<RubricaTelefonica> list = queryJdbc.listaRubrica();
    			request.setAttribute("listavisualizza", list);
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    		
    		RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(pagina);
    		dispatcher.forward(request, response);
    	}
    
    

    Vedi codice QUERY:
    
    //Lista Rubrica
    	public List<RubricaTelefonica>listaRubrica() throws SQLException{
    		List<RubricaTelefonica>rubricaTelefonicas = new ArrayList<>();
    		Connection con = DatabaseJdbc.getConnection();
    		
    		String sql = "select * from rubricatelefono";
    		PreparedStatement pr = (PreparedStatement) con.prepareStatement(sql);
    		ResultSet rSet = pr.executeQuery();
    		
    		while(rSet.next()) {
    			RubricaTelefonica rubricaTelefonica = new RubricaTelefonica();
    			rubricaTelefonica.setId(rSet.getInt("id"));
    			rubricaTelefonica.setNome(rSet.getString("nome"));
    			rubricaTelefonica.setCognome(rSet.getString("cognome"));
    			rubricaTelefonica.setLocalita(rSet.getString("localita"));
    			rubricaTelefonica.setTelefono(rSet.getString("telefono"));
    			rubricaTelefonicas.add(rubricaTelefonica);
    		}
    		return rubricaTelefonicas;	
    	}
    
    

    Vedi codice pagina JSP:
    
    <c:set var="listarubrica" value='${requestScope["listavisualizza"]}' />
    <table border="1" align="center">
    
    			<tr>
    				<th>Id</th>
    				<th>Nome</th>
    				<th>Cognome</th>
    				<th>Località</th>
    				<th>Telefono</th>
    			</tr>
    
    			<tr>
    				<td><c:out value='${listarubrica.getId()}' /></td>
    			</tr>
    
    			<tr>
    				<td><c:out value='${liste.getNome()}' /></td>
    			</tr>
    
    			<tr>
    				<td><c:out value='${liste.getCognome()}' /></td>
    			</tr>
    
    			<tr>
    				<td><c:out value='${liste.getLocalita()}' /></td>
    			</tr>
    
    			<tr>
    				<td><c:out value='${liste.getTelefono()}' /></td>
    			</tr>
    
    		</table>
    
    
    perchè non prende i dati?
  • Re: Esercizi java ee - slide - manuale pratico

    robot ha scritto:


    non capisco il perchè non fa uscire tutti i dati nella tabella.
    perchè non prende i dati?
    Stai mettendo come attributo una lista di tuoi oggetti. Nella JSP per iterare sulla lista con JSTL si usa il <c:forEach>
    In questo mio post c'è un esempio d'uso.


    Per il resto, vedo che è molto terra-terra: uso diretto di Servlet/JSP e uso diretto di JDBC con la connection presa con quel DatabaseJdbc.getConnection().
    Come "esercitazione" iniziale ovviamente va bene, non ti preoccupare.

    Occhio però che con JDBC devi prestare bene attenzione alle eccezioni e soprattutto alla chiusura corretta di tutte le risorse (ora nel listaRubrica() NON stai prestando tale attenzione). Altrimenti non vai molto avanti ...
  • Re: Esercizi java ee - slide - manuale pratico

    Ho provato, ma lo stesso non funziona.
    Guarda codice:
    
    <table border="1" align="center">
    
    			<tr>
    				<td>Id</td>
    				<td>Nome</td>
    				<td>Cognome</td>
    				<td>Località</td>
    				<td>Telefono</td>
    			</tr>
    
    			<tr>
    				<c:forEach var="ex" items="${listavisualizza}">
    					<td><c:out value="${ex.id_rubricatelefono}" /></td>
    				</c:forEach>
    			</tr>
    
    			<tr>
    				<c:forEach var="ex" items="${listavisualizza}">
    					<td><c:out value="${ex.nome}" /></td>
    				</c:forEach>
    			</tr>
    
    			<tr>
    				<c:forEach var="ex" items="${listavisualizza}">
    					<td><c:out value="${ex.cognome}" /></td>
    				</c:forEach>
    			</tr>
    
    			<tr>
    				<c:forEach var="ex" items="${listavisualizza}">
    					<td><c:out value="${ex.localita}" /></td>
    				</c:forEach>
    			</tr>
    
    			<tr>
    				<c:forEach var="ex" items="${listavisualizza}">
    					<td><c:out value="${ex.telefono}" /></td>
    				</c:forEach>
    			</tr>
    
    		</table>
    
    
    
    
    Ho provato anche gli apici quando si effettua la selezione $
  • Re: Esercizi java ee - slide - manuale pratico

    robot ha scritto:


    Ho provato, ma lo stesso non funziona.
    "non funziona" ... in che senso? Hai una eccezione? Non hai l'output aspettato? Vedi nel browser i tag JSTL?

    Vedo:

    <c:out value="${ex.id_rubricatelefono}" />

    Ma nel codice usi un setId() e quindi presumo avrai un getId(). Quindi la proprietà si chiama id non id_rubricatelefono.
  • Re: Esercizi java ee - slide - manuale pratico

    In pratica, non mi è uscita nessuna eccezione, non è uscito l'output nella tabella.

    andesso provo in questo modo:
    <c:out value="${ex.getId()}" />
  • Re: Esercizi java ee - slide - manuale pratico

    robot ha scritto:


    In pratica, non mi è uscita nessuna eccezione, non è uscito l'output nella tabella.

    andesso provo in questo modo:
    <c:out value="${ex.getId()}" />
    No ex.id

    Non puoi mettere un metodo lì. Si usano le proprietà. Se c'è un getId/setId, allora viene dedotta la proprietà id
  • Re: Esercizi java ee - slide - manuale pratico

    Ho provato in questo modo:
    
    
    <table border="1" align="center">
    
    			<tr>
    				<td>Id</td>
    				<td>Nome</td>
    				<td>Cognome</td>
    				<td>Località</td>
    				<td>Telefono</td>
    			</tr>
    
    			<tr>
    				<c:forEach var="ex" items="${listavisualizza}">
    					<td><c:out value="${ex.id}" /></td>
    				</c:forEach>
    			</tr>
    
    			<tr>
    				<c:forEach var="ex" items="${listavisualizza}">
    					<td><c:out value="${ex.nome}" /></td>
    				</c:forEach>
    			</tr>
    
    			<tr>
    				<c:forEach var="ex" items="${listavisualizza}">
    					<td><c:out value="${ex.cognome}" /></td>
    				</c:forEach>
    			</tr>
    
    			<tr>
    				<c:forEach var="ex" items="${listavisualizza}">
    					<td><c:out value="${ex.localita}" /></td>
    				</c:forEach>
    			</tr>
    
    			<tr>
    				<c:forEach var="ex" items="${listavisualizza}">
    					<td><c:out value="${ex.telefono}" /></td>
    				</c:forEach>
    			</tr>
    
    		</table>
    		
    		
    		Ma non esce niente in output
    		
    		
    		La mia tabella è questa in sql:
    		
    		create table rubricaTelefono(
    			id_rubricatelefono int not null auto_increment,
    			nome varchar(50),
    			cognome varchar(50),
    			telefono varchar(50),
    			localita varchar(50),
    		primary key(id_rubricatelefono));
    		
    
    
    
    
  • Re: Esercizi java ee - slide - manuale pratico

    La connessione al mio database è questo:
    
    public class DatabaseJdbc {
    	
    	public static Connection getConnection() {
    		try {
    			Class.forName("com.mysql.jdbc.Driver");
    			Connection con = DriverManager.getConnection("jdbc:mysql://localhost/rubrica", "root", "root");
    			return con;
    		} catch (Exception e) {
    			System.out.println("Non connesso!!!" + e.getMessage());
    		}
    
    		return null;
    	}
    
    }
    
    
    
  • Re: Esercizi java ee - slide - manuale pratico

    robot ha scritto:


    Ma non esce niente in output
    Ehm ... alt. Giusto per chiarire: la libreria JSTL l'hai inserita nella webapp? Stai usando Tomcat giusto? (o un altro application-server?)
    E nella pagina JSP hai messo più o meno all'inizio la dichiarazione di taglib?

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/cor" %>

    Questa SERVE.

    robot ha scritto:


    La mia tabella è questa in sql:

    create table rubricaTelefono(
    id_rubricatelefono int not null auto_increment,
    nome varchar(50),
    cognome varchar(50),
    telefono varchar(50),
    localita varchar(50),
    primary key(id_rubricatelefono));
    Scusa ma se la colonna del identificativo si chiama id_rubricatelefono perché poi tu la estrai con

    rubricaTelefonica.setId(rSet.getInt("id"));

    ? Guarda che questi sono proprio "erroracci" di disattenzione.

    robot ha scritto:


    La connessione al mio database è questo:
    
    public class DatabaseJdbc {
    	
    	public static Connection getConnection() {
    		try {
    			Class.forName("com.mysql.jdbc.Driver");
    			Connection con = DriverManager.getConnection("jdbc:mysql://localhost/rubrica", "root", "root");
    			return con;
    		} catch (Exception e) {
    			System.out.println("Non connesso!!!" + e.getMessage());
    		}
    
    		return null;
    	}
    
    }
    Uhm ... non è proprio il massimo ma ok. Il Class.forName si fa normalmente una volta sola (non ad ogni richiesta di connection).
  • Re: Esercizi java ee - slide - manuale pratico

    Ciao,

    1) La libreria jstl l'ho inserito all'inizio che è questo: <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/cor" %>
    2) Sto utilizzando tomact 7.0
    ---------------------------------------------------------------------------------------------------------------------
    3)
    Scusa ma se la colonna del identificativo si chiama id_rubricatelefono perché poi tu la estrai con
    rubricaTelefonica.setId(rSet.getInt("id")); ?
    Guarda che questi sono proprio "erroracci" di disattenzione.
    Giusto, a questo ancora non ho capito come si estrae i dati, qual'è la sintassi corretta?, come bisgona scrivere? visto che sono confuso.

    Grazie
Devi accedere o registrarti per scrivere nel forum
19 risposte