Miesięczne archiwum: Grudzień 2012

Zdaj OCEWCD – pytanie 10

Co się stanie po uruchomieniu kodu poniższego servletu?

@WebServlet("/Test")
public class TestServlet extends HttpServlet
{
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        request.setAttribute("myBean", new BeanClass("SERVLET"));
        request.getRequestDispatcher("test.jsp").forward(request, response);
    }
}
public class BeanClass
{
    private String text;

    public BeanClass(String text)
    {
        this.text = text;
    }

    public String getText()
    {
        return text;
    }

    public void setText(String text)
    {
        this.text = text;
    }
}
<html>
<head>
    <title>Test Page</title>
</head>
<body>
    <jsp:useBean id="myBean" class="eu.javablog.ocewcd.BeanClass">
        <jsp:setProperty name="myBean" property="text" value="DEFAULT" />
    </jsp:useBean>

    <p>${myBean.text}</p>
</body>
</html>

 

  1. Wydrukowany zostanie wyraz DEFAULT.
  2. Kod nie skompiluje się.
  3. Wydrukowany zostanie wyraz SERVLET.
  4. W trakcie działania rzucony zostanie wyjątek.
  5. Wyświetlony będzie pusty String.

 

Pokaż odpowiedź »

Poprawna jest odpowiedź nr 4.

Powodem rzucenia wyjątku jest fakt, iż tag jsp:useBean będzie próbował stworzyć nowy obiekt typu BeanClass. W tym celu wymaga on jednak bezargumentowego konstruktora, którego ta klasa nie posiada. Mylący w tym pytaniu jest także fakt dodania do obiektu żądania nowego atrybutu w kodzie servletu. Mogłoby się wydawać, że jsp:useBean wykorzysta go, i nie będzie próbował tworzyć nowej instancji. Tak się jednak nie dzieje, ponieważ domyślnym scope’em tego taga jest page scope. Nasz argument znajduje się natomiast w request scope. Do poprawy przykładu wystarczyłoby więc dodanie do naszego jsp:useBean atrybutu scope=”request”, bądź też uzupełnienie klasy BeanClass o bezargumentowy konstruktor.

Wasze prezentacje na JARCampie!

Jak wspominaliśmy już na poprzednim, inauguracyjnym spotkaniu, głównym celem JARCampa jest aktywizacja środowiska skupionego wokół szeroko pojętej Javy. Chcemy stworzyć społeczność swobodnej wymiany wiedzy, doświadczeń, czy przemyśleń. Jeśli chciałabyś/chciałbyś podzielić się czymś z innymi uczestnikami JARCampa, prosimy o maila na adres kontakt@jarcamp.pl. Forma jest w zasadzie dowolna – może być to prezentacja, demonstracja napisanego przez siebie kawałka kodu, czy luźny talk bez żadnych dodatkowych materiałów. Czekamy na Wasze pomysły!

JARCamp – materiały z pierwszego spotkania

Poniżej znajdują się materiały z prezentacji, które odbyły się na pierwszym spotkaniu JARCampowym:

JVM – budowa, możliwości, tuning

Wszystkie materiały zostaną umieszczone także na oficjalnej stronie JARCampu – www.jarcamp.pl

JARCamp – relacja z pierwszego spotkania

Jakiś czas temu zdecydowaliśmy się na rozszerzenie działalności naszego bloga poprzez stworzenie JARCampu – cyklu nieformalnych spotkań pasjonatów języka Java. Nasze starania zostały uwieńczone pełnym sukcesem w ubiegły piątek. Poniższy wpis jest podziękowaniem dla osób, które uczestniczyły w pierwszym, pilotażowym spotkaniu i zachętą dla wszystkich, którzy nie byli w stanie przybyć na JARCampową barkę. Czytaj dalej