slt je suis encore nouveau voilà je désire retourne sur ma page jsp une liste ceci depuis ma servlet mais j'ai plutôt une nullpointerException qui est léve

bref voici la structure de ma jsp code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>exemple</title>
    </head>
    <body>
        <form name="myform" method="post" action="serform">
        <%@ page import="java.util.ArrayList"%>
        <%
        ArrayList<String> liste = (ArrayList) request.getAttribute("donnée");
        %>
 
        <select name="selection">
        <%
            for (int i=0; i<liste.size(); i++)
            {
                    String item=(String) liste.get(i) ;
        %>
               <option value="<%=item%>"><%=item%></option>
        <%
            }
        %>
        </select>
    </body>
</html>
voici celui de ma servlet code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
public class serform extends HttpServlet {
    List<String> liste;
    List<Element> doc;
    public serform(){
        liste=new ArrayList<String>();
    }
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
            entree(request);
            sortie(response);
            ServletContext context = getServletContext();
            RequestDispatcher dispatcher = context.getRequestDispatcher("/index.jsp");
            dispatcher.forward(request, response);
        }
        catch(IOException esc){
               esc.printStackTrace();
        }
         catch(Exception ex){
             ex.printStackTrace();
         }
        finally {
            out.close();
        }
    } 
    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
 
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
       processRequest(request, response);
    } 
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
 
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
 
    public void entree(HttpServletRequest request)throws IOException, JDOMException{
        nom=request.getParameter("nom");
        prenom=request.getParameter("prenom");
        SAXBuilder sxb=new SAXBuilder();
        Document document=sxb.build(new File("dat.xml"));
        Element donnees=document.getRootElement();
        doc =donnees.getChildren("donne");
        for(Element donnee:doc){
          liste.add((String)donnee.getChild("nom").getTextTrim());
           }
        request.setAttribute("donnée",liste);
    }
    public void sortie(HttpServletResponse response)throws IOException{
 
}
que faire?
merci pour toute aide