No me gusta como queda ese bucle anidado de estructura if, elseif. En primer lugar que recorre todo el bucle aunque ya se haya cumplido la condición dentro de algunos de los lazos que la compone. Por esta razón y porque evita errores de interpretación de lógica (esto, por parte de nosotros los coders); prefiero utilizar una estructura Switch, ya que me permite salir con un break y seguir la ejecución de manera limpia, más eficiente, más entendible, y más fácil de mantener. Lo comparto con uds. y espero les sirva el aporte! (Esto va dentro del "UnicaEntradaServlet.java", recomiendo comentar esa estructura del if, copiar y pegar esta nueva estructura que comparto, y probar si funciona. Entonces después de eso, recién hacer el cambio final):
switch(paramAccion) {
case "ListaEmpresas":
ListaEmpresas accion = new ListaEmpresas();
accion.ejecutar(request, response);
break;
case "MostrarEmpresa":
MostarEmpresa accion2 = new MostarEmpresa();
accion2.ejecutar(request, response);
break;
case "EliminarEmpresa":
EliminarEmpresa accion3 = new EliminarEmpresa();
accion3.ejecutar(request, response);
break;
case "ModificarEmpresa":
ModificarEmpresa accion4 = new ModificarEmpresa();
accion4.ejecutar(request, response);
break;
case "NuevaEmpresa":
NuevaEmpresa accion5 = new NuevaEmpresa();
accion5.ejecutar(request, response);
}