Sistemes Oberts

Informació addicional i temporització

link@ETSE-DEIM

 

Índex setmanal - Pràctiques 2onQ Curs 2003/04
Setmana 1: No hi ha classe Setmana 9: Continuació JDBC
Setmana 2: E/S i Threads Setmana 10: Setmana Santa
Setmana 3: Sockets Setmana 11: Exemple dbEdit i Exercici de classe
Setmana 4: Protocols orientats a la connexió vs protocols no orientats a la connexió Setmana 12: XML
Setmana 5: Servlets Setmana 13: Exemple pràctic HTML-JSP-JDBC
Setmana 6: No hi hagué classe Setmana 14: Exemple pràctic HTML-JSP-JDBC
Setmana 7: Cookies i JSP Setmana 15: XMLRPC
Setmana 8: JDBC Setmana 16: Jornada de Treball de la Pràctica

Setmana 1 (06/02/2004)

Setmana 1: No hi ha classe

 

top

Setmana 2 (13/02/2004)

Entrada/sortida. Threads. Exemples. Exercicis opcionals. [Transparències][Exercicis]

 

top

Setmana 3 (20/02/2004)

Comunicacions: sockets. Enunciat problemes obligatoris. [Transparències][Exercicis]

 

top

Setmana 4 (27/02/2004)

Video TCP/IP.
VisualRoute [web SOB][link VisualRoute]
Comandes de xarxa usant linia comandes: ipconfig, nslookup, arp, netstat, tracert, ping.
Sniffer de HTTP. Ús de cookies. Capçaleres de control i dades [web SOB][link Sniffer]
Ús de protocols orientats a la connexió: FTP i SMTP vs prot. no orientats a la connexió: HTTP [laboratori 2]

 

top

Setmana 5 (05/03/2004)

Programes necessaris: Eclipse, Apache Tomcat, plugin de Tomcat per a Eclipse i els plugins per visualitzar Java en l'IE/Mozilla que estan en el JDK
Tutorial servlets de Java (de java.sun.com)

Exemples JavaScrips [web SOB]

Copiem del projecte webclient els fitxers js1.htm, js2.htm i js3.htm i els posem en la carpeta webapps\ROOT\ del Tomcat.. Suposem TOMCAT=C:\Archivos de programa\Apache Group\Tomcat 4.1
Engeguem el Tomcat si no estava ja engegat
Executem els diferents exemples fent: http://127.0.0.1:8080/js1.htm, http://127.0.0.1:8080/js2.htm, i http://127.0.0.1:8080/js3.htm

Applets [web SOB]

EXEMPLE1 TrivialApplet. Engegar Tomcat.
Baixem els exemples i creem el project eclipse webclient
Compilem el projecte i els applets els posem les classes en la carpeta webapps\ROOT\ del Tomcat
Executem els diferents exemples fent: http://127.0.0.1:8080/TrivialApplet.htm. Notar que cal tenir instal·lat el plugin de java pel navegador que fem servir.

EXEMPLE 2: CHAT. Copiem en webapps\ROOT\ les classes del chat i chat.htm.
Engeguem el servidor fent: java Chat (notar que el PATH ha d'estar correcte, i no cal que la classe estigui en el mateix directori que la resta de classes del client. El client ha d'estar en el Tomcat)
Iniciem un client en la mateixa màquina: http://127.0.0.1:8080/Chat.htm.

Servlets [web SOB]

Instal·lació d'un servlet sense Tomcat Project, és a dir, a mà

Baixar el projecte servlets.zip
Obrim una nova vista Java d'Eclipse windows>Open perspective>Java.
Copiem les classes (directori bin/sob) a webapps/examples/WEB-INF/classes de Tomcat.
Engeguem el Tomcat
Executem els diferents exemples de servlets:

http://127.0.0.1:8080/examples/servlet/sob.HelloWorld
http://127.0.0.1:8080/examples/servlet/sob.ThreeParams?param1=hello&param2=world&param3=homer

Instal·lació d'un servlet usant el Tomcat Project

Crear un projecte Tomcat anomenat sob. Copiem els fonts del projecte servlets.
Creem el projecte Eclipse Tomcat servlets i compilem. Cal tenir instal·lat el plugin Sysdeo*.

Tal com està, hi ha un error. Cal incloure en el projecte la llibreria servlet.jar que està en C:\Archivos de programa\Apache Group\Tomcat 4.1\common\lib. Triem project>properties>Java Built path i escollim incloure servlet.jar.


Copiem les classes a work/src.
Copiem els html a l'arrel
Copiem web.xml a WEB-INF/
Fem amb el botó dret sobre el projecte sob, Tomcat project>Update contex in server.xml i ara tenim que el Tomcat té registrat el nostre servlet en la direcció del nostre sistema de fitxers. Abans, feia el mateix però reutilitzant el directori examples de Tomcat.
Engeguem el Tomcat
Executem els servlets com abans, però sense examples perque ara tenim el nostre propi servei: sob.

http://127.0.0.1:8080/sob/servlet/sob.HelloWorld
http://127.0.0.1:8080/sob/servlet/sob.ThreeParams?param1=hello&param2=world&param3=homer http://127.0.0.1:8080/form.html

 

Captura d'Eclipse

Fig. 1: Captura de pantalla d'Eclipse amb els projectes sob i servlets tal com queda al final

Darrera modificació: 06/03/2004 a les 10:59


*Instal·lació del plugin sysdeo

- Baixar el plugin.
- Instal·lar-ho descomprimit en el directori de plugins
- Anar a window>preferences>Tomcat i posar quina versió de Tomcat s'usa i on és. Nosaltres fem servir una 1.4.x i està en C:\Archivos de programa\Apache Group\Tomcat 4.1.
- Ara podrem crear projectes de tipus Tomcat Project.

 

top

Setmana 6 (12/03/2004)

No hi hagué classe en solidaritat amb els atemptats de Madrid

 

top

Setmana 7 (19/03/2004)

Cookies amb servlets [web lab2]:

Creem el projecte Tomcat seguint el realitzat la setmana 5
Compilem el projecte i en fem un update context
Executem: http://127.0.0.1:8080/sob/servlet/sob.Cookie1 per veure que tot està correcte
Executem: http://127.0.0.1:8080/sob/servlet/sob.Cookie2

JSP [web lab3]:

Creem un projecte Tomcat tenint en compte aquestes fonts
Compilem el projecte i en fem un update context

- copiar els java en ./WEB-INF/src, els jsp en /, i web.xml en ./WEB-INF

Engeguem el Tomcat i comprovem que tot funciona correctament executant http://127.0.0.1:8080/jsp/hello.jsp
Identificadors de sessió: page vs application vs session:

- page: http://127.0.0.1:8080/jsp/scope.jsp
- application: http://127.0.0.1:8080/jsp/contador2.jsp
- session: http://127.0.0.1:8080/jsp/scope2.jsp

Darrera modificació: 18/03/2004

top

Setmana 8 (26/03/2004)

Programes necessaris: Driver JDBC i BBDD HypersonicSQL (*), MySQL, plugin dbEdit per Eclipse(**)

Execució exemples de JDBC [web SOB]:

HypersonicSQL standalone,

- HypersonicSQL és una BBDD en Java (en el fitxer comprimit) s'inclouen els fitxers Java. S'executa el client en mode standalone per a manegar una BBDD pròpia.

MSAccess (usant ODBC), i

- Per configurar ODBC s'ha de configurar desde Windows i dependrà de cada versió usada. En el cas de WnXP anar a Tauler de Control>Herramientas administrativas>Orígenes de datos (ODBC). Cal Agregar i triar un Microsoft Driver Manager, hi posem un nom i ja està.

- Ara podem executar altre cop el client HypersonicSQL i triar el Brigde JDBC-ODBC. El nom de la base de dades que s'ha posat en el pas anterior, l'hem de posar altre cop ara.

MySQL,

- MySQL es pot engegar a mà, amb l'opció .\mysql\bin\mysqld --standalone, o escollint-la en mode servei alhora d'instal·lar MySQL. S'haurà de triar el mode segons cada cas.

- Hi ha molts clients per a MySQL (v. mysql.com). Pel cas d'HypersonicSQL cal afegir el driver de mysql prèviament.

==> Copiem el driver de mysql (mysql_comp.jar) a ./hsqldb/lib

==> Afegim el jar en el CLASSPATH del bat runUtil dins de ./hsqldb/bin. Per exemple:

cd ..\data
set CLASS_PATH="..\lib\hsqldb.jar;..\lib\mysql_comp.jar;."
@java -classpath %CLASS_PATH% org.hsqldb.util.%1 %2 %3 %4 %5 %6 %7 %8 %9

==> Ara ja podem llençar el client, runUtil DatabaseManager.

 

Execució de diferents exemples web combinant JSP i JDBC,

http://127.0.0.1:8080/nuevo/create.jsp
http://127.0.0.1:8080/nuevo/show.jsp
http://127.0.0.1:8080/nuevo/update1.jsp
http://127.0.0.1:8080/nuevo/update2.jsp

 

 

Fig. 1: Captura de pantalla d'Eclipse amb els projecte nuevo que conté els exemples de JDBC-JSP

Fig. 2: dbEdit connectat a una BBDD HypersonicSQL

Fig. 3: HSQL Manager accedint a una base de dades en HypersonicSQL

 

Darrera modificació: 23/03/2004


(*) Instal·lació BBDD HypersonicSQL

- Baixar la base de dades (mirar darreres version a sourceforge.net)
- Anar al directori bin on s'ha descomprimit el zip anterior
- Engegar un client. .\hsqldb\bin\>runutil DatabaseManager.
- Executarem el client en mode standalone

(**) Instal·lació plugin dbEdit per a Eclipse

- Baixar el plugin
- Descomprimir-ho en el directori de plugins en l'arrel d'Eclipse
- Automàticament, en engegar de nou Eclipse l'entorn s'adona del nou plugin i ens confirma aquesta addició

 

top

Setmana 9 (02/04/2004)

Continuació JDBC. (Classe donada pel Pedro)

 

top

Setmana 10 (09/04/2004)

Setmana Santa

 

top

Setmana 11 (16/04/2004)

Exemple de dbEdit connectant a MySQL:

- Engeguem MySQL: $MYSQL_HOME$\bin\mysqld --standalone

- Obrim Eclipse i una vista dbEdit

- Anem al menú Connection>Configure:

a) Creem una nova connexió (li posem el nom que volguem),

b) A la pestanya Classpath cal especificar on es troba el jar dels drivers de la base de dades, en el nostre cas, mysql_comp.jar.

c) Ara podem anar a la pestanya common, i especificar la nostra connexió:

JDBC Driver: org.gjt.mm.mysql.Driver

Server URL: jdbc:mysql://127.0.0.1/test

User: no importa

Passwd: no importa

d) Un cop especificats els paràmetres, podem pitjar en Connect.

- Un cop connectats podem executar les comandes SQL com es va veure en la semana 9 i el lab 4:

CREATE TABLE COFFEES
(COF_NAME VARCHAR(32),
SUP_ID INTEGER,
PRICE FLOAT,
SALES INTEGER,
TOTAL INTEGER)

INSERT INTO COFFEES VALUES ('Colombian', 101, 7.99, 0, 0)

INSERT INTO COFFEES VALUES ('French_Roast', 49, 8.99, 0, 0)

INSERT INTO COFFEES VALUES ('Espresso', 150, 9.99, 0, 0)

INSERT INTO COFFEES VALUES ('Colombian_Decaf', 101, 8.99, 0, 0)

INSERT INTO COFFEES VALUES ('French_Roast_Decaf', 49, 9.99, 0, 0)

SELECT * FROM COFFEES
SELECT COF_NAME, PRICE FROM COFFEES

SELECT COF_NAME, PRICE
FROM COFFEES
WHERE PRICE < 9.00

 

dbEdit+MySQL

Fig. 1: dbEdit connectat a la base de dades test de MySQL

Exercici de classe: VALIDACIÓ D'USUARIS VIA WEB

Construir una petita aplicació que demana un login i un password a través d'un navegador web i els valida. En cas d'èxit, és dóna una clau de sessió per l'usuari (v. lab. 3).

El login i passwords es demanen a través d'un formulari HTML i rebuts per un JSP. El JSP es connecta a una base de dades a través de JDBC que guarda totes les parelles (login,password) vàlids. Un cop validats es pot instanciar la variable session per l'usuari.

Darrera modificació: 13/04/2004

 

top

Setmana 12 (23/04/2004)

Classe donada pel Pedro sobre XML [v. Lab 4]

 

top

Setmana 13 (30/04/2004)

Exemple d'aplicació basada en PHP per administrar bases de dades en MySQL

JSPmyAdmin (està a sota de tot del lab 4)

- Posem el jspmyadmin.war en el directori ./tomcat/webapps/ , engeguem el Tomcat i MySQL, i l'executem http://127.0.0.1:8080/jspmyadmin/index.jsp

Resolució exercici proposat fa dues setmanes.

- Crear una nou projecte tomcat a partir del projecte login (login.zip) al final del lab.4, li podem dir login2, i l'arbre de fitxers ha de quedar com es mostra a la figura:

- Per tal de donar independència al projecte tomcat de la localització física de la base de dades, s'usa un pool de java.sql.DataSource que es troba dins el servidor Tomcat. Cal editar el fixer ./conf/server.xml

NOTA 1) Recordeu també que els drivers de les bases de dades han de ser en el directori ./common/lib/ (drivers de MySql, drivers de l'HyperSonic)

NOTA 2) La part en blau està creada per l'Eclipse i especifica on es troba el vostre projecte. La part en vermell és la que heu d'afegir vosaltres i fa referència concreta al DataSource que vosaltres volgueu fer servir.

<Context path="/login2" reloadable="true" docBase="C:\Documents and Settings\Administrador\Escritorio\classes\SOB\eclipse-SDK-M20040204-win32\eclipse\workspace\login2" workDir="C:\Documents and Settings\Administrador\Escritorio\classes\SOB\eclipse-SDK-M20040204-win32\eclipse\workspace\login2\work\org\apache\jsp">

<Resource name="jdbc/sob"
auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/sob">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>

<!-- Maximum number of dB connections in pool. Make sure you
configure your mysqld max_connections large enough to handle
all of your db connections. Set to 0 for no limit.
-->
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<!-- Maximum number of idle dB connections to retain in pool.
Set to 0 for no limit.
-->
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<!-- Maximum time to wait for a dB connection to become available
in ms, in this example 10 seconds. An Exception is thrown if
this timeout is exceeded. Set to -1 to wait indefinitely.
-->
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<!-- MySQL dB username and password for dB connections -->
<parameter>
<name>username</name>
<value>root</value>
</parameter>
<parameter>
<name>password</name>
<value> </value>
</parameter>
<!-- Class name for mm.mysql JDBC driver -->
<parameter>
<name>driverClassName</name>
<value>org.gjt.mm.mysql.Driver</value>
</parameter>
<!-- The JDBC connection url for connecting to your MySQL dB.
The autoReconnect=true argument to the url makes sure that the
mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
connection. mysqld by default closes idle connections after 8 hours.
-->
<parameter>
<name>url</name>
<value>jdbc:mysql:/localhost/test?autoReconnect=true</value>
<!--<value>jdbc:mysql://localhost:3306/seguros</value>-->
</parameter>
</ResourceParams>

 

- Si li diem login2 a aquest nou projecte, engegant el tomcat, tots els fitxers estaran disponibles en http://127.0.0.1:8080/login2/

- Si executem la classe Util, ens crearà la BBDD automàticament.

Exercici de classe: VALIDACIÓ D'USUARIS VIA WEB Fase II

(v. enunciat)

Pels que fan la pràctica ODBC: Exemple d'XML sobre HTTP (homerServlet)

Una vegada instal·lat l'exemple del servidor Homer (http://127.0.0.1:8080/homer/index.htm) cal que feu una interfície amb un formulari per tal de poder crear els missatges i interactuar amb el servidor d'insults

Darrera modificació: 20/04/2004

top

Setmana 14 (07/05/2004)

Com que la setmana passada no es va donar la classe per afavorir l'assistència al DEIMinari, aquesta setmana es donarà el que s'havia de donar la setmana passada

Baixar/provar exemple XMLRPC homer2 dins el lab.6.

 

top

Setmana 15 (14/05/2004)

Exemple XMLRPC (homer2.jar) lab.6

- Funcionant en mode client-servidor (recordar de posar la llibreria xmlrpc en el classpath, p.ex. java -cp ..\lib\xmlrpc.1.1.jar;. server)

- Funcionant en mode servlet

A fer: interfície web que permeti de "parlar" amb el servidor homer segons l'enunciat de la fase 2 de la pràctica..

 

 

top

Setmana 16 (21/05/2004)

Treballar la pràctica. Es pot treballar contra la màquina del professor on hi ha instal·lat el servidor d'insults homer2.war.(*)

(*) Recordeu que els war són paquets que s'instal·len en el directori webapps del Tomcat i que ells sols es descomprimeixen; són equivalents a un fitxer zip.

 

 

 

 

 

Pràctiques 2onQ, Curs 2003/04
Website SOB: http://www.etse.urv.es/EngInf/assig/sob/
Pàgina principal: http://www.etseq.urv.es/~disern/

Darrera modificació: Tuesday, May 18, 2004 10:02 AM

(c) 2002-03, David Isern Alarcón