Você está na página 1de 5

Java – Criando uma aplicação Java Web (MVC)

Introdução

A arquitetura em camadas é usada para dividir uma aplicação por responsabilidades. O


modelo MVC apresenta um padrão arquitetural subdividido em modelo-visao-controle.

A separação dos componentes de uma aplicação diminui o acoplamento entre eles,


tornando a manutenção mais fácil, de maneira que mudanças em um componente não
tenham muito impacto em outro componente.

Uma aplicação Java EE usa o modelo em 3 camadas: apresentação, negócio e


persistência.

Na camada de apresentação estão as páginas JSP. A camada de negócio contem a


modelagem do domínio do problema e a camada de persistência contem as classes
com conhecimento sobre a persistência de objetos no banco de dados.

Passos para implementar MVC com Servlets e JSP


1. Crie beans para representar os dados;
2. Crie um Servlet para tratar requisições, invocar regras de negócio e código de acesso
a dados;
3. Instancie os beans no Servlet;
4. Armazene os beans na requisição, sessão ou contexto do Servlet;
Para armazenar os beans na requisição

ValueObject objeto = new ValueObject(...);


request.setAttribute("chave", objeto);

Para armazenar na sessão

ValueObject objeto = new ValueObject(...);


HttpSession sessao = request.getSession();
sessão.setAttribute("chave", objeto);

Para armazenar no contexto

ValueObject objeto = new ValueObject(...);


getServletContext().setAttribute("chave", objeto);

5. Despache a requisição para um JSP;

String url = "endereço";


RequestDispatcher dispatcher = request.getDispatcher(url);
dispatcher.forward(request, response);

6. Extraia os beans e exiba os dados

Para extrair de uma requisição

<jsp:useBean id="chave" type="pacote.ValueObject"


scope="request"/>
<jsp:getProperty name="chave" property="propriedade"/>

Para extrair de uma sessão

<jsp:useBean id="chave" type="pacote.ValueObject"


scope="session"/>
<jsp:getProperty name="chave" property="propriedade"/>

Para extrair de um contexto

<jsp:useBean id="chave" type="pacote.ValueObject"


scope="application"/>
<jsp:getProperty name="chave" property="propriedade"/>

Uma aplicação Web


Criando uma Aplicação Web que receba o login e a senha de um usuário para em
seguida saudá-lo com "Oi, usuario senha".
Estrutura da aplicação

Código-fonte
Usuario.java
package com.plixsite.modelo;

public class Usuario {

private String login;


private String senha;

public Usuario(){
super();
}

public Usuario(String login, String senha){


super();
this.setLogin(login);
this.setSenha(senha);
}

public String getLogin() {


return login;
}

public void setLogin(String login) {


this.login = login;
}

public String getSenha() {


return senha;
}

public void setSenha(String senha) {


this.senha = senha;
}

}
ServletControle.java
package com.plixsite.controle;

import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpSession;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.plixsite.modelo.Usuario;

public class ServletControle extends HttpServlet {

private static final long serialVersionUID = 1L;

public ServletControle() {
super();
}

protected void doGet(HttpServletRequest request,


HttpServletResponse response) throws ServletException, IOException {
String login = request.getParameter("login");
String senha = request.getParameter("senha");

Usuario u = new Usuario();


u.setLogin(login);
u.setSenha(senha);

HttpSession sessao = request.getSession();


sessao.setAttribute("usuario", u);

String url = "saudacao.jsp";


RequestDispatcher dispatcher =
request.getRequestDispatcher(url);
dispatcher.forward(request, response);
super.doGet(request, response);

protected void doPost(HttpServletRequest request,


HttpServletResponse response) throws ServletException, IOException {
super.doPost(request, response);
doGet(request, response);
}

login.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-
8859-1">
<title>Exemplo MVC</title>
</head>

<body>

<h1>Model-View-Controller</h1>
<h3>Informe os dados solicitados:</h3>

<form action="ServletControle">
Login: <input type="text" name="login" /><br />
Senha: <input type="text" name="senha" /><br />
<input type="submit" value="Enviar" />
<input type="reset" value="Limpar" />
</form>

</body>

</html>

saudacao.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-
8">
<title>Exemplo MVC</title>
</head>

<body>

<h1>Model-View-Controller</h1>

<jsp:useBean
id="usuario"
type="com.plixsite.modelo.Usuario"
scope="session"
/>

Oi,

<jsp:getProperty
name="usuario"
property="login" />

<jsp:getProperty
name="usuario"
property="senha" />

</body>

</html>

Baixe o projeto:

http://www.plixsite.com/downloads/eclipse-mvc.zip

Você também pode gostar