⚠️ This is a restoration of Diana's exam wiki. Content may be incomplete or outdated. Where possible, links to the wayback machine have been added. Questions, want to chat or need help? Contact entity@runeterra.be (Sysadmin) or isw@ucll.be (General)
# Webontwikkeling 2 # 2015 juni examen ### 15 Juni (Lector: Elke Steegmans) Het examen ging door op de PC. *MONDELING* Leg uit: hoe van JSP pagina met form via Servlet naar resultpagina waarbij foutmeldingen getoond worden (Bijvragen in trend van verschil tussen webserver en webcontainer) *SCHRIFTELIJK* 1\. Client en Server uitleggen, verschil en hoe werken ze met elkaar? 2\. Verschil tussen attribuut en parameter in een request + voorbeeld geven 3\. Tekstje aanvullen over MVC *PRAKTIJK* Enkele JSP pagina's linken via een volledig zelf te schrijven Controller servlet (sommige kleine dingen aanpassen in JSP). Java code is gegeven. Selenium test schrijven voor het toevoegen van een nieuwsbericht op de nieuwssite. ### 18 Juni (Lector: Elke Steegmans) *MONDELING* Je kreeg 2 screenshots van een webapplicatie. Er werd verwacht dat je kon uitleggen wat er gebeurden om van de ene pagina tot de andere te geraken. *SCHRIFTELIJK* 1. Hoe ziet een GET response eruit, geef en plaats alle onderdelen in de juiste volgorde. 2. JDBC, een invultekst. 3. Model View Controller uitleggen, voorbeeld geven voor ieder concept. *PRAKTIJK* Vergelijkbaar met de praktijktest. 1. Item kunnen toevoegen, rekening houden met validatie voor slechte input. 2. Overview van alle items tonen. 3. Overview op verschillende manieren kunnen sorteren. # 2015 samenvatting - Sander Lenaerts Samenvatting met dank aan Sander Lenaerts: [Webontwikkeling2theorie.pdf](https://examenwiki.diana.be/attachments/15) # 2017 juni examen ### 17 Juni (Lector: Greetje Jongen) Examen op de pc's van UCLL (Examenlogin). 3u de tijd voor praktijk+schriftelijke theorie *THEORIE* - In <form action="Controller?action=find"> leg uit waarvoor de 2 actions staan en wat ze doen. - Begrippen invullen in een tekst over MVC - Twee screenshots gegeven: index pagina met link naar overzicht en overzicht zelf. Leg uit wat er gebeurt als gebruiker op de link klikt. Leg communicatie tussen browser en server uit. Gebruik een schema. *PRAKTIJK* Gegeven op xtoledo: Zip met java klassen Recensie en RecensieDB, Selenium, chromedriver, test-klasse en JSP's: index, overzicht, vindRecensie, header en verwijder, css en img map. Recensies hebben een String titel, String auteur, int waardering (1-5), en String tekst. - Zet alles in juist mappen, selenium aan build toevoegen, chromedriver naar desktop slepen en laten runnen, zo is path ernaar ingegeven in gegeven testklasse. - Doe overzicht pagina werken (read met controller) - Doe vindRecensie werken, volledige server-side validatie, moet errors die in Model worden opgeroepen (door exceptions) tonen aan gebruiker en vorig ingegeven waarde laten staan als invoer fout is. Als invoer juist is moet het de recensies teruggeven die de ingegeven waardering hebben gekregen. - In overzicht pagina is er voor elke recensie een verwijder optie. Als je op deze klikt moet je naar een bevestigingspagina gaan (verwijder.jsp gegeven). In verwijder.jsp is een formulier met een 'Zeker' en 'Toch niet' knop. Zeker verwijdert de recensie in kwestie, en je gaat naar overzicht. Met 'Toch niet' ga je gewoon naar overzict. - Test schrijven voor als je een waardering ingeeft waar geen enkele recensie voor wordt gevonden. Kijk na of we terug op dezelfde form pagina vindRecensie komen, of de juiste error wordt weergegeven en of de input de vorige input terug bevat. - Zippen en op xtoledo zetten. # 2017 Project bestanden - Yanice Slegers Het volledige project met dank aan Yanice Slegers: [web2-master.zip](https://examenwiki-test.diana.be/attachments/17) # 2017 samenvatting - Marie Verdonck Samenvatting met dank aan Marie Verdonck: [Web2-SamenvattingTheorie\_MarieVerdonck\_compressed.pdf](https://examenwiki.diana.be/attachments/16) # 2018 samenvatting - Onbekend Samenvatting uit 2018 met dank aan een onbekend persoon: [Webontwikkeling 2.pdf](https://examenwiki.diana.be/attachments/18) # 2019 juni examen ### 11 Juni (Lector: Greetje Jongen/Rudy Dekeerschieter) Examen op de pc's van UCLL (Examenlogin). 3u de tijd voor praktijk+schriftelijke theorie *THEORIE* - Invuloefening over MVC model. - Selenium test gegeven. Beschrijf wat sommige van de methoden net doen. - Twee screenshots gegeven: index pagina met link naar overzicht en overzicht zelf. Leg uit wat er gebeurt als gebruiker op de link klikt. Leg communicatie tussen browser en server uit. Gebruik een schema. *PRAKTIJK* Gegeven op xtoledo: Zip met java klassen Recensie en RecensieDB, servlet, Selenium, chromedriver, test-klasse en JSP's: index, overzicht, vindRecensie, header en verwijder, css en img map. Recensies hebben een String titel, String auteur, int waardering (1-5), en String tekst. - Zet alles in juist mappen, selenium aan build toevoegen, chromedriver naar desktop slepen en laten runnen, zo is path ernaar ingegeven in gegeven testklasse. - Doe overzicht pagina werken - Voeg een verwijderlink toe aan overzicht.jsp die wanneer geklikt je overbrengt naar een bevestigings pagina en dan beslist of je die recensie wil deleten. - Voorzien een link op overzicht.jsp toon/verberg rating. Rating is default zichtbaar na op deze link te klikken is dit niet zo (en blijft het niet zo). Als je dan later weer op de link klikt zijn ze wel weer zichtbaar (en blijft dit zo). (tip: cookie) - Voorzie een header.jsp voor elke pagina (gebruik include) # 2020 augustus examen met dank aan [ISW](https://iswleuven.be/): ### Vragen Een aantal vragen (niet volledig). ##### Waarom mag een GET request geen side-effects hebben? ##### Hoe vaak wordt een @Before uitgevoerd? Kies uit: - 1 keer - per keer dat er een test is ##### Wat is het nut/doel van MVC? ##### Wat is het verschil tussen de volgende twee: `<%! %>` en `<% %>``` ### ### Bestanden: [18 Augustus.zip](https://examenwiki-test.diana.be/attachments/28) # 2020 juni examen met dank aan [ISW](https://iswleuven.be/): ## Praktijk vragen Zie de bestanden voorbereiding. Deze kreeg je een week voor het examen en moest je thuis in orde brengen. **Maak dit dus eerst!!** Daarna kan je het bestand `Opgeaven Praktijk.pdf` bekijken. De extra bestanden staan in `web2_gegeven_bestanden.zip` **OPLOSSINGEN VAN STUDENTEN:** het kan zijn dat de oplossingen soms een deel missen, de personen die hun oplossing uploaden zijn telkens geslaagd. Zorg dat je de oplossing zelf altijd controleert of deze klopt met de gegeven vragen. ## Theorie vragen ### Vraag 1 Welke JSP-tag moet ik gebruiken in welke situatie? 1. `<%! %>` 2. `<%= %>` 3. `<% %>` 4. `<%@ include %>` Kiezen tussen: - ik wil de pagina van de Header toevoegen aan mijn pagina; - ik wil eender welke Java code toevoegen tussen HTML; - ik wil de string waarde van een uitdrukking in Java tonen tussen HTML; - ik wil een veranderlijke éénmalig initaliseren bij de aanmaak van de servlet in de webcontainer. ### Vraag 2 Ik heb een website gemaakt voor een garage die bijhoudt hoeveel wagens er momenteel in de garage staan. Hiervoor heb ik een zoekfunctie geprogrammeerd. Gegeven de onderstaande code, hoe ziet de volledige URL van de HTTP-request er uit als ik op zoek ben naar de auto van het merk **Ford** en het type **Focus**. De domeinnaam van de website is **mijngarage.be**. ![vraag_2.png](https://examenwiki-test.diana.be/core/preview?fileId=90588&x=1024&y=1024&a=true#mimetype=image%2Fpng&hasPreview=true&fileId=90588) ### Vraag 3 Wat is het verschil tussen client-side en server-side validatie? ### Vraag 4 Wat is het nadeel van het gebruik van `cssSelector` of `xPath` bij Selenium testen? ### Vraag 5 Waar wordt een sessie (SESSION) opgeslagen? - **Server-side** - Client-side **Note:** ze bedoelen hier niet de cookie, dus server-side. ### Vraag 6 Waarom gebruiken we `@Before` en `@After` tags in testklassen? ### Vraag 7 Waarom is een `POST-request` in sommige omstandigheden veiliger om te gebruiken dan een `GET-request`? Leg uit. ### Vraag 8 Wat wil een 300 response code zeggen? **Note:** een goede uitleg over alle HTTP-codes vind je op [https://httpstatuses.com/](https://httpstatuses.com/ "https://httpstatuses.com/"). ## Opgave examen en oplossingen: