Nadpisanie metody

0

Mam utworzyć klase, która nadpisze metodę contextInitialized. Jej celem ma być zapis przykładowych książek, które są dostępne w bibliotece do kontekstu aplikacji. Dobrze to zrobiłem? Z góry dzięki za pomoc.


@WebListener
public class LibraryContextServeletListener implements ServletContextListener {
    
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        Book k1 = new Book("tytul1", "Adam Mickiewicz", 2010);
        Book k2= new Book("tytul2", "Janusz Nowak", 2002);
        Book k3= new Book("tytul3", "Jan Kowalski", 2005);
    }
    

7

A ty widze dalej swoje xD
Nie, to co napisałeś nie ma nic wspólnego z tym co miałeś zrobić. Utworzyleś 3 lokalne zmienne, ktore znikną po wykonaniu tej metody. Pisałem to juz raz, powtórzę drugi: nie umiesz programować i nie znasz javy i serio nie ma sensu nawet próbować rozwiązywać zadań z servletów dopóki tego nie zmienisz.

1
Shalom napisał(a):

Pisałem to juz raz, powtórzę drugi: nie umiesz programować i nie znasz javy i serio nie ma sensu nawet próbować rozwiązywać zadań z servletów dopóki tego nie zmienisz.

Skomentuję stopką :) * "Autora nie znam i nawet nie kojarzę" I nie mam na myśli pisania pod nickiem ;)*

0

Chyba sie mi udało. Tak to powinno być? Nie wiem tylko jak to wyświetlić potem w servlecie za pomoca metody toString z klasy Ksiazka.


@WebListener
public class Listener implements ServletContextListener {
    
    @Override
        public void contextInitialized(ServletContextEvent servletContextEvent) {
    	
        ServletContext ctx;
        ctx = servletContextEvent.getServletContext();
    	
    	Book k= new k("aa", "vdfv", "sdf");
        ctx.setAttribute("Ksiazka", k.);
    }

metoda to String() z klasy Ksiazka

@Override
    public String toString(){
          return this.tytul+" - "+this.autor+" - "+this.rok;
    }

Aktualnie wyswietla mi sie takie cos:

com.mycompany.mavenproject3.Dashboard@44d428cb
0

No, ale Tobie się tu wyświetla jakiś Dashboard, a nie Książka

0

Wywołanie w servlecie wygląda tak:

String aaa = this.toString();
out.println(aaa);

i wyświetla się:

com.mycompany.mavenproject3.Dashboard@44d428cb
1

No skoro używasz tego w servlecie... To chyba nie wiesz co robi słowo kluczowe this.

0
lavoholic napisał(a):

No skoro używasz tego w servlecie... To chyba nie wiesz co robi słowo kluczowe this.

Coś źle wkleiłem wyżej. Powinno być raczej tak. z tym, że to nie działa :(

Book aaa = null;
String a;
a = aaa.toString();
out.println(a);

0

Co, ale co Ty teraz robisz? Na null wykonujesz toString()?

0

No utwórz obiekt? Np. tak jak tu Book k= new k("aa", "vdfv", "sdf");
Nie wiem, nie znasz podstaw Javy, a zabierasz się za Servlety..

2

Wyślij proszę CAŁY kod który masz, gdzie Ty w ogóle co wołasz, bo nie bardzo mogę się połapac w tym co Ty chcesz zrobić :)

I z ciekawości, która uczelnia ma tak genialny kurs Javy?

0

No i mam utworzyć klase Listener nadpisującą metode contextInitialized(), której celem bedzie zapis ksiazek dostępnych w bibliotece do konkekstu aplikacji. Później w servlecie wyświeltić te książki z kontekstu aplikacji poprzez wywołanie metody toString()

@WebListener
public class Listener implements ServletContextListener {
    
    @Override
        public void contextInitialized(ServletContextEvent servletContextEvent) {
    	
        ServletContext ctx;
        ctx = servletContextEvent.getServletContext();   	

    	Ksiazka k= new Ksiazka("Pan Tadeusz");
        ctx.setAttribute("Ksiazka", k);
    }
}


public class Ksiazka{
    String tytul; 
    
    Ksiazka(String tytul){
        this.tytul = tytul;
    }
    
   @Override
    public String toString(){
          return this.tytul;
    }

I tutaj w Servlecie muszę wyświetlić te dane. Za pomocą metody to String(), ale nie wiem jak.

@WebServlet(name = "Servlet", urlPatterns = {"/Servlet"})
public class Servlet extends HttpServlet {

     protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        try (PrintWriter out = response.getWriter()) {
            /* TODO output your page here. You may use following sample code. */
            out.println("<!DOCTYPE html>");
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet Servlet </title>");            
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet Servlet at " + request.getContextPath() + "</h1>");
            out.println("</body>");
            out.println("</html>");

       }
    }
}
2

Strzelam, bo nigdy czegoś takiego nie robiłem, ale wewnątrz processRequest() coś takiego? System.out.println(request.getServletContext().getAttribute("Ksiazka"))

0

Czy ten kod który piszesz ma Twoim zdaniem jakiś sens czy próbujesz ułożyć program z losowych poleceń? Która linijka z tych:

String aaa = this.toString();
out.println(aaa);

będzie według Ciebie wyświetlać książki zapisane w kontekście?
Ten temat wygląda w tej chwili trochę jak żart a ten kod wyżej

Book k= new k("aa", "vdfv", "sdf");
ctx.setAttribute("Ksiazka", k.);

nawet nie ma szans się skompilować

0

Musisz nadpisać equals() w k. Zadziała, zawsze działa.
I przestań używać NetBeans. Zwykły Notepad++ i wymiatasz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1