a inclusao do StrutsFigura 11 - Teste o projetoFigura 12 - Teste pelo Run ProjetFigura 13 - Teste pelo Run Projet pasando a URL na maoFigura 14 - Output do NBO q esta acontecendo aqui ? (da maneira mais simples)Nossa aplicacao contem arquivos XML que definem o comportamento dos servlets e algumas configuracoes.I) Ao carregar a app,O arquivo struts-config.xml informou uma action de nome Welcome apontado /Welcome.doVeja o nosso arquivo struts-config.xml sem os comentarios :<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd"><struts-config> <form-beans> </form-beans> <global-exceptions> </global-exceptions> <global-forwards> <forward name="welcome" path="/Welcome.do"/> </global-forwards> <action-mappings> <action path="/Welcome" forward="/welcomeStruts.jsp"/> </action-mappings> <controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"/> <message-resources parameter="com/myapp/struts/ApplicationResource"/> <!-- ========================= Tiles plugin ===============================--> <!-- ..... Paths found in Tiles definitions are relative to the main context. --> <plug-in className="org.apache.struts.tiles.TilesPlugin" > <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" /> <set-property property="moduleAware" value="true" /> </plug-in> <!-- ========================= Validator plugin ================================= --> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/> </plug-in> </struts-config>II) e de onde vem esse .do no fim da solicitacao http ?R: da configuracao do arquivo web.xml, observe a inicial :Atencao :- Na linha <load-on-startup>2</load-on-startup> dentro da tag <servlet> - No conjunto <jsp-config> que adicionei as TLDs junto com o projeto. Pode-se usar a url do site, mas e se a WebApp estiver num servidor que nao acessa a Internet ?- E o .do esta sendo "resolvido" pela tag <servlet-mapping> com um pattern .do .<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>2</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>2</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <jsp-config> <taglib> <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri> <taglib-location>/WEB-INF/struts-bean.tld</taglib-location> </taglib> <taglib> <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri> <taglib-location>/WEB-INF/struts-html.tld</taglib-location> </taglib> <taglib> <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri> <taglib-location>/WEB-INF/struts-logic.tld</taglib-location> </taglib> <taglib> <taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri> <taglib-location>/WEB-INF/struts-nested.tld</taglib-location> </taglib> <taglib> <taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri> <taglib-location>/WEB-INF/struts-tiles.tld</taglib-location> </taglib> </jsp-config></web-app>III) e chamado o arquivo welcomeStruts.jsp :Figura 15 - arquivo welcomeStruts.jspObserve as linhas : <beans:message> a chave (key) welcome.PropriedadeIV) Essa definicoes estao no arquivo ApplicationResource.properties dentro do package com.app.struts Figura 16 - Arquivo propertiesobserve as linhas finais :welcome.title=Struts Applicationwelcome.heading=Struts Applications in Netbeans!welcome.message=It's easy to create Struts applications with NetBeans.3) Implementando nossas classes ao projeto:Vamos manipular a tabela contato do banco, certo ? Precisamos de : 0) adicionar o driver do Mysql ao projeto1) um modelo Contato2) uma interface DAO3) uma classe que implemente a interface DAO4) uma interface de Servico5) uma classe que implemente a interface de Servico6) das classes p/ atender os actions que serao mapeados no arquivo struts-config.xml, que extendem a classe org.apache.struts.action.Action, 7) definir as actions e mappings no arquivo struts-config.xml8) criar a view (interface para o usuario), definindo um form9) criar uma pagina que mostre os erros quando acontecerOBS: ainda nao vou utilizar o spring, depois implementaremos:Maos a obra..0) Adicione a Lib do Mysql:Figura 17 - Adicione a lib do Mysql1) Criando o modelo :Figura 18 - Criando o modelo Contatodefina 3 variavess:int id;String nome;String telefone , e escolha refactor>> encapsulate FieldsFigura 19 - Encapsulando a classe ContatoCODEpackage com.myapp.model;public class Contato { private int id; private String nome; private String telefone; public Contato() { this.id=0; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getNome() { return