{"id":6812,"date":"2011-03-29T14:09:21","date_gmt":"2011-03-29T12:09:21","guid":{"rendered":"https:\/\/www.artera.net\/it\/blog\/?p=6812"},"modified":"2023-02-27T14:50:27","modified_gmt":"2023-02-27T14:50:27","slug":"utilizzare-spring-nelle-web-application-parte-6","status":"publish","type":"post","link":"https:\/\/www.artera.net\/it\/sviluppo\/utilizzare-spring-nelle-web-application-parte-6\/","title":{"rendered":"Utilizzare Spring nelle web application &#8211; parte 6"},"content":{"rendered":"<p><img decoding=\"async\" class=\"alignleft size-full wp-image-6347\" src=\"https:\/\/www.artera.net\/wp-content\/uploads\/2011\/02\/Logo_Spring_252x1501.png\" alt=\"\" width=\"142\" height=\"80\" \/>Finalmente vedremo come realizzare le pagine JSP, ma prima, come al solito, bisogna mettere mano ai file di configurazione. Negli scorsi articoli infatti siamo partiti da una situazione molto generica, per poi suddividere l&#8217;applicazione in strati; questo ci obbliga ad effettuare periodicamente dei <em>refactoring<\/em> dei sorgenti; con la versione 3.x di Spring comunque si \u00e8 cercato di semplificare molto le configurazioni, quindi si tratter\u00e0 di cambiamenti molto isolati.<\/p>\n<p>Per completezza riportiamo tutti i file di configurazione attuali, con le modifiche gi\u00e0 applicate; il primo \u00e8 <em>src\/main\/resources\/applicationContext.xml<\/em>:<\/p>\n<p>[xml]&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br \/>\n&lt;beans xmlns=&quot;http:\/\/www.springframework.org\/schema\/beans&quot; xmlns:xsi=&quot;http:\/\/www.w3.org\/2001\/XMLSchema-instance&quot;<br \/>\n\t\txmlns:p=&quot;http:\/\/www.springframework.org\/schema\/p&quot;<br \/>\n\t\txmlns:context=&quot;http:\/\/www.springframework.org\/schema\/context&quot;<br \/>\n\t\txmlns:jdbc=&quot;http:\/\/www.springframework.org\/schema\/jdbc&quot;<br \/>\n\t\txmlns:tx=&quot;http:\/\/www.springframework.org\/schema\/tx&quot;<br \/>\n\t\txsi:schemaLocation=&quot;<br \/>\n\t\t\thttp:\/\/www.springframework.org\/schema\/beans http:\/\/www.springframework.org\/schema\/beans\/spring-beans.xsd<br \/>\n\t\t\thttp:\/\/www.springframework.org\/schema\/context http:\/\/www.springframework.org\/schema\/context\/spring-context.xsd<br \/>\n\t\t\thttp:\/\/www.springframework.org\/schema\/jdbc http:\/\/www.springframework.org\/schema\/jdbc\/spring-jdbc.xsd<br \/>\n\t\t\thttp:\/\/www.springframework.org\/schema\/tx http:\/\/www.springframework.org\/schema\/tx\/spring-tx.xsd&quot;&gt;<\/p>\n<p>\t&lt;context:annotation-config\/&gt;<\/p>\n<p>  &lt;context:component-scan base-package=&quot;it.artera.springtut&quot;\/&gt;<\/p>\n<p>&lt;\/beans&gt;[\/xml]<\/p>\n<p>Poi abbiamo <em>src\/main\/webapp\/WEB-INF\/web.xml<\/em>:<\/p>\n<p>[xml]<br \/>\n&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br \/>\n&lt;web-app xmlns=&quot;http:\/\/java.sun.com\/xml\/ns\/javaee&quot; xmlns:xsi=&quot;http:\/\/www.w3.org\/2001\/XMLSchema-instance&quot;<br \/>\n  xsi:schemaLocation=&quot;http:\/\/java.sun.com\/xml\/ns\/javaee http:\/\/java.sun.com\/xml\/ns\/javaee\/web-app_2_5.xsd&quot;<br \/>\n  version=&quot;2.5&quot;&gt;<\/p>\n<p>  &lt;display-name&gt;Spring 3 Tutorial&lt;\/display-name&gt;<\/p>\n<p>  &lt;context-param&gt;<br \/>\n    &lt;param-name&gt;contextConfigLocation&lt;\/param-name&gt;<br \/>\n    &lt;param-value&gt;<br \/>\n      classpath*:\/applicationContext.xml<br \/>\n    &lt;\/param-value&gt;<br \/>\n  &lt;\/context-param&gt;<br \/>\n  &lt;filter&gt;<br \/>\n    &lt;filter-name&gt;sitemesh&lt;\/filter-name&gt;<br \/>\n    &lt;filter-class&gt;com.opensymphony.module.sitemesh.filter.PageFilter&lt;\/filter-class&gt;<br \/>\n  &lt;\/filter&gt;<br \/>\n  &lt;filter-mapping&gt;<br \/>\n    &lt;filter-name&gt;sitemesh&lt;\/filter-name&gt;<br \/>\n    &lt;url-pattern&gt;\/*&lt;\/url-pattern&gt;<br \/>\n  &lt;\/filter-mapping&gt;<br \/>\n  &lt;listener&gt;<br \/>\n    &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;\/listener-class&gt;<br \/>\n  &lt;\/listener&gt;<br \/>\n  &lt;servlet&gt;<br \/>\n    &lt;servlet-name&gt;dispatcher&lt;\/servlet-name&gt;<br \/>\n    &lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet&lt;\/servlet-class&gt;<br \/>\n    &lt;load-on-startup&gt;1&lt;\/load-on-startup&gt;<br \/>\n  &lt;\/servlet&gt;<br \/>\n  &lt;servlet-mapping&gt;<br \/>\n    &lt;servlet-name&gt;dispatcher&lt;\/servlet-name&gt;<br \/>\n    &lt;url-pattern&gt;*.html&lt;\/url-pattern&gt;<br \/>\n  &lt;\/servlet-mapping&gt;<br \/>\n  &lt;welcome-file-list&gt;<br \/>\n    &lt;welcome-file&gt;index.jsp&lt;\/welcome-file&gt;<br \/>\n    &lt;welcome-file&gt;index.html&lt;\/welcome-file&gt;<br \/>\n  &lt;\/welcome-file-list&gt;<\/p>\n<p>&lt;\/web-app&gt;<br \/>\n[\/xml]<\/p>\n<p>In questo file sono specificate le opzioni per:<\/p>\n<ul>\n<li>configurare il caricamento dell&#8217;application context di Spring;<\/li>\n<li>configurare Sitemesh (cfr. con la <a href=\"https:\/\/www.artera.net\/it\/blog\/programmazione\/creare-siti-dinamici-con-sitemesh-parte-i\" target=\"_blank\" rel=\"noopener noreferrer\">serie di articoli<\/a> apparsi sul blog);<\/li>\n<li>specifica dei <em>welcome files<\/em>, ovvero i file che vengono mostrati quando non si specifica nulla nella URL.<\/li>\n<\/ul>\n<p>L&#8217;ultimo file \u00e8 di configurazione \u00e8 nuovo, <em>src\/main\/webapp\/WEB-INF\/dispatcher-servlet.xml<\/em>:<\/p>\n<p>[xml]<br \/>\n&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br \/>\n&lt;beans xmlns=&quot;http:\/\/www.springframework.org\/schema\/beans&quot; xmlns:xsi=&quot;http:\/\/www.w3.org\/2001\/XMLSchema-instance&quot;<br \/>\n       xmlns:context=&quot;http:\/\/www.springframework.org\/schema\/context&quot;<br \/>\n       xmlns:mvc=&quot;http:\/\/www.springframework.org\/schema\/mvc&quot;<br \/>\n       xsi:schemaLocation=&quot;http:\/\/www.springframework.org\/schema\/beans http:\/\/www.springframework.org\/schema\/beans\/spring-beans-3.0.xsd<br \/>\n       http:\/\/www.springframework.org\/schema\/context http:\/\/www.springframework.org\/schema\/context\/spring-context-3.0.xsd<br \/>\n       http:\/\/www.springframework.org\/schema\/mvc http:\/\/www.springframework.org\/schema\/mvc\/spring-mvc-3.0.xsd&quot;<br \/>\n       default-lazy-init=&quot;true&quot;&gt;<\/p>\n<p>    &lt;context:component-scan base-package=&quot;it.artera.springtut.controller&quot;\/&gt;<\/p>\n<p>    &lt;!&#8211; Configures the @Controller programming model &#8211;&gt;<br \/>\n    &lt;mvc:annotation-driven\/&gt;<\/p>\n<p>    &lt;!&#8211; Un modo comodo per mappare le URL direttamente sulle JSP, senza dover creare un controller &#8211;&gt;<br \/>\n    &lt;mvc:view-controller path=&quot;\/about.html&quot; view-name=&quot;about&quot; \/&gt;<\/p>\n<p>    &lt;!&#8211; View Resolver for JSPs &#8211;&gt;<br \/>\n    &lt;bean id=&quot;viewResolver&quot; class=&quot;org.springframework.web.servlet.view.InternalResourceViewResolver&quot;&gt;<br \/>\n        &lt;property name=&quot;requestContextAttribute&quot; value=&quot;rc&quot;\/&gt;<br \/>\n        &lt;property name=&quot;viewClass&quot; value=&quot;org.springframework.web.servlet.view.JstlView&quot;\/&gt;<br \/>\n        &lt;property name=&quot;prefix&quot; value=&quot;\/WEB-INF\/pages\/&quot;\/&gt;<br \/>\n        &lt;property name=&quot;suffix&quot; value=&quot;.jsp&quot;\/&gt;<br \/>\n    &lt;\/bean&gt;<\/p>\n<p>    &lt;!&#8211; Add additional controller beans here &#8211;&gt;<br \/>\n&lt;\/beans&gt;<br \/>\n[\/xml]<\/p>\n<p>In esso viene configurato il framework Spring MVC, tramite il tag <em>&lt;mvc:annotation-driven\/&gt;<\/em>, e il <em>view resolver<\/em> di default. Questo componente, dal nome piuttosto esotico, non fa altro che stabilire (da qui il termine <em>resolver<\/em>) la visualizzazione (o <em>view<\/em>) da mostrare all&#8217;utente una volta eseguito il controller. Dettagli a parte, ci preme far notare come il view resolver vada a pescare le pagine sotto <em>\/WEB-INF\/pages\/<\/em>; con questo stratagemma le pagine non saranno accessibili tramite chiamata diretta via URL (tutto ci\u00f2 che sta sotto \/WEB-INF infatti non \u00e8 accessibile da web).<\/p>\n<p>\u00c8 possibile anche definire controller &#8220;virtuali&#8221;, che vanno direttamente su pagine JSP, utilizzando il tag <em>&lt;mvc:view-controller&gt;<\/em>.<\/p>\n<h3>Pagine JSP<\/h3>\n<p>Tutte le JSP utilizzeranno almeno una delle tag library a disposizione, creiamo quindi la pagina <em>src\/main\/webapp\/WEB-INF\/pages\/common\/taglibs.jsp<\/em>, che verr\u00e0 inclusa:<\/p>\n<p>[java]<br \/>\n&lt;%@ page language=&quot;java&quot; pageEncoding=&quot;UTF-8&quot; contentType=&quot;text\/html;charset=utf-8&quot; %&gt;<br \/>\n&lt;%@ taglib prefix=&quot;c&quot; uri=&quot;http:\/\/java.sun.com\/jsp\/jstl\/core&quot; %&gt;<br \/>\n&lt;%@ taglib prefix=&quot;fmt&quot; uri=&quot;http:\/\/java.sun.com\/jsp\/jstl\/fmt&quot; %&gt;<br \/>\n&lt;%@ taglib prefix=&quot;fn&quot; uri=&quot;http:\/\/java.sun.com\/jsp\/jstl\/functions&quot; %&gt;<br \/>\n&lt;%@ taglib prefix=&quot;sql&quot; uri=&quot;http:\/\/java.sun.com\/jsp\/jstl\/sql&quot; %&gt;<br \/>\n&lt;%@ taglib prefix=&quot;spring&quot; uri=&quot;http:\/\/www.springframework.org\/tags&quot; %&gt;<br \/>\n&lt;%@ taglib prefix=&quot;form&quot; uri=&quot;http:\/\/www.springframework.org\/tags\/form&quot; %&gt;<br \/>\n[\/java]<\/p>\n<p>Ora, dobbiamo creare la pagina <em>src\/main\/webapp\/index.jsp<\/em>. Questa verr\u00e0 invocata come <em>welcome page<\/em> nel caso nella URL non ci sia una pagina specifica, ad esempio in <em>http:\/\/www.example.com\/<\/em>. Poich\u00e9 <em>IndexController<\/em>, realizzato <a href=\"https:\/\/www.artera.net\/it\/blog\/programmazione\/utilizzare-spring-nelle-web-application-parte-5\" target=\"_blank\" rel=\"noopener noreferrer\">nell&#8217;articolo scorso<\/a>, risponde al path <em>\/index.html<\/em>, questa JSP si occupa semplicimente di redirezionarvi il browser:<\/p>\n<p>[java]&lt;%@ include file=&quot;WEB-INF\/pages\/common\/taglibs.jsp&quot;%&gt;<br \/>\n&lt;c:redirect url=&quot;index.html&quot; \/&gt;[\/java]<\/p>\n<p>Infine, ecco il codice della pagina <em>src\/main\/webapp\/WEB-INF\/pages\/index.jsp<\/em>, ovvero quella che verr\u00e0 mostrata dopo <em>IndexController<\/em>:<\/p>\n<p>[html]&lt;%@ page language=&quot;java&quot; contentType=&quot;text\/html; charset=UTF-8&quot; pageEncoding=&quot;UTF-8&quot;%&gt;<br \/>\n&lt;!DOCTYPE html PUBLIC &quot;-\/\/W3C\/\/DTD XHTML 1.0 Transitional\/\/EN&quot;<br \/>\n    &quot;http:\/\/www.w3.org\/TR\/xhtml1\/DTD\/xhtml1-transitional.dtd&quot;&gt;<br \/>\n&lt;%@ include file=&quot;common\/taglibs.jsp&quot;%&gt;<br \/>\n&lt;html&gt;<br \/>\n&lt;head&gt;<br \/>\n  &lt;title&gt;index.jsp&lt;\/title&gt;<br \/>\n&lt;\/head&gt;<br \/>\n&lt;body&gt;<br \/>\n&lt;%@ include file=&quot;common\/searchBox.jsp&quot; %&gt;<br \/>\n&lt;hr \/&gt;<br \/>\n&lt;h4&gt;Ultime inserzioni&lt;\/h4&gt;<br \/>\n&lt;a href=&quot;insertions.html&quot;&gt;Visualizza tutte&lt;\/a&gt;<br \/>\n&lt;%@ include file=&quot;common\/insertionsList.jsp&quot; %&gt;<br \/>\n&lt;\/body&gt;<br \/>\n&lt;\/html&gt;[\/html]<\/p>\n<h3>Linkografia<\/h3>\n<ul>\n<li><a href=\"http:\/\/www.springframework.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Spring framework<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p><img decoding=\"async\" class=\"alignleft size-full wp-image-6347\" src=\"https:\/\/www.artera.net\/wp-content\/uploads\/2011\/02\/Logo_Spring_252x1501.png\" alt=\"\" width=\"142\" height=\"80\" \/>Finalmente vedremo come realizzare le pagine JSP, ma prima, come al solito, bisogna mettere mano ai file di configurazione. Negli scorsi articoli infatti siamo partiti da una situazione molto generica, per poi suddividere l&#8217;applicazione in strati; questo ci obbliga ad effettuare periodicamente dei <a title=\"Code Refactoring (Wikipedia)\" href=\"http:\/\/en.wikipedia.org\/wiki\/Code_refactoring\" target=\"_blank\" rel=\"noopener noreferrer\"><em>refactoring<\/em><\/a> dei sorgenti; con la versione 3.x di Spring comunque si \u00e8 cercato di semplificare molto le configurazioni, quindi si tratter\u00e0 di cambiamenti molto isolati.<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_eb_attr":"","footnotes":""},"categories":[108],"tags":[172,173,143,174,215,175,214],"class_list":["post-6812","post","type-post","status-publish","format-standard","hentry","category-sviluppo","tag-java","tag-jsp","tag-mvc","tag-servlet","tag-spring","tag-tomcat","tag-tutorial-spring"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u2022 Utilizzare Spring nelle web application - parte 6 - Artera<\/title>\n<meta name=\"description\" content=\"Leggi dal blog: Utilizzare Spring nelle web application - parte 6. Contattaci per una partnership! Artera Swiss Premium Hosting news, articoli e notizie interessanti dal mondo digitale.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.artera.net\/it\/sviluppo\/utilizzare-spring-nelle-web-application-parte-6\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u2022 Utilizzare Spring nelle web application - parte 6 - Artera\" \/>\n<meta property=\"og:description\" content=\"Leggi dal blog: Utilizzare Spring nelle web application - parte 6. Contattaci per una partnership! Artera Swiss Premium Hosting news, articoli e notizie interessanti dal mondo digitale.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.artera.net\/it\/sviluppo\/utilizzare-spring-nelle-web-application-parte-6\/\" \/>\n<meta property=\"og:site_name\" content=\"Artera\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/artera.net\/\" \/>\n<meta property=\"article:published_time\" content=\"2011-03-29T12:09:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-02-27T14:50:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.artera.net\/wp-content\/uploads\/2011\/02\/Logo_Spring_252x1501.png\" \/>\n<meta name=\"author\" content=\"Sergio Ravera\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sergio Ravera\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/utilizzare-spring-nelle-web-application-parte-6\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/utilizzare-spring-nelle-web-application-parte-6\\\/\"},\"author\":{\"name\":\"Sergio Ravera\",\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#\\\/schema\\\/person\\\/48ffb6b3727677643fbfd3ecf0a10aa0\"},\"headline\":\"Utilizzare Spring nelle web application &#8211; parte 6\",\"datePublished\":\"2011-03-29T12:09:21+00:00\",\"dateModified\":\"2023-02-27T14:50:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/utilizzare-spring-nelle-web-application-parte-6\\\/\"},\"wordCount\":1260,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/utilizzare-spring-nelle-web-application-parte-6\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.artera.net\\\/wp-content\\\/uploads\\\/2011\\\/02\\\/Logo_Spring_252x1501.png\",\"keywords\":[\"java\",\"jsp\",\"mvc\",\"servlet\",\"Spring\",\"tomcat\",\"tutorial Spring\"],\"articleSection\":[\"Sviluppo\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/utilizzare-spring-nelle-web-application-parte-6\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/utilizzare-spring-nelle-web-application-parte-6\\\/\",\"url\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/utilizzare-spring-nelle-web-application-parte-6\\\/\",\"name\":\"\u2022 Utilizzare Spring nelle web application - parte 6 - Artera\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/utilizzare-spring-nelle-web-application-parte-6\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/utilizzare-spring-nelle-web-application-parte-6\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.artera.net\\\/wp-content\\\/uploads\\\/2011\\\/02\\\/Logo_Spring_252x1501.png\",\"datePublished\":\"2011-03-29T12:09:21+00:00\",\"dateModified\":\"2023-02-27T14:50:27+00:00\",\"description\":\"Leggi dal blog: Utilizzare Spring nelle web application - parte 6. Contattaci per una partnership! Artera Swiss Premium Hosting news, articoli e notizie interessanti dal mondo digitale.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/utilizzare-spring-nelle-web-application-parte-6\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/utilizzare-spring-nelle-web-application-parte-6\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/utilizzare-spring-nelle-web-application-parte-6\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.artera.net\\\/wp-content\\\/uploads\\\/2011\\\/02\\\/Logo_Spring_252x1501.png\",\"contentUrl\":\"https:\\\/\\\/www.artera.net\\\/wp-content\\\/uploads\\\/2011\\\/02\\\/Logo_Spring_252x1501.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/sviluppo\\\/utilizzare-spring-nelle-web-application-parte-6\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.artera.net\\\/it\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Utilizzare Spring nelle web application &#8211; parte 6\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#website\",\"url\":\"https:\\\/\\\/www.artera.net\\\/it\\\/\",\"name\":\"Artera\",\"description\":\"Swiss Premium Hosting\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.artera.net\\\/it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#organization\",\"name\":\"Artera\",\"url\":\"https:\\\/\\\/www.artera.net\\\/it\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.artera.net\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/artera-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.artera.net\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/artera-logo.png\",\"width\":300,\"height\":77,\"caption\":\"Artera\"},\"image\":{\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/artera.net\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/artera\\\/\",\"https:\\\/\\\/www.instagram.com\\\/artera_swiss\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.artera.net\\\/it\\\/#\\\/schema\\\/person\\\/48ffb6b3727677643fbfd3ecf0a10aa0\",\"name\":\"Sergio Ravera\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/618f2c20338bb422bd317eae8d6c9c097ba85d3f5a1da18e21ecf5da5ee3a448?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/618f2c20338bb422bd317eae8d6c9c097ba85d3f5a1da18e21ecf5da5ee3a448?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/618f2c20338bb422bd317eae8d6c9c097ba85d3f5a1da18e21ecf5da5ee3a448?s=96&d=mm&r=g\",\"caption\":\"Sergio Ravera\"},\"description\":\"Raised in a family tradition of merchants, my entrepreneurial spirit drove me to launch my first e-commerce venture in 1998. My vision and dedication led, in 2002, to the founding of Artera, now a leading brand in premium managed cloud hosting services. As Chief Executive Officer, I lead DHH Switzerland SA, part of the international DHH S.p.A. group, listed on the Milan Stock Exchange with the reference code (AIM \u2013 ISIN: IT0005203622). It is under this brand that the Artera brand continues to grow and thrive. In addition to my commitment to the business world, I am an active researcher in the field of new technologies, always fascinated by cutting-edge innovations in the industry.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/sergioravera\\\/\"],\"url\":\"https:\\\/\\\/www.artera.net\\\/it\\\/author\\\/sergio-ravera\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u2022 Utilizzare Spring nelle web application - parte 6 - Artera","description":"Leggi dal blog: Utilizzare Spring nelle web application - parte 6. Contattaci per una partnership! Artera Swiss Premium Hosting news, articoli e notizie interessanti dal mondo digitale.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.artera.net\/it\/sviluppo\/utilizzare-spring-nelle-web-application-parte-6\/","og_locale":"it_IT","og_type":"article","og_title":"\u2022 Utilizzare Spring nelle web application - parte 6 - Artera","og_description":"Leggi dal blog: Utilizzare Spring nelle web application - parte 6. Contattaci per una partnership! Artera Swiss Premium Hosting news, articoli e notizie interessanti dal mondo digitale.","og_url":"https:\/\/www.artera.net\/it\/sviluppo\/utilizzare-spring-nelle-web-application-parte-6\/","og_site_name":"Artera","article_publisher":"https:\/\/www.facebook.com\/artera.net\/","article_published_time":"2011-03-29T12:09:21+00:00","article_modified_time":"2023-02-27T14:50:27+00:00","og_image":[{"url":"https:\/\/www.artera.net\/wp-content\/uploads\/2011\/02\/Logo_Spring_252x1501.png","type":"","width":"","height":""}],"author":"Sergio Ravera","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"Sergio Ravera","Tempo di lettura stimato":"6 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.artera.net\/it\/sviluppo\/utilizzare-spring-nelle-web-application-parte-6\/#article","isPartOf":{"@id":"https:\/\/www.artera.net\/it\/sviluppo\/utilizzare-spring-nelle-web-application-parte-6\/"},"author":{"name":"Sergio Ravera","@id":"https:\/\/www.artera.net\/it\/#\/schema\/person\/48ffb6b3727677643fbfd3ecf0a10aa0"},"headline":"Utilizzare Spring nelle web application &#8211; parte 6","datePublished":"2011-03-29T12:09:21+00:00","dateModified":"2023-02-27T14:50:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.artera.net\/it\/sviluppo\/utilizzare-spring-nelle-web-application-parte-6\/"},"wordCount":1260,"commentCount":0,"publisher":{"@id":"https:\/\/www.artera.net\/it\/#organization"},"image":{"@id":"https:\/\/www.artera.net\/it\/sviluppo\/utilizzare-spring-nelle-web-application-parte-6\/#primaryimage"},"thumbnailUrl":"https:\/\/www.artera.net\/wp-content\/uploads\/2011\/02\/Logo_Spring_252x1501.png","keywords":["java","jsp","mvc","servlet","Spring","tomcat","tutorial Spring"],"articleSection":["Sviluppo"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.artera.net\/it\/sviluppo\/utilizzare-spring-nelle-web-application-parte-6\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.artera.net\/it\/sviluppo\/utilizzare-spring-nelle-web-application-parte-6\/","url":"https:\/\/www.artera.net\/it\/sviluppo\/utilizzare-spring-nelle-web-application-parte-6\/","name":"\u2022 Utilizzare Spring nelle web application - parte 6 - Artera","isPartOf":{"@id":"https:\/\/www.artera.net\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.artera.net\/it\/sviluppo\/utilizzare-spring-nelle-web-application-parte-6\/#primaryimage"},"image":{"@id":"https:\/\/www.artera.net\/it\/sviluppo\/utilizzare-spring-nelle-web-application-parte-6\/#primaryimage"},"thumbnailUrl":"https:\/\/www.artera.net\/wp-content\/uploads\/2011\/02\/Logo_Spring_252x1501.png","datePublished":"2011-03-29T12:09:21+00:00","dateModified":"2023-02-27T14:50:27+00:00","description":"Leggi dal blog: Utilizzare Spring nelle web application - parte 6. Contattaci per una partnership! Artera Swiss Premium Hosting news, articoli e notizie interessanti dal mondo digitale.","breadcrumb":{"@id":"https:\/\/www.artera.net\/it\/sviluppo\/utilizzare-spring-nelle-web-application-parte-6\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.artera.net\/it\/sviluppo\/utilizzare-spring-nelle-web-application-parte-6\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.artera.net\/it\/sviluppo\/utilizzare-spring-nelle-web-application-parte-6\/#primaryimage","url":"https:\/\/www.artera.net\/wp-content\/uploads\/2011\/02\/Logo_Spring_252x1501.png","contentUrl":"https:\/\/www.artera.net\/wp-content\/uploads\/2011\/02\/Logo_Spring_252x1501.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.artera.net\/it\/sviluppo\/utilizzare-spring-nelle-web-application-parte-6\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.artera.net\/it\/"},{"@type":"ListItem","position":2,"name":"Utilizzare Spring nelle web application &#8211; parte 6"}]},{"@type":"WebSite","@id":"https:\/\/www.artera.net\/it\/#website","url":"https:\/\/www.artera.net\/it\/","name":"Artera","description":"Swiss Premium Hosting","publisher":{"@id":"https:\/\/www.artera.net\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.artera.net\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/www.artera.net\/it\/#organization","name":"Artera","url":"https:\/\/www.artera.net\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.artera.net\/it\/#\/schema\/logo\/image\/","url":"https:\/\/www.artera.net\/wp-content\/uploads\/2019\/09\/artera-logo.png","contentUrl":"https:\/\/www.artera.net\/wp-content\/uploads\/2019\/09\/artera-logo.png","width":300,"height":77,"caption":"Artera"},"image":{"@id":"https:\/\/www.artera.net\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/artera.net\/","https:\/\/www.linkedin.com\/company\/artera\/","https:\/\/www.instagram.com\/artera_swiss\/"]},{"@type":"Person","@id":"https:\/\/www.artera.net\/it\/#\/schema\/person\/48ffb6b3727677643fbfd3ecf0a10aa0","name":"Sergio Ravera","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/618f2c20338bb422bd317eae8d6c9c097ba85d3f5a1da18e21ecf5da5ee3a448?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/618f2c20338bb422bd317eae8d6c9c097ba85d3f5a1da18e21ecf5da5ee3a448?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/618f2c20338bb422bd317eae8d6c9c097ba85d3f5a1da18e21ecf5da5ee3a448?s=96&d=mm&r=g","caption":"Sergio Ravera"},"description":"Raised in a family tradition of merchants, my entrepreneurial spirit drove me to launch my first e-commerce venture in 1998. My vision and dedication led, in 2002, to the founding of Artera, now a leading brand in premium managed cloud hosting services. As Chief Executive Officer, I lead DHH Switzerland SA, part of the international DHH S.p.A. group, listed on the Milan Stock Exchange with the reference code (AIM \u2013 ISIN: IT0005203622). It is under this brand that the Artera brand continues to grow and thrive. In addition to my commitment to the business world, I am an active researcher in the field of new technologies, always fascinated by cutting-edge innovations in the industry.","sameAs":["https:\/\/www.linkedin.com\/in\/sergioravera\/"],"url":"https:\/\/www.artera.net\/it\/author\/sergio-ravera\/"}]}},"_links":{"self":[{"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/posts\/6812","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/comments?post=6812"}],"version-history":[{"count":2,"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/posts\/6812\/revisions"}],"predecessor-version":[{"id":216566,"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/posts\/6812\/revisions\/216566"}],"wp:attachment":[{"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/media?parent=6812"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/categories?post=6812"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.artera.net\/it\/wp-json\/wp\/v2\/tags?post=6812"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}