Diferència entre revisions de la pàgina «Servlets»
Línia 43: | Línia 43: | ||
<br> | <br> | ||
− | == Desplegament == | + | == Desplegament d'un Servlet == |
Anem a posar la nostra app en producció al [[Tomcat]]. | Anem a posar la nostra app en producció al [[Tomcat]]. | ||
+ | # Crear carpeta d'aplicació a '''/var/lib/tomcat7/webapps''', per exemple '''test1'''. | ||
+ | # Crear carpeta '''WEB-INF''' dins de test1 | ||
+ | # Crear carpeta '''classes''' dins de WEB-INF | ||
+ | # Crear arxiu '''web.xml''' dins de WEB-INF amb els continguts de més avall. | ||
+ | # Copiar l'arxiu compliat '''HelloWorld.class''' al directori ''classes''. | ||
+ | # Ja podem visitar el nostre servlet a http://localhost:8080/test1/helloworld | ||
+ | |||
+ | L'estructura d'arxius ens ha de quedar així: | ||
+ | webapps | ||
+ | ├── ROOT | ||
+ | │ ├── index.html | ||
+ | │ └── META-INF | ||
+ | │ └── context.xml | ||
+ | └── test1 | ||
+ | └── WEB-INF | ||
+ | ├── classes | ||
+ | │ └── HelloWorld.class | ||
+ | └── web.xml | ||
+ | |||
+ | És important saber que tenim disponible la carpeta ''test1'' per posar-hi contingut estàtic (imatges, HTML) o [[JSP]]s si ho desitgem. | ||
+ | |||
+ | === Arxiu web.xml === | ||
+ | En aquest arxiu li passem la informació que necessita Tomcat per engegar el servlet amb la ruta adequada, pel nostre cas /test1/helloworld: | ||
+ | <syntaxhighlight lang="xml"> | ||
+ | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
+ | <web-app xmlns="http://java.sun.com/xml/ns/j2ee" | ||
+ | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
+ | xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" | ||
+ | version="2.4"> | ||
+ | |||
+ | <display-name>Hello, World Application</display-name> | ||
+ | <description> | ||
+ | This is a simple web application with a source code organization | ||
+ | based on the recommendations of the Application Developer's Guide. | ||
+ | </description> | ||
+ | |||
+ | <servlet> | ||
+ | <servlet-name>HelloWorld</servlet-name> | ||
+ | <servlet-class>HelloWorld</servlet-class> | ||
+ | </servlet> | ||
+ | |||
+ | <servlet-mapping> | ||
+ | <servlet-name>HelloWorld</servlet-name> | ||
+ | <url-pattern>/helloworld</url-pattern> | ||
+ | </servlet-mapping> | ||
+ | |||
+ | </web-app> | ||
+ | </syntaxhighlight> | ||
<br> | <br> |
Revisió del 09:40, 1 març 2016
Un Servlet és una llibreria per crear aplicacions Web amb llenguatge Java. Solen utilitzar Tomcat per desplegar el projecte.
Intro
Referències:
- Primer exemple (i més): http://www.tutorialspoint.com/servlets/servlets-first-example.htm
- Tutorial Tomcat+Eclipse+Servlets: http://www.coreservlets.com/Apache-Tomcat-Tutorial/
Quick Reference per Ubuntu 14.04:
- URL = http://myhost:8080
- CATALINA_HOME = /usr/share/tomcat7
- CATALINA_BASE = /var/lib/tomcat7: aquí teniu la carpeta
webapps
amb les aplicacions per desplegar - /etc/default/tomcat7 : conf inicial JAVA_OPTS (memòria)
- /etc/tomcat7 : conf, users, etc.
- LOGS = /var/log/tomcat7
Setup
Els diferents components que necessitarem seran:
- JDK : Java Development Kit, inclou eines (compiladors, màquines virtuals java, etc.) i les llibreries per desenvolupar.
- Eclipse: IDE per a Java disponible en moltes plataformes.
- Tomcat: el servidor d'aplicacions per a Java.
De moment només compilarem des de la línia de comandes. "A pelo".
Ens caldrà ajustar algunes llibreries perquè estiguin disponibles per al compilador:
$ echo "export CLASSPATH=/usr/share/tomcat7/lib/*" >> ~/.profile
...i fem logout i login per activar aquests canvis. O, si no volem sortir, podem fer:
$ source ~/.bashrc
Compilant un Servlet
IMPORTANT: de moment NO cal fer res com a sudo. Tot això (desenvolupar, compilar) està disponible per a tots els usuaris.
Agafeu el primer exemple HelloWorld del tutorial i el poseu en un arxiu HelloWorld.java en la vostra carpeta de desenvolupament.
Compilem:
$ javac HelloWorld.java
...i es crearà l'arxiu .class , que és el que necessitem per fer el desplegament.
Desplegament d'un Servlet
Anem a posar la nostra app en producció al Tomcat.
- Crear carpeta d'aplicació a /var/lib/tomcat7/webapps, per exemple test1.
- Crear carpeta WEB-INF dins de test1
- Crear carpeta classes dins de WEB-INF
- Crear arxiu web.xml dins de WEB-INF amb els continguts de més avall.
- Copiar l'arxiu compliat HelloWorld.class al directori classes.
- Ja podem visitar el nostre servlet a http://localhost:8080/test1/helloworld
L'estructura d'arxius ens ha de quedar així:
webapps ├── ROOT │ ├── index.html │ └── META-INF │ └── context.xml └── test1 └── WEB-INF ├── classes │ └── HelloWorld.class └── web.xml
És important saber que tenim disponible la carpeta test1 per posar-hi contingut estàtic (imatges, HTML) o JSPs si ho desitgem.
Arxiu web.xml
En aquest arxiu li passem la informació que necessita Tomcat per engegar el servlet amb la ruta adequada, pel nostre cas /test1/helloworld:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<display-name>Hello, World Application</display-name>
<description>
This is a simple web application with a source code organization
based on the recommendations of the Application Developer's Guide.
</description>
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/helloworld</url-pattern>
</servlet-mapping>
</web-app>