Prática básica de MVC
As questões a seguir deverão ser feitas utilizando o framework MVC discutido em sala.
1. Crie um comando para exibir a frase “Hello World”, quando o usuário acessar.
Segue abaixo o comando chamado Exercicio51 como uma solução.
O comando estará acessível pela query string ?command=Exercicio51:index
.
package commands;
import minimvc.Command;
public class Exercicio51 extends Command {
public void index() {
out.println("Hello World");
}
}
2. Adapte o comando da questão anterior para que exiba a frase através de um arquivo JSP usando o método
forward()
da classe Command
.
O comando Exercicio52 abaixo é uma solução.
Note o uso do método forward()
para exibir um JSP.
package commands;
import minimvc.Command;
import javax.servlet.ServletException;
import java.io.IOException;
public class Exercicio52 extends Command {
public void index() throws ServletException, IOException {
forward("/exercicio5.jsp");
}
}
<body>
<p>Hello World</p>
</body>
3. Crie um comando para exibir o seguinte formulário quando o usuário acessar por GET:
<form method="post">
Mensagem: <input name="mensagem" type="text"> <input type="submit">
</form>
Quando o usuário enviar a mensagem (veja que usa método POST) ele deverá ver uma página de sucesso em que mostre a própria mensagem enviada pelo usuário.
OBS: deixando mais claro, o acesso por método POST não mostra o formulário, apenas por GET.
O comando Exercicio53 abaixo é uma solução que utiliza em conjunto as
páginas exercicio5-form.jsp
e exercicio5-sucesso.jsp
.
package commands;
import minimvc.Command;
import javax.servlet.ServletException;
import java.io.IOException;
public class Exercicio53 extends Command {
public void enviarMensagem() throws ServletException, IOException {
switch (request.getMethod()) {
case "GET":
forward("/exercicio5-form.jsp");
break;
case "POST":
String mensagem = getParameter("mensagem");
if (mensagem == null || mensagem.isEmpty()) {
response.sendError(422, "Nenhuma mensagem enviada");
} else {
setAttribute("mensagem", mensagem);
forward("/exercicio5-sucesso.jsp");
}
break;
}
}
}
<body>
<h1>Envie uma mensagem</h1>
<form method="post">
Mensagem: <input name="mensagem" type="text"> <input type="submit">
</form>
</body>
<body>
<p><strong>Mensagem enviada com sucesso</strong></p>
<p>A mensagem "${mensagem}" foi enviada com sucesso!</p>
</body>