Path del progetto

  • String path = new File(“.”).getCanonicalPath()  –> C:\dev\netbeans\apache-tomcat-8.0.26\bin
  • System.getProperty(“catalina.base”) –> C:\dev\netbeans\apache-tomcat-8.0.26
  • System.getProperty(“user.home”) –> C:\Users\hp
  • request.getServletContext().getRealPath(“/”)
    • da netbeans C:\Users\hp\Documents\NetBeansProjects\NOMEPROGETTO\build\web\
    • usando il war C:\dev\apache-tomcat-7.0.63\webapps\NOMEPROGETTO\
  • request.getServletContext().getRealPath(“/tmp/”)
    • C:\Users\hp\Documents\NetBeansProjects\NOMEPROGETTO\build\web\tmp\
  • URL, mette una “\” avanti allora
    • URL voiceURL = this.getClass().getResource(“/../../audio/voice”);
    • String targetDirStr = (new File(voiceURL.getFile())).getAbsolutePath();
      • C:/Users/hp/Documents/NetBeansProjects/NOMEPROGETTO/build/web/audio/voice/

Modifica HTML [JQuery]

  1. Ciclare all’interno di una tabella:
    • $(‘#table > tbody > tr’).each(function(i, row) {
      valorePrimaColonna = eval($(row).find(‘td’).eq(0).text());
  2. Modificare un campo della riga selezionata:
    1.  nColonna: la colonna, della riga selezionata, che voglio modificare
    2. oTable è un dataTable
    3. QUando seleziono metto la classe “row_selected”  [($(this).addClass(‘row_selected’);)]
    4. var value = eval(fnGetSelected(oTable)[nColonna]);
    5. oTable.fnUpdate(value, oTable.$(‘tr.row_selected’)[0], nColonna);

PEC

Come funziona la PEC dal punto di vista legale:

  • L’e-mail è valida, da un punto di vista legale, solo quando sia destinazione che mittente sono PEC.
  • Il gestore di posta del destinatario manda
    1. La “Ricevuta di Accettazione” al mittente, informandolo che è stata accettata dal gestore.
    2. Consegna l’email al destinatario nella propria casella certificata.
    3. La “Ricevuta di Avvenuta Consegna” al mittente, che sa che l’e-mail è giunta a destinazione.
  • La “Ricevuta di Avvenuta Consegna” è paragonata alla tradizionale raccomandata A/R (e con lo stesso valore legale).
  • Le ricevute sono conservate per 30 mesi dei gestori di posta.
  • Non è possibile inviare messaggi utilizzando CCN e/o BCC.

La PEC non garantisce:

  • Il contenuto, che potrebbe essere vuoto, in questo caso, come con la raccomandata A/R, bisognerebbe avvertire il mittente che il contenuto dell’email era vuoto.
  • Il messaggio sia stato letto dal destinatario: questo è un problema del destinatario, confrontando con l’A/R ha firmato la ricevuta, ma non ha aperto la busta. Per questo motivo i provider attivano sistemi di avvisi tramite SMS di ricezione di messaggi.

 

Non si avvia

Un server web usa, di solito la porta 80 o 8080, per trasmettere le pagine html, se un altro servizio occupa questa porta il server web non si avvia regolarmente, quindi o si chiude l’applicazione o si cambia porta di pubblicazione del server web.

Di seguito i programmi più conosciuti che usano le stesse porte del server web:

  • Skype: non fa avviare Apache
    • Si può risolvere anche, togliendo la spunda in: Strumenti -> Avanzate -> Collegamento -> “Usa le porte 80 e 443 come alternative per le connessioni in ingresso”
  • Un servizio di windows 10 chiamato: “Servizio Pubblicazione sul Web” con nome W3SVC

HQL Editor

Scaricare e scompattare:

  1. JBoss Developer Studio o installare Hibernate Tools nell’Eclipse
  2. Il driver del database
    1. MySql il connector, scaricare il file per tutte le piattaforme in modo da avere uno zip all’interno del quale c’è il .jar
  3. Hibernate Core

Da Eclipse o JBoss Developer Studio:

  1. Creare un nuovo progetto “JPA Project”
    1. In “JPA Implementation” selezionare “User Library”
    2. Manager Libraries -> New -> Indicare un nome (hibernate) e inserire i .jar del driver e di hibernate core
    3. Selezionare una connessione esistente o crearne una nuova
  2. tasto DX sul progetto -> new -> hibernate mapping

NetBeans

  1. Tasto destro del mouse sul file hibernate.cfg.xml -> Run HQL Query
  2. Commentare tutta la sessione relativa a C3P0

 

Java multi-Thread

Per semplificare immaginiamo che il thread sia il cursore che esegue l’istruzione del programma (quando facciamo debug facciamo avanzare il cursore con F8).

1   public class ThreadExists {
2     public static void main(String args[]) {
3       Thread t = Thread.currentThread();
4       t.setName(“Thread principale”);
5       t.setPriority(10);
6       System.out.println(“Thread in esecuzione: ” + t);
7       try {
8         for (int n = 5; n > 0; n–) {
9           System.out.println(“” + n);
10          t.sleep(1000);
11        }
12      }
13      catch (InterruptedException e) {
14        System.out.println(“Thread interrotto”);

15      }
16    }
17  }

Output:

C:\TutorialJavaThread\Code>java ThreadExists

Thread in esecuzione: Thread[Thread principale,10,main]

5

4

3

2

1

Quando si avvia il programma Java crea un thread, che esegue appunto il programma, possiamo ottenere il thread attuale mediante l’istruzione alla riga 3 (Thread t = Thread.currentThread();) ottenuto il thread in esecuzione possiamo modificare oltre a modificare il nome, dargli un ritardo (t.sleep(1000);) infatti il codice precedente verà eseguito in circa 5 secondi.

Per avere più thread

quando si istanzia un oggetto Thread, bisogna passare al costruttore un’istanza di una classe che implementa l’interfaccia Runnable. I questo modo infatti, il nuovo thread, quando sarà fatto partire (mediante la chiamata al metodo start()), andrà ad eseguire il codice del metodo run dell’istanza associata.

1   public class ThreadCreation implements Runnable {
2     public ThreadCreation () {
3       Thread ct = Thread.currentThread();
4       ct.setName(“Thread principale”);
5       Thread t = new Thread(this, “Thread figlio”);
6       System.out.println(“Thread attuale: ” + ct);
7       System.out.println(“Thread creato: ” + t);
8       t.start();
9       try {
10        Thread.sleep(3000);
11      }
12      catch (InterruptedException e) {
13        System.out.println(“principale interrotto”);
14      }
15      System.out.println(“uscita Thread principale”);
16    }
17    public void run() {
18      try {
19        for (int i = 5; i > 0; i–) {
20          System.out.println(“” + i);
21          Thread.sleep(1000);
22        }
23      }
24      catch (InterruptedException e) {
25        System.out.println(“Thread figlio interrotto”);
26      }
27      System.out.println(“uscita Thread figlio”);
28    }
29    public static void main(String args[]) {
30      new ThreadCreation();
31    }
32  }

Output:

C:\TutorialJavaThread\Code>java ThreadCreation

Thread attuale: Thread[Thread principale,5,main]

Thread creato: Thread[Thread figlio,5,main]

5

4

3

uscita Thread principale

2

1

uscita Thread figlio

 

oppure

1   public class CounterThread extends Thread {
2     public void run() {
3       for (int i = 0; i<10; ++i)
4         System.out.println(i);
5     }
6   }

 

1   CounterThread thread = new CounterThread ();

2   thread.start();