2015-04-07 47 views
0

我有一个Servlet查询数据库并创建ArrayList(aka对象)。如何从包含在JSP中的Servlet获取对象?

该Servlet包含在JSP页面中,用于打印阵列列表的内容,但我不知道如何将它们从Servlet传递到JSP。

我怎样才能让JSP从Servlet中获取这些对象?

这里是我的servlet代码:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    //CREATING CONTAINERS THAT WILL BE FORWARDED 
    ArrayList<Volet> voletList = new ArrayList<Volet>(); 
    ArrayList<Critere> critereList = new ArrayList<Critere>(); 
    PrintWriter writer = response.getWriter(); 
    try { 
     //CONNEXION TO DATABASE: 
     Class.forName("oracle.jdbc.OracleDriver"); 
     Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:oracle", "OCP", "oracle11g"); 
     Statement st = con.createStatement(); 
     //SQL REQUEST 
     String sqlVolet = "select * from ocp.volet"; 
     ResultSet rsVolet = st.executeQuery(sqlVolet); 
     //WRITING FROM SQL RESULT INTO CONTAINER LIST: 
     while(rsVolet.next()) 
     { 
      Volet volet = new Volet(); 
      volet.setId(rsVolet.getInt(1)); 
      volet.setDescription(rsVolet.getString(2)); 
      voletList.add(volet); 
     } 

     String sqlCritere = "select * from ocp.critere"; 
     ResultSet rsCritere = st.executeQuery(sqlCritere); 
     while(rsCritere.next()) 
     { 
      Critere critere = new Critere(); 
      critere.setId(rsCritere.getInt(1)); 
      critere.setDescription(rsCritere.getString(2)); 
      critere.setVoletid(rsCritere.getInt(3)); 
      critereList.add(critere); 
     } 

     //CLOSING DATABASE CONNEXION: 
     con.close(); 
     //DISPATCH THE CONTAINER THROUGH FORWARD 

    } 
    catch(Exception e) 
    { 
     RequestDispatcher requestDispatcher = request.getRequestDispatcher("/View/ErrorPage.jsp"); 
     request.setAttribute("e", e); 
     requestDispatcher.forward(request, response); 
    } 
} 

附:我试图将对象转发给JSP,但它不起作用。

+0

通过使用HttpServletRequest和-Response。 – Stultuske

+0

请告诉我们你试过了什么。特别是servlet代码。 – Rajesh

+0

你能明确一点的方法吗? – Mikahel

回答

0

使用了request.setAttribute在servlet代码

request.setAttribute("attributeName",attributeValue); 
RequestDispatcher reqDispatcher = getServletConfig().getServletContext().getRequestDispatcher("JSP file path"); 
reqDispatcher.forward(request,response); 

和JSP代码,并将其类型种姓实际的对象类型使用request.getAttribute。

ClassType attributeValue= (ClassType) request.getAttribute("attributeName"); 
相关问题