View Full Version : ci riprovo
non avendo trovato risposta alla mia domanda precedente, provo a orla in modo + semplice: sapreste dirmi cm sistemare nelle cartelle di tomcat il file .jsp e i .class ke esso utilizza?
sapreste dirmi anke xkè all'atto dell'avvio del .jsp tomcat mi dice di nn riuscire a riconoscere la classe riferita in esso come un tipo?deve essere fatto qlk import nella pagina jsp?in ke punto?
saluti
In tomcat devi piazzare un solo file, il war che contiene la tua applicazione web. Un war è uno zip con estensione "jar". Nel war puoi mettere i file jsp un po' dove ti pare perchè quelli li maneggi con il descrittore di dispiegamento dell'applicazione web (web.xml).
Il war, internamente, deve essere così composto:
/ <-- elementi pubblici dell'applicazione (html, jsp o altro)
/WEB-INF/web.xml <-- descrittore di dispiegamento
/WEB-INF/classes/ <-- ci puoi mettere le classi ma è non si fa
/WEB-INF/lib/ <-- qui ci metti i jar dei comp. servlet e dei bean
/WEB-INF/ <-- web-inf è anche la radice delle cose non pubbliche
/WEB-INF/jsppages/ <-- ad esempio puoi creare una cartella "privata"
in cui mettere le pagine jsp "private"
Faccio un esempio tristissimo.
Creo il bean:
package it.tukano.saylo;
public class HelloBean {
private String message;
public void setMessage(String value) {
message = value;
}
public String getMessage() {
return message;
}
}
Lo compilo (javac - d . *.java) e lo impacchetto (jar cf SayloBeans.jar it/). E il "war" al momento diventa:
/
/WEB-INF/lib/SayloBeans.jar
Creo la pagina jsp che usa quel bean:
<%@ page contentType="text/html; charset=UTF-8" %>
<html>
<head><title>Welcome</title>
<jsp:useBean id="helloBean" scope="page" class="it.tukano.saylo.HelloBean"/>
<jsp:setProperty name="helloBean" property="message" value="Ciao Mondo!"/>
<body>
<h1><jsp:getProperty name="helloBean" property="message"/></h1>
</body>
</html>
e la infilo in una "cartella privata" del war. Il war ora è:
/
/WEB-INF/lib/SayloBeans.jar
/WEB-INF/jsppages/Welcome.jsp
Creo una pagina di benvenuto che lèvati:
<html>
<head><title>Index</title></head>
<body>
<a href="./saylo">press me</a> <!-- chi è ./saylo ? -->
</body>
</html>
e questa la lascio "pubblica". Per meglio organizzare, dedico una cartella ai "pubblici". Il war diventa:
/
/WEB-INF/lib/SayloBeans.jar
/WEB-INF/jsppages/Welcome.jsp
/public/Index.html
A questo punto, col descrittore, faccio il magheggio, cioè metto insieme il tutto:
<?xml version="1.0" encoding="utf-8"?>
<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">
<servlet>
<servlet-name>welcomer</servlet-name>
<jsp-file>/WEB-INF/jsppages/Welcome.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>welcomer</servlet-name>
<url-pattern>/saylo</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>public/Index.html</welcome-file>
</welcome-file-list>
</web-app>
Il "saylo" di Index.html è collegato (servlet-mapping) a "welcomer" e "welcomer" è (servlet-name) la pagina jsp che si trova nella cartella che si è scelto (non è obbligatorio) di infilare in una cartella ad hoc di WEB-INF.
Il "war" diventa:
/
/WEB-INF/web.xml
/WEB-INF/lib/SayloBeans.jar
/WEB-INF/jsppages/Welcome.jsp
/public/Index.html
"A mano" il war lo fai creando prima una cartella in cui metti tutto quello su indicato, poi ti posizioni in quella cartella con la console e dai un "jar cf Welcome.war WEB-INF/ public/". Dopodichè copi il file "Welcome.war" nella cartella "webapps" di Tomcat e dopo qualche secondo lui la mastica e dispiega l'applicazione. Se rimuovi il file Welcome.war dalla stessa cartella Tomcat richiama l'applicazione. Sostituendo il war, Tomcat sostituirà l'applicazione al volo.
E' possibile infilare in webapps i file "sciolti" ma è solo una pena in più.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.