Olá, boa tarde. Neste ponto, no qual era o objetivo simular o problema com acesso concorrente a recursos quando se trabalha com servlets, tive problemas em simular a concorrência: conforme colocado no capítulo, criei um atributo na classe, e no método recebi ele com o getParameter() e dei um Thread.sleep(99999), mas não obtive os errors esperados. Alguém saberia o motivo???
Segue o código da classe:
package br.com.alura.gerenciador.web;
import java.io.IOException;
import java.util.Collection;
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.alura.gerenciador.Empresa;
import br.com.alura.gerenciador.dao.EmpresaDAO;
import jdk.nashorn.internal.runtime.logging.Logger;
/**
* Servlet implementation class BuscaEmpresa
*/
@Logger
@WebServlet ( "/busca" )
public class BuscaEmpresa extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = -5640846148829616329L;
String nome;
/**
* @see HttpServlet#HttpServlet()
*/
public BuscaEmpresa () {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
@Override
protected void doGet ( HttpServletRequest request , HttpServletResponse response )
throws ServletException , IOException {
try {
response.setCharacterEncoding( "utf-8" );
response.getWriter().append(
"<!doctype html>"
+ "<html>"
+ "<head>"
+ "<meta charset='utf-8' />"
+ "<title> Gerenciador - Busca de Empresa</title>"
+ "<style>"
+ "table, td, th{border: 1px solid black}"
+ "table{border-collapse: collapse}"
+ "td,th{padding: 0.125em 1em}"
+ "th{background: lightgray}"
+ "</style>"
+ "</head>"
+ "<body>"
+ "<h3>Resultado da Busca: </h3>"
+ "<table>"
+ "<thead>"
+ "<th>ID</th>"
+ "<th>NOME</th>"
+ "</thead>"
+ "<tbody>");
EmpresaDAO empresaDAO = new EmpresaDAO();
String filtro = request.getParameter( "nome" );
try {
Thread.sleep( 999999 );
} catch ( Exception e ) {
e.printStackTrace();
}
Collection<Empresa> empresas = empresaDAO.buscaPorSimilaridade( filtro );
for(Empresa empresa : empresas) {
response.getWriter().append(
String.format(
"<tr>"
+ "<td>%s</td><td>%s</td>", empresa.getId(), empresa.getNome())
+ "</tr>"
);
}
response.getWriter().append(
"<tbody>"
+ "</table>"
+ "</body>"
+ "</html>" );
} catch ( IOException e ) {
log( e.getMessage() );
}
}
}