Inconveniente de Javascript con Jsp

Deseo pedirles el favor de lo siguiente:

Necesito desde Javascript traer el valor de una funcion que tengo en Jsp para hacer unas validaciones pese a que tengo edl siguiente
Codigo Jsp:
<%
       HttpSession sesion= request.getSession();
       String usuario;
       String contra;
       String nivel;
       if(sesion.getAttribute("user")!=null && sesion.getAttribute("nivel")!=null){
           usuario=sesion.getAttribute("user").toString();
           nivel=sesion.getAttribute("nivel").toString();  
          int nivel1=Integer.valueOf(nivel);
             if(nivel1 == 2) {
         out.print("Soy un dos y soy un usuario corriente");
             }
         else if (nivel1 == 1){
         out.print("Soy un uno y soy el administrador");   
         }
        out.print("<a href='login.jsp?cerrar=False'><div id1=<h5>nivel"+nivel+"</h5></div> <h5>Cerrar Session "+usuario+"</h5></a>");
       }else{
           out.print("<script>location.replace('login.jsp');</script>"); /*nos redirecciona al login en caso
              <p>hola</p>                                                          de que no haya usuario ni nivel*/
       }
        %>
y el siguiente codigo Javascript:

 var nivel1="<%=nivel%>";
   alert(nivel1);

Me marca error en nivel, el cxompilador me dice : Variable nivel might noot have been initializaed surround with

¿A qué se debera ese inconveniente?, siendo que al hacer un ejemplo como el siguiente:

<html>
<head>
<script language="javascript">

function access(){
  <% String str="Hello World"; %>
   var s="<%=str%>";
   alert(s);
}

</script>
</head>

<body onload="access()">
</body>

</html>

Todo funciona bien

Añade tu respuesta

Haz clic para o