Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java: Servlettien välinen kommunikaatio

somefckr [13.12.2018 18:51:26]

#

Nyt tarvis hieman apuja seuraavanlaisessa tapauksessa. Kyseessä Java.

Servlet1:stä pitäisi saada tuo varoitus teksti (String warning) kulkeutumaan Servlet2:sen doGet metodiin.
Servlet1:ssä on ainoastaan doPost -metodi tällä hetkellä. Servlet2:ssa on doGet ja doPost, mutta ne on muussa käytössä.

Miten tuo saadaa tuonne servlet2:een?


Eli servlet1:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        HttpSession session = request.getSession(); 		//otetaan istunto käyttöön
        User user = (User) session.getAttribute("user"); 	//otetaan käyttäjä istunnosta
        int userID = user.getUserid(); 						//haetaan userID
        String item = request.getParameter("item"); 		//haetaan parametri
        String warning = "";

        if (item.isEmpty()) {
            warning = "Please enter item";
        } else if (item.length() > 30) {
            warning = "Name must not exceed 30 characters";
        } else {
            try {
                ItemDAO itemdao = new ItemDAO(ds);	//luodaan tietokantaan yhteys
                itemdao.addItem(userID, item); 		//lisätään esine tietokantaan
                response.sendRedirect("UserLogin"); //siirrytään LoginServletin doGet metodiin, jolloin lista päivittyy
                return;
            } catch (SQLException ex2) {
                warning = "There was an error while adding item to the list";
                ex2.printStackTrace();
            }
        }
        request.setAttribute("warning", warning);
        RequestDispatcher rd = request.getRequestDispatcher("userpage.jsp"); //Palataantakaisin ja näytetään virheilmoitus
        rd.forward(request, response);
    }

}

Servlet2.

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    try {
        HttpSession session = request.getSession(); 		//otetaan istunto käyttöön
        User user = (User) session.getAttribute("user"); 	//otetaan käyttäjä istunnosta
        int userID = user.getUserid(); 						//haetaan userID
        ItemDAO itemdao = new ItemDAO(ds);
        List < Item > items = itemdao.getItemsByUserID(userID);
        request.setAttribute("items", items);

    } catch (SQLException e) {
        request.setAttribute("warning", "Error. Please try again later");
        e.printStackTrace();
    }
    RequestDispatcher rd = request.getRequestDispatcher("userpage.jsp");
    rd.forward(request, response);

}

_Pete_ [14.12.2018 09:27:01]

#

Missä ympäristössä Servletit pyörii ?

somefckr [14.12.2018 11:45:30]

#

_Pete_ kirjoitti:

Missä ympäristössä Servletit pyörii ?

Tomcat v7.0

_Pete_ [14.12.2018 13:36:23]

#

Jos warning pitää aina olla liietty tiettyyn User niin silloin voisi yksi tapa olla Servlet1 lisätä kyseisen tiedon User objektiin ja Servlet2 käyttää sitä kautta.

somefckr [14.12.2018 19:43:50]

#

Lisäsin virheilmoituksen istuntoon ja homma tuli sillä kuntoon.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta