簡體   English   中英

如何從JSP中包含的Servlet獲取對象?

[英]How to get an object from a Servlet included in a JSP?

我有一個Servlet,可以查詢數據庫並創建arraylist(也稱為對象)。

該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);
    }
}

PS我已經嘗試將對象轉發到JSP,但沒有用。

在Servlet代碼中使用request.setAttribute

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");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM