11
Java Home Aprender Java Home IDE Eclipse Exemplo completo com JSP JSTL Servlet JDBC PostGreSQL Exemplo completo com JSP JSTL Servlet JDBC PostGreSQL 5 Posted by André Félix | Sunday, 16 March, 2014 | No Comments Exemplo completo com JSP JSTL Servlet JDBC PostGreSQL Olá Amigos, Hoje criaremos um projeto completo com as tecnologias java: JSP + JSTL + Servlet + JDBC + PostgreSQL. Claro que iniciaremos com uma breve descrição de cada uma delas. Tecnologias utilizadas no exemplo JSP (Java Server Page) é a tecnologia Java para construção de páginas dinâmicas. JSTL (JSP Stantard Tag Library) é uma biblioteca de tags que nos ajudam na construção de página dinâmica sem utilizarmos a scriplet (código Java diretamente na página) Servlet são classes especiais java que recebem e respondem a requisições do protocolo HTTP. JDBC (Java Database Connectivity) é a forma padrão de acesso a Banco de dados em Java PostgreSQL é um banco de dados relacional gratuito e de grande aceitação no mercado e com características muito boas para sistemas na Internet Padrão MVC – Model View Controller é um padrão de projeto que divide nossa aplicação em várias camadas 1. Introdução Este exemplo começa uma página inicial index.jsp que exibe as informações de funcionamento do projeto. Ao clicar na imagem principal é exibido o menu.jsp. Esta página tem a opção de listagem de alunos ou realizar a manutenção (Inclusão, alteração, consulta ou exclusão de um Aluno). Se escolhermos a opção de cadastro será exibida a tela de manutenção. Veja os campos disponíveis. S S S S M

Exemplo completo com JSP JSTL Servlet JDBC PostGreSQL.pdf

Embed Size (px)

Citation preview

Page 1: Exemplo completo com JSP JSTL Servlet JDBC PostGreSQL.pdf

Java HomeAprender Java

Home IDE Eclipse Exemplo completo com JSP JSTL Servlet JDBCPostGreSQL

Exemplo completo com JSP JSTL Servlet JDBCPostGreSQL

5

Posted by André Félix | Sunday, 16 March, 2014 | No Comments

Exemplo completo com JSP JSTL Servlet JDBC

PostGreSQL

Olá Amigos,

Hoje criaremos um projeto completo com as tecnologias java: JSP + JSTL + Servlet + JDBC + PostgreSQL.

Claro que iniciaremos com uma breve descrição de cada uma delas.

Tecnologias utilizadas no exemploJSP (Java Server Page) é a tecnologia Java para construção de páginas dinâmicas.JSTL (JSP Stantard Tag Library) é uma biblioteca de tags que nos ajudam na construção de página dinâmica sem utilizarmos a scriplet (código Java diretamente

na página)Servlet são classes especiais java que recebem e respondem a requisições do protocolo HTTP.JDBC (Java Database Connectivity) é a forma padrão de acesso a Banco de dados em JavaPostgreSQL é um banco de dados relacional gratuito e de grande aceitação no mercado e com características muito boas para sistemas na InternetPadrão MVC – Model View Controller é um padrão de projeto que divide nossa aplicação em várias camadas

1. IntroduçãoEste exemplo começa uma página inicial index.jsp que exibe as informações de funcionamento do projeto. Ao clicar na imagem principal é exibido o menu.jsp.

Esta página tem a opção de listagem de alunos ou realizar a manutenção (Inclusão, alteração, consulta ou exclusão de um Aluno). Se escolhermos a opção de

cadastro será exibida a tela de manutenção.

Veja os campos disponíveis.

S S S S M

Page 2: Exemplo completo com JSP JSTL Servlet JDBC PostGreSQL.pdf

img 1 – Visão macro do nosso projeto

Para maior facilidade as classes e páginas também foram comentadas para auxiliar no entendimento e estudo do código.

    Você deverá ter conhecimento prévio de Aplicação Web Java e utilização do Tomcat. Caso ainda não tenha, acesse os links informados no final deste artigo.

2 . Criação da tabela no banco de dados

Script de criação da tabela no Banco de dados:

12345678

CREATE TABLE  IF NOT EXISTS tbaluno(  matricula bigint NOT NULL,    nome character varying(255),  telefone character varying(255),    email character varying(255),  datacadastro date,  CONSTRAINT tbaluno_pkey PRIMARY KEY (matricula));

É criado o comando que gera a tabela caso ela ainda não exista.

3 . Construção do projeto

Para começar vamos construir a estrutura do nosso projeto. Ao final deste tutorial o seu projeto deve estar como mostrado na imagem abaixo:

Cursos online Java – Moodle Sobre Tutoriais

+

Page 3: Exemplo completo com JSP JSTL Servlet JDBC PostGreSQL.pdf

Nela temos o nome do projeto (AcademicNetWeb)

Abaixo os nós mais importantes são:

-> Java Resources (src) (Aqui teremos os códigos fontes arquivos .java)

-> WebContent (Aqui ficam os arquivos web JSPs, imagens, JavaScript).

Para criar o projeto, no Eclipse, acesse o menu File >> Other…>> Na tela que aparece escolha Web >> Dynamic Web Project.

Dê o nome de “AcademicNetWeb” … Next >> Next … Na última tela Selecione a opição “Generate web.xml deployment descriptor”. >> Finish

Para saber mais sobre criação de projeto web no Eclipse Clique Aqui

Vamos criar a classe de entidade Aluno. O conteúdo deve ser o seguinte:

123456789101112131415161718192021222324252627282930313233

package br.com.feltex.entidade; import java.io.Serializable;import java.util.Date; /** *  * Classe de entidade que possui os atributos do aluno  * */public class Aluno implements Serializable {  private static final long serialVersionUID = ‐309513637403441918L;   private Long matricula;   private String nome;   private String telefone;   private String email;   private Date dataCadastro;   public Aluno() {}   public Aluno(Long matricula) {    super();    this.matricula = matricula;  }   public Aluno(Long matricula, String nome) {    super();    this.matricula = matricula;

Page 4: Exemplo completo com JSP JSTL Servlet JDBC PostGreSQL.pdf

3435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283

    this.nome = nome;  }   public Date getDataCadastro() {    return dataCadastro;  }   public String getEmail() {    return email;  }   public Long getMatricula() {    return matricula;  }   public String getNome() {    return nome;  }   public String getTelefone() {    return telefone;  }   public void setDataCadastro(Date dataCadastro) {    this.dataCadastro = dataCadastro;  }   public void setEmail(String email) {    this.email = email;  }   public void setMatricula(Long matricula) {    this.matricula = matricula;  }   public void setNome(String nome) {    this.nome = nome;  }   public void setTelefone(String telefone) {    this.telefone = telefone;  }   @Override  public String toString() {    return "Aluno [matricula=" + matricula + ", nome=" + nome        + ", telefone=" + telefone + ", email=" + email        + ", dataCadastro=" + dataCadastro + "]";  }}

A Classe DAO é a classe que utilizamos para conectar como Banco de Dados PostgreSQL.

12345678910111213141516171819202122232425262728

 package br.com.feltex.dao; import java.sql.Connection;import java.sql.DriverManager; /** * Classe responsável pela Conexão com o Banco de dados. É utilizada por outras * classes de persistência de dados. *  */public class DAO {  public Connection getConexao() {    Connection conexao = null;    String usuario = "postgres";    String senha = "teco01";    String nomeBancoDados = "bdacademicnet";     try {      Class.forName("org.postgresql.Driver");      conexao = DriverManager.getConnection("jdbc:postgresql://localhost:5432/" + nomeBancoDados,           usuario, senha);    } catch (Exception e) {      e.printStackTrace();    }    return conexao;  }}

A classe AlunoDAO é responsável por realizar todas as operações com Banco de dados.

Nela encontramos os métodos de persistência (

alterar – alteração de um registro no banco de dados

excluir – exclui um registro no banco de dados

existe – Verifica a existência de uma matrícula informada no banco de dados

Page 5: Exemplo completo com JSP JSTL Servlet JDBC PostGreSQL.pdf

inserir – incluirá os dados de um aluno no banco de dados

listar – retorna todos os registros existentes no banco de dados

consultar – retorna um registro identificado com a matrícula informada

)

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384

package br.com.feltex.dao; import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.Statement;import java.util.ArrayList;import java.util.List; import br.com.feltex.entidade.Aluno; /** *  * Classe de Persistência de dados dos objetos de Aluno * é "filha" da Classe DAO.  * */ public class AlunoDAO extends DAO {   public void alterar(Aluno aluno) {    try {      Connection conexao = getConexao();       PreparedStatement pstmt = conexao          .prepareStatement("Update tbaluno SET nome = ?, telefone = ?, email = ?, datacadastro = ?"              + " WHERE matricula = ? ");      pstmt.setString(1, aluno.getNome());      pstmt.setString(2, aluno.getTelefone());      pstmt.setString(3, aluno.getEmail());      pstmt.setDate(4, new java.sql.Date(aluno.getDataCadastro().getTime()));      pstmt.setLong(5, aluno.getMatricula());      pstmt.execute();      pstmt.close();      conexao.close();     } catch (Exception e) {      e.printStackTrace();    }  }   public void excluir(Aluno aluno) {    try {      Connection conexao = getConexao();      PreparedStatement pstm = conexao          .prepareStatement("Delete from  tbaluno where matricula = ? ");      pstm.setLong(1, aluno.getMatricula());      pstm.execute();      pstm.close();      conexao.close();    } catch (Exception e) {      e.printStackTrace();    }  }   public boolean existe(Aluno aluno) {    boolean achou = false;    try {      Connection conexao = getConexao();      PreparedStatement pstm = conexao          .prepareStatement("Select * from tbaluno where matricula =  ?");      pstm.setLong(1, aluno.getMatricula());      ResultSet rs = pstm.executeQuery();      if (rs.next()) {        achou = true;      }      pstm.close();      conexao.close();    } catch (Exception e) {      e.printStackTrace();    }    return achou;  }   public void inserir(Aluno aluno) {    try {      Connection conexao = getConexao();      PreparedStatement pstm = conexao          .prepareStatement("Insert into  tbaluno (matricula, nome, telefone, email, datacadastro) values (?,?,?,?,?)"      pstm.setLong(1, aluno.getMatricula());      pstm.setString(2, aluno.getNome());      pstm.setString(3, aluno.getTelefone());      pstm.setString(4, aluno.getEmail());      pstm.setDate(5, new java.sql.Date(aluno.getDataCadastro()

Page 6: Exemplo completo com JSP JSTL Servlet JDBC PostGreSQL.pdf

858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137

          .getTime()));      pstm.execute();      pstm.close();      conexao.close();    } catch (Exception e) {      e.printStackTrace();    }  }   public List<Aluno> listar() {    List<Aluno> lista = new ArrayList<>();    try {      Connection conexao = getConexao();      Statement stm = conexao.createStatement();      ResultSet rs = stm.executeQuery("Select * from tbaluno");      while (rs.next()) {        Aluno aluno = new Aluno();        aluno.setMatricula(rs.getLong("matricula"));        aluno.setNome(rs.getString("nome"));        aluno.setTelefone(rs.getString("telefone"));        aluno.setEmail(rs.getString("email"));        aluno.setDataCadastro(new java.util.Date(rs.getDate("datacadastro").getTime()));        lista.add(aluno);      }      stm.close();      conexao.close();    } catch (Exception e) {      e.printStackTrace();    }    return lista;  }   public Aluno consultar(Aluno aluno) {    try {      Connection conexao = getConexao();      PreparedStatement pstm = conexao          .prepareStatement("Select * from tbaluno where matricula =  ?");      pstm.setLong(1, aluno.getMatricula());      ResultSet rs = pstm.executeQuery();      if (rs.next()) {        aluno.setMatricula(rs.getLong("matricula"));        aluno.setNome(rs.getString("nome"));        aluno.setTelefone(rs.getString("telefone"));        aluno.setEmail(rs.getString("email"));        aluno.setDataCadastro(new java.util.Date(rs.getDate("datacadastro").getTime()));      }      pstm.close();      conexao.close();    } catch (Exception e) {      e.printStackTrace();    }    return aluno;  }}

Page 7: Exemplo completo com JSP JSTL Servlet JDBC PostGreSQL.pdf

138

AlunoServlet a principal classe do nosso projeto. Ela é a controladora da navegação. Todas as requisições de acesso ao banco de dados, controle de navegação,

leitura de dados da tela ou envio para o destino de erro ou sucesso é responsabilidade desta classe. Seguindo o padrão MVC ela é o Contoller.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182

package br.com.feltex.servlet; import java.io.IOException;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List; import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; import br.com.feltex.dao.AlunoDAO;import br.com.feltex.entidade.Aluno; @WebServlet("/AlunoServlet")public class AlunoServlet extends HttpServlet {  private static final long serialVersionUID = 1L;   protected void doGet(HttpServletRequest request,      HttpServletResponse response) throws ServletException, IOException {    doPost(request, response);  }   protected void doPost(HttpServletRequest request,      HttpServletResponse response) throws ServletException, IOException {    String acao = request.getParameter("acao");    String destino = "sucesso.jsp";    String mensagem = "";    List<Aluno> lista = new ArrayList<>();      Aluno aluno = new Aluno();    AlunoDAO dao = new AlunoDAO();     try {       //Se a ação for DIFERENTE de Listar são lidos os dados da tela      if (!acao.equalsIgnoreCase("Listar")) {        aluno.setMatricula(Long.parseLong(request.getParameter("matricula")));        aluno.setNome(request.getParameter("nome"));        aluno.setTelefone(request.getParameter("telefone"));        aluno.setEmail(request.getParameter("email"));         //Faz a leitura da data de cadastro. Caso ocorra um erro de formatação        // o sistema utilizará a data atual        try {          DateFormat df = new SimpleDateFormat("dd/MM/yyyy");                   aluno.setDataCadastro(df.parse(request.getParameter("dataCadastro")));        } catch (Exception e) {          aluno.setDataCadastro(new Date());         }       }       if (acao.equalsIgnoreCase("Incluir")) {        // Verifica se a matrícula informada já existe no Banco de Dados        // Se existir enviar uma mensagem senão faz a inclusão        if (dao.existe(aluno)) {          mensagem = "Matrícula informada já existe!";        } else {          dao.inserir(aluno);        }      } else if (acao.equalsIgnoreCase("Alterar")) {        dao.alterar(aluno);      } else if (acao.equalsIgnoreCase("Excluir")) {        dao.excluir(aluno);      } else if (acao.equalsIgnoreCase("Consultar")) {        request.setAttribute("aluno", aluno);        aluno = dao.consultar(aluno);        destino = "aluno.jsp";      }    } catch (Exception e) {      mensagem += e.getMessage();      destino = "erro.jsp";      e.printStackTrace();    } 

Page 8: Exemplo completo com JSP JSTL Servlet JDBC PostGreSQL.pdf

8384858687888990919293949596979899100101102103

    // Se a mensagem estiver vazia significa que houve sucesso!    // Senão será exibida a tela de erro do sistema.    if (mensagem.length() == 0) {      mensagem = "Aluno Cadastrado com sucesso!";    } else {      destino = "erro.jsp";    }     // Lista todos os registros existente no Banco de Dados    lista = dao.listar();    request.setAttribute("listaAluno", lista);    request.setAttribute("mensagem", mensagem);      //O sistema é direcionado para a página     //sucesso.jsp Se tudo ocorreu bem    //erro.jsp se houver algum problema.    RequestDispatcher rd = request.getRequestDispatcher(destino);    rd.forward(request, response);  }}

4. Criação das páginasindex.jsp Página inicial do nosso projeto. Utilizamos aqui conteúdo HTML5 puro. Uma página simples, sem conteúdo dinâmico e que possui os links para o menu da

aplicação quando clicamos na imagem.

123456789101112131415161718

<!DOCTYPE html><html lang="pt"><head><title>Página Inicial</title></head><body>  <div align="center">  <H1> Seja bem vindo ao sistema AcademicNet!</H1>  <H2>    Nesta versão utilizaremos as tecnologias: JSP + JSTL + Servlet + JDBC + PostGreSQL.  </H2>     <a href="menu.jsp">      <img src="imagem/AcemicNet.png">      </a>        </div>  <a href="http://www.feltex.com.br" target="_blank"> http://www.feltex.com.br</a>     </body></html>

menu.jsp Página que conterá as opções de cadastros no nosso sistema. Também uma página simples, sem conteúdo dinâmico e que possui os links para o menu da

aplicação quando clicamos nos links. O primeiro chamará a página aluno.jsp. O Segundo chamará o Servlet AlunoServlet com a opção de listar todos os usuários

cadastrados no Banco de Dados.

12345678910111213

 <!DOCTYPE html><html lang="pt"><head><title>Página Inicial</title></head><body>  <div align="center">    <H1>Seja bem vindo ao sistema AcademicNet!</H1>    <a href="aluno.jsp">Manter Aluno</a><br>    <a href="AlunoServlet?acao=Listar">Listar Alunos</a><br>  </div></body></html>

aluno.jsp Página que contém código dinâmico. Quando encontramos a marcação “${…}” significa que é um conteúdo que deve ser recebido pela página e que será

exibido. Nos campos de texto recebemos os dados de aluno, veja o exemplo: value=”${aluno.nome}” que recebe o campo nome do aluno.

Nesta página utilizamos HTML5. Então podemos ver no campo matrícula a palavra required. Isso informa que este campo é obrigatório. Não será possível enviar os

dados ao servidor sem o preenchimento dele.

Na linha abaixo definimos que o método de envio dos dados para o servidor será “post” e o destino no servidor será a nossa Classe Servlet: “AlunoServlet”

1   <form method="post" action="AlunoServlet">

O Atributo “autofocus” no campo nome determina que este campo receberá o cursor assim que a página for carregada no seu browser.

O atributo “placeholder” é o valor que será exibido nos campos quando eles estiverem vazios. Isso serve para informar ao usuário um valor possível a ser utilizado.

Page 9: Exemplo completo com JSP JSTL Servlet JDBC PostGreSQL.pdf

As linhas

12

  <input type="submit" value="Enviar">   <input type="reset" value="Limpar"> <br />

Informam que temos um botão “submit” que envia os dados ao servidor e também um botão “reset” que limpa os valores exibidos nos campos do formulário.

12345678910111213141516171819202122232425262728293031323334

<!DOCTYPE html><html lang="pt"><head><title>Cadastro de Aluno</title></head><body>  <div align="center">    <form method="post" action="AlunoServlet">      <fieldset>        <legend>Cadastro de Alunos</legend>        <label>Matrícula: </label><input name="matricula" required            value="${aluno.matricula}"          placeholder="2236541" /><br />         <label>Name:</label><input          name="nome" autofocus="autofocus" placeholder="Nome"  value="${aluno.nome}"/><br />          <label>Telefone:</label><input          type="tel" name="telefone" placeholder="9999‐9999" value="${aluno.telefone}" /><br />         <label>Email:</label><input          type="email" name="email" placeholder="[email protected]"  value="${aluno.email}"/><br />         <label>Data Cadastro:</label><input type="date" name="dataCadastro" value="${aluno.dataCadastro}"          placeholder="10/10/2014" /><br /> <label>Ação</label> <select          name="acao" required>          <option selected value="Incluir">Incluir</option>          <option value="Alterar">Alterar</option>          <option value="Excluir">Excluir</option>          <option value="Consultar">Consultar</option>        </select><br /> <input type="submit" value="Enviar"> <input          type="reset" value="Limpar"> <br />      </fieldset>    </form>  </div></body></html>

alunoLista.jsp É uma página dinâmica que utilizamos vários recursos de JSTL. Nas primeiras linhas são declaradas as tags que serão utilizadas. Isso é feito com as

marcações

“@ taglib” para cada linha dessa há um “prefix” que será utilizado como abreviação no uso da TagLib.

A tag a seguir realiza um loop. Neste caso é lido o atributo “listaAluno” que foi enviado do AlunoServlet e será realizado um loop adicionando cada elemento a

variável “aluno”.

Já na linha ““ utilizamos TagLib para realizar a formatação de data no padrão dia/mês/ano (10/10/2014).

123456789101112131415161718192021222324252627282930313233

<!DOCTYPE html><%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%><%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><html lang="pt"><head><meta http‐equiv="Content‐Type" content="text/html; charset=ISO‐8859‐1"><title>Lista de Alunos</title></head><body>  <div align="center">    <P>Lista de Alunos</P>    <table border="1">      <tr>        <td>Matricula</td>        <td>Nome</td>        <td>Telefone</td>        <td>Data Cadastro</td>        <td>Comandos</td>      </tr>      <c:forEach var="aluno" items="${listaAluno}">        <tr>          <td>${aluno.matricula}</td>          <td>${aluno.nome}</td>          <td>${aluno.telefone}</td>          <td><fmt:formatDate value="${aluno.dataCadastro}" type="both" pattern="dd/MM/yyyy"/>            <td><a href="AlunoServlet?acao=Excluir&matricula=${aluno.matricula}">Excluir</a></td>        </tr>      </c:forEach>    </table>    <c:if test="${fn:length(listaAluno) > 0}">       Existem ${fn:length(listaAluno)} alunos!     </c:if><br>    

Page 10: Exemplo completo com JSP JSTL Servlet JDBC PostGreSQL.pdf

3435363738

  </div>  <a href="menu.jsp">Voltar</a> </body></html>

sucesso.jsp Esta página é exibida quando há uma atualização bem sucedida no banco de dados. É feito o uso de JSTL aqui.

Temos o uso do que é usado para exibir o atributo mensagem que recebido do AlunoServlet. Na linh “”

é realizado um include dinâmico da página de lista de alunos. Isso significa que será exibida a listagem de alunos ao carregar esta página.

1234567891011

 <!DOCTYPE html><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><html lang="pt"><head><title>Página de Sucesso</title></head><body><H1>Mensagem JSTL:  <c:out value="${mensagem}" /></H1> <jsp:include page="alunoLista.jsp"/></body></html>

A página erro.jsp é responsável por receber a variável “mensagem” e exibi-la. Esta página é mostrada sempre que há um problema de atualização de dados dos no

Banco de dados.

1234567891011

 <!DOCTYPE html><html lang="pt"><head><title>Mensagens de Erro</title></head><body>Verifique o erro: ${mensagem} <a href="menu.jsp">Voltar</a></body></html>

Por fim temos o nosso arquivo web.xml que é bem simples para o nosso projeto. Ele apenas define qual será a página inicial da nossa aplicação. Atualmente é

index.jsp. Caso você queira uma página diferente, por exemplo, a de login. basta alterar a linha “index.jsp” para menu.jsp

123456789

<?xml version="1.0" encoding="UTF‐8"?><web‐app xmlns:xsi="http://www.w3.org/2001/XMLSchema‐instance"  xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee"  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web‐app_3_0.xsd"  id="WebApp_ID" version="3.0">  <welcome‐file‐list>    <welcome‐file>index.jsp</welcome‐file>  </welcome‐file‐list></web‐app>

Observe que temos também, nas pasta WEB-INF\lib os arquivos:

jstl.jar e standard.jar (Contém as tags que precisamos para uso de JSTL)

postgresql-9.3-1100.jdbc4.jar (Driver para realizar a conexão como Banco de dados PostgreSQL)

Esses arquivos são necessário para que o nosso projeto funcione.

Deixei disponível o projeto completo com o código fonte para auxiliar a todos no processo de aprendizado. Para baixar: Clique aqui

ConclusãoEste é um projeto simples que explica os conceitos necessários para construção de um aplicativo completo para Java Web.

Ele pode ser utilizado em qualquer Servidor Web (JBoss, Tomcat, Websphere, Weblogic), pois não há nenhuma configuração específica para uma implementação de

servidor.

Para utilizar este projeto com outros bancos de Dados (MySQL, SQL Server, Oracle, DB2) basta alterar a forma de conexão na classe “DAO”.

Links relacionadosRecomendo que leia: Como gerenciar a transação JPA com Hibernate via Filtro em projeto Web

Leia também: Exemplo completo com JSF Primefaces + EJB + Hibernate + MySQL + JMS (Topic)

Você irá gostar:Bean Transaction Management

Java Web

Page 11: Exemplo completo com JSP JSTL Servlet JDBC PostGreSQL.pdf

5

JDBC

Abraços e bons estudos.

Não esqueça de curtir este post nas rede sociais. Dê a sua contribuição social e

ajude o autor:

This entry was posted in Eclipse, Java, JavaEE, JSF, WildFly

S S S S M

Copyright Text Here.Biznez Theme by SketchThemes