Salve,
cerca.jsp
codice:
<%
            session = request.getSession();
            Utente u = new Utente();
            String op = request.getParameter("op");
            String ruolo = (String) session.getAttribute("ruolo");
            String prenota = "";
            int c=u.getNum();
            Libro lib[] = new Libro[c];

            lib = (Libro[]) request.getAttribute("libro");

            if (op.equals("prenota")) {
                prenota = (String) request.getAttribute("prenotazione");
            }
%>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
    <body>
        <div align="left">

            CERCA LIBRI

        </div>
        <p align="left">
            Cerca i libri che ti interessano</p>
        

        

        <form action="Controller?op=ricerca" method="post">
            <table width="100%" border="0">
                <tr>
                    <td width="25%"></td>
                    <td width="60%">
                <tr>
                    <td>Titolo</td>
                    <td><input type="text" name="titolo" size="20"></td>
                </tr>
                <tr>
                    <td>Autore</td>
                    <td><input type="text" name="autore" size="20"></td>
                </tr>
                <tr>
                    <td>Editore</td>
                    <td><input type="text" name="editore" size="20"></td>
                </tr>
                <tr>
                    <td>Anno di pubblicazione</td>
                    <td><input type="text" name="annopub" size="20"></td>
                </tr>

                <tr>
                    <td align="right"><input name="submit" type="submit" value="Cerca" /></td>
                </tr>
            </table>
        </form>
        

        

        


        <% if (lib[0] == null) {%>
        Il libro non è presente in biblioteca!

        <%} else {
%>
        <table border="1" WIDTH="55%" cellpadding="10" cellspacing="1">
            <tr>
                <th>Titolo</th>
                <th>Autore</th>
                <th>Editore</th>
                <th>Anno publicazione</th>
            </tr>
            <tr>
 <%    for(int i=0;i<c;i++)
     {%>
                   <td><%=lib[i].getTitolo() %></td>
             <td><%=lib[i].getAutore() %></td>
             <td><%= lib[i].getEditore()   %></td>
             <td><%= lib[i].getAnno_publicazione()%></td>
   <%  }%>
            </tr>
        </table>
    </body>
</html>
controller.java
codice:
        if("ricerca".equals(op)) {
                String titolo = request.getParameter("titolo");
                String autore = request.getParameter("autore");
                String editore = request.getParameter("editore");
                String annopub = request.getParameter("annopub");

                session.setAttribute("titolo", titolo);
                session.setAttribute("autore", autore);
                session.setAttribute("editore", editore);
                session.setAttribute("annopub", annopub);

                int i=0;
                u.setNum(u.quantiLibri(titolo, autore, editore, annopub));
                Libro libro[]= new Libro[u.getNum()];
                
                libro = u.cerca_libro(titolo,autore,editore,annopub);//metodo che restituisce un array di oggetti libro
                request.setAttribute("libro", libro);

                request.getRequestDispatcher("/cerca_libri.jsp").forward(request, response);
                i++;
            
        }
ricevo un errore java.lang.NullPointerException e non capisco il perchè?
grazie