JavaBeans e Servlets – Aplicação Web Básica – Mostrar, Adicionar, Editar e Apagar Dados – Java

Publicado: 10 de novembro de 2014 em Java

Sabendo que a tecnologia Java Server Pages proporcionada pelo servidor de aplicação Tomcat nos possibilita criar aplicações web dinâmicas utilizando JavaBeansServlets, vamos então criar um motor básico que utiliza o principio usado por quase todas as aplicações web para o mundo corporativo, ou seja manipulação de dados.

Em aplicações Enterprise os dados na grande maioria das vezes é manipulado através de um servidor de banco de dados relacional, entretanto neste primeiro exemplo vamos utilizar um objeto Java que possibilita a criação de listas para manipular os dados, ressaltando o que realmente nos interessa neste momento é apenas o esqueleto de uma simples aplicação que mostra, adiciona, edita e deleta dados através de uma interface com o usuário.

Java - Mostar - Adicionar - Editar e Apagar

Java – Mostar – Adicionar – Editar e Apagar

Exemplo:

Neste exemplo utilizaremos um JavaBean que manipula dados através de um objeto List do Java e usamos Servlets para criar a interface com o usuário e manipular as ações requisitadas de entrada, edição e exclusão de dados. Utilize os comentários nos códigos abaixo para entender os processos e técnicas utilizadas.

Java

MeuJavaBean – Manipula Dados

package org.desenvolvimento.aberto;

public class MeuJavaBean {
	// Declara atributo
	private String nome;
	private String comentario;

	// Construtor Default da classe
	public MeuJavaBean() {

	}

	// Construtor Overload
	public MeuJavaBean(String nome, String comentario) {
		this.nome = nome;
		this.comentario = comentario;
	}

	// Métodos Getter e Setter
	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getComentario() {
		return comentario;
	}

	public void setComentario(String comentario) {
		this.comentario = comentario;
	}

}

MeuJServlet – Mostra Dados (Página Principal)

package org.desenvolvimento.aberto;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

// Ler Servlet ao iniciar
@WebServlet(urlPatterns="/MeuJServlet", loadOnStartup = 1)

public class MeuJServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public MeuJServlet() {
		super();
	}

	public void init(ServletConfig config) throws ServletException {		

		// Inicia configuração
		super.init(config);

		// Cria uma Lista com o objeto JavaBean
		List<MeuJavaBean> registros = new ArrayList<MeuJavaBean>();

		// Insere dados na lista
		registros.add(new MeuJavaBean("Ricardo", "Olá Pessoal"));
		registros.add(new MeuJavaBean("Mantovani",
				"Bem-vindos ao Desenvolvimento Aberto, adicione, altere e exclua dados desta tabela"));

		// Define um atributo para o contexto do servlet
		getServletContext().setAttribute("registros", registros);

	}

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		// Recupera contexto do JavaBean
		@SuppressWarnings("unchecked")
		List<MeuJavaBean> registros =  (List<MeuJavaBean>) getServletContext().getAttribute("registros");

		// Cria página HTML
		PrintWriter html = response.getWriter();

		html.println("<!DOCTYPE html>");
		html.println("<head><Title>Desenvolvimento Aberto</title>");

		// CSS
		html.println("<style>");
		html.println("td, th {");
		html.println("border: none;");
		html.println("background-color: #dddddd;");
		html.println("padding: 5px;");
		html.println("width: 200px; }");

		html.println("</style>");
		html.println("</head>");

		//  Corpo da página
		html.println("<html>");
		html.println("<body>");
		html.println("<h1>Desenvolvimento Aberto - Beans e Servlets</h1>");

		// Cria tabela
		html.println("<table>");
		html.println("<tr>");
		html.println("<th>Nome:</th>");
		html.println("<th>Comentário:</th>");
		html.println("<th>Ação:</th>");
		html.println("</tr>");

		for (int id = 0; id < registros.size(); id++) {

			// Recupera identificador
			MeuJavaBean reg = registros.get(id);

			html.println("<tr>");
			html.println("<td>" + reg.getNome() + "</td>");
			html.println("<td>" + reg.getComentario() + "</td>");

			// Link de edição
			html.println("<td><center>");
			html.println("<a href='MeuServletEditar?identificador=" + id + "'>Editar</a> | ");
			html.println("<a href='MeuServletApagar?identificador=" + id + "'>Apagar</a>");
			html.println("</center></td>");

			html.println("</tr>");
		}

		html.println("</table>");

		// Define link para formulario de adicionar dados (Servlet)
		html.println("<P> <a href='MeuServletAdd'>Adicione um comentário</a> </p>");

		html.println("</body>");
		html.println("</html>");
	}

	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		// Chama método GET
		doGet(request, response);
	}

}

MeuServletAdd – Adiciona Dados

package org.desenvolvimento.aberto;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/MeuServletAdd")
public class MeuServletAdd extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public MeuServletAdd() {
		super();
	}

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		// Mostra pagina HTML
		response.setContentType("text/html");

		PrintWriter html = response.getWriter();

		html.println("<html>");
		html.println("<body>");
		html.println("<h1>Desenvolvimento Aberto</h1>");
		html.println("<h2>Servlet - Adiciona Dados</h2>");

		// Formulário processa este mesmo Servlet e o método DoPost
		html.println("<form action='MeuServletAdd' method='post'>");
		html.println("Nome: <input type='text' name='nome' size ='55' /> <br>");
		html.println("<textarea name='comentario' cols='50' rows='7'></textarea> <br>");
		html.println("<input type='submit' name='adiciona' value='Adicionar'/> <br>"); 

		html.println("</form>");
		html.println("</body>");
		html.println("</html>");
	}

	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		// Recupera parâmetros
		String nome = request.getParameter("nome");
		String comentario = request.getParameter("comentario");

		// Recupera Lista Registros
		@SuppressWarnings("unchecked")
		List<MeuJavaBean> registros =  (List<MeuJavaBean>) getServletContext().getAttribute("registros");

		// Adiciona dados ao Bean
		registros.add(new MeuJavaBean(nome, comentario));

		// Redireciona para o Servlet principal
		response.sendRedirect("MeuJServlet");

	}

}

MeuServletEditar – Edita Dados

package org.desenvolvimento.aberto;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/MeuServletEditar")
public class MeuServletEditar extends HttpServlet {
	private static final long serialVersionUID = 1L;

	// Cria identificador
	private static int id;

	public MeuServletEditar() {
		super();
	}

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		// Recupera Lista Registros
		@SuppressWarnings("unchecked")
		List<MeuJavaBean> registros = (List<MeuJavaBean>) getServletContext()
				.getAttribute("registros");

		// Recupera registro por ID
		id = Integer.parseInt(request.getParameter("identificador"));

		MeuJavaBean reg = registros.get(id);

		// Mostra pagina HTML
		response.setContentType("text/html");

		PrintWriter html = response.getWriter();

		html.println("<html>");
		html.println("<body>");
		html.println("<h1>Desenvolvimento Aberto</h1>");
		html.println("<h2>Servlet - Editar Dados</h2>");

		// Formulário processa este mesmo Servlet e o método DoPost
		html.println("<form action='MeuServletEditar' method='post'>");
		html.println("Nome: <input type='text' name='nome' size ='55' value='"
				+ reg.getNome() + "'/> <br>");
		html.println("<textarea name='comentario' cols='50' rows='7'>"
				+ reg.getComentario() + "</textarea> <br>");
		html.println("<input type='submit' name='altera' value='Alterar'/> <br>");

		html.println("</form>");
		html.println("</body>");
		html.println("</html>");
	}

	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		// Recupera parâmetros
		String nome = request.getParameter("nome");
		String comentario = request.getParameter("comentario");

		// Recupera Lista Registros
		@SuppressWarnings("unchecked")
		List<MeuJavaBean> registros = (List<MeuJavaBean>) getServletContext()
				.getAttribute("registros");

		// Altera dados ao Bean
		registros.get(id).setNome(nome);
		registros.get(id).setComentario(comentario);

		// Redireciona para o Servlet principal
		response.sendRedirect("MeuJServlet");

	}

}

MeuServletApagar – Apaga Dados

package org.desenvolvimento.aberto;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/MeuServletApagar")
public class MeuServletApagar extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public MeuServletApagar() {
		super();
	}

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		// Recupera Lista Registros
		@SuppressWarnings("unchecked")
		List<MeuJavaBean> registros = (List<MeuJavaBean>) getServletContext()
				.getAttribute("registros");

		// Recupera registro por ID
		int id = Integer.parseInt(request.getParameter("identificador"));

		// Remove identificador e redireciona Servlet
		registros.remove(id);

		// Redireciona para o Servlet principal
		response.sendRedirect("MeuJServlet");

	}

	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
	}

}

 

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s