Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

req cannot be resolved

novaEmpresaServlet.java:

//imports
@WebServlet("/novaEmpresa")
public class NovaEmpresaServlet extends HttpServlet {
    private static final long serialVersionUID = 11130532147L;

    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    System.out.println("Cadastrando nova empresa");
    String nomeEmpresa = req.getParameter("nome");

    Empresa empresa = new Empresa();
    empresa.setNome(nomeEmpresa);

    Banco banco = new Banco();
    banco.adiciona(empresa);

    RequestDispatcher rd = req.getRequestDispatcher("/novaEmpresaCriada.jsp");
    req.setAttribute("empresa", empresa.getNome());
    rd.forward(req, resp);

    }

novaEmpresaCriada.jsp:

<%
    String nomeEmpresa = (String)req.getAttribute("empresa");
    System.out.println(nomeEmpresa);
%>

<html>
<body>
    Empresa <%= nomeEmpresa %> cadastrada com sucesso!
</body>
</html>

Fiz tudo igual ao video, entretando quando clico em "Enviar" no http://localhost:8080/gerenciador/formNovaEmpresa.html da o seguinte erro:

Type Exception Report

Message Unable to compile class for JSP:

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: [2] in the jsp file: [/novaEmpresaCriada.jsp] req cannot be resolved 1: <% 2: String nomeEmpresa = (String)req.getParameter("empresa"); 3: System.out.println(nomeEmpresa); 4: %> 5:

Stacktrace: org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103) org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:213) org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:481) org.apache.jasper.compiler.Compiler.compile(Compiler.java:398) org.apache.jasper.compiler.Compiler.compile(Compiler.java:368) org.apache.jasper.compiler.Compiler.compile(Compiler.java:352) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:603) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:400) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327) jakarta.servlet.http.HttpServlet.service(HttpServlet.java:770) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) br.com.alura.gerenciador.servlet.NovaEmpresaServlet.doPost(NovaEmpresaServlet.java:28) jakarta.servlet.http.HttpServlet.service(HttpServlet.java:689) jakarta.servlet.http.HttpServlet.service(HttpServlet.java:770) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

Reparei que no Eclipse o codigo que esta entre <%%> nao fica highlighted (colorido), como se fosse um comentario. Alguem sabe dizer se fiz algo errado dentro do Servlet?

1 resposta
solução!

Olhando algumas respostas no forum deste mesmo exercicio e troquei a versao do TomCat para o 9.0, mas tinha dado o mesmo erro. Entao eu troquei

String nomeEmpresa = (String)req.getAttribute("empresa");

por

String nomeEmpresa = (String)request.getAttribute("empresa");

imagino que o metodo use como default o "request" e nao a mesma referencia que utilizei no java file.