RE:Dudas JSP (principiante)
La directiva taglib es para indicar la librería de etiquetas personalizadas de JSP. Eso de las etiquetas personalizadas son etiquetas como las de xml, por ejemplo <util:contador /> y dentro de web-inf, en clases poder crear una pequeña aplicación que lleve el contador de usuarios en un sitio web (por ejemplo).
La variable session es una variable interna de jsp, esta hecha para ahorrar trabajo de escritura y es un objeto del tipo HttpSession. Por ejemplo, si preguntas <% if(session.isNew()) { out.println("Eres nuevo aqui); } %> Te sacara el mensaje Eres nuevo la primera vez que te conectes a ese sitio y a esa página jsp (concretamente).
La variable application es del mismo estilo, solo que del tipo ServletContext, con ella recuperas propiedades del contexto. En el contexto hay atributos de aplicación que puedes establecer, y que cada usuario que se conecte lo modifique (como un numero que se aumente una unidad, que sería la propia variable del contador anterior).
Config es de la clase ServletConfig, referente a la configuración del servlet que se genera al traducir a Servlet el jsp (lo hace de forma automática el intérprete).
Y pageContext es el contexto de la propia página.
Lo del atributo, supongo que te refieres al tipo mime o algo así. Los mimes del sistema (como "text/html", "text/xml", "text/image",...)