- Pārskatiet prezentāciju Java Web Frameworks
Uzdevumi
- Izpildiet insertTeacher() prasības
- Izpildiet findTeacher() prasības
- Izpildiet deleteTeacher() prasības
- Izpildiet vienību testus
- Papildus informācija
Pievienojiet izpildes atļaujas geckodriver bibliotēkai1:
cd ~/workspace/JTM/lib
chmod +x geckodriver- Ja nepieciešams, mainiet server.port=8800 vērtību failā .../src/main/resources/application.properties uz citu porta numuru, piemēram, 8801 atbilstoši jums piešķirtajam numuram.
- Izpētiet paketi jtm.activity15.
- Ieviesiet un anotējiet nepieciešamo JettyApplication klases metodi main() un JettyController klases teachers(...) metodi, lai izveidotu vienkāršu tīmekļa lietojumprogrammu.
- Palaidiet JettyApplication klasi kā Java lietojumprogrammu un reģistrējieties pārlūkprogrammas lapā http://localhost:8800/.
- Ieviesiet metodes insertTeacher(...), findTeacher(...) un deleteTeacher(...), kas:
- atbildēt attiecīgajās lietojumprogrammas tīmekļa mapēs,
- ņemt no tīmekļa pārlūkprogrammas nodotos parametrus,
- izsauciet atbilstošās metodes no klases TeacherManager pakotnē jtm.activity13 un
- iestata atbildes veiksmes vai kļūdas statusu un parāda atdoto vērtību kā HTML.
Izpildiet insertTeacher() prasības
- Metode reaģē uz mapi /insertTeacher
- Metode izmanto divus neobligātus parametrus name un surname
- Metode izsauce TeacherManager klases metodi insertTeacher(String, String)
Kad netiek nodoti nekādi parametri, piem. http://localhost:8800/insertTeacher, tiek atvērts, tas atgriež:
Status: OK (200),
HTML:<form action=''>
Name: <input type='text' name='name' value=''><br/>
Surname: <input type='text' name='surname' value=''><br/>
<input type='submit' value='Insert'></form><br/>
<a href='/'>Back</a>Kad tiek nodoti derīgi parametri, piem. http://localhost:8800/insertTeacher?name=Tom&surname=Tom, tas atgriež:
Statuss: OK
HTML:true<br/>
<a href='/'>Back</a>Ja tiek nodoti nederīgi parametri, piemēram, http://localhost:8800/insertTeacher?name=&surname=, tas atgriež:
HTTP statuss: Bad Request (400)false<br/>
<a href='/'>Back</a>
Izpildiet findTeacher() prasības
- Metode reaģē uz mapi /findTeacher
- Metode izmanto divus neobligātus parametrus name un surname
- Metode izsauc klases TeacherManager metodi findTeacher(String, String)
Kad netiek nodoti nekādi parametri, piem. http://localhost:8800/findTeacher, tiek atvērts, tas atgriež:
Statuss: OK,
HTML:<form action=''>
Name: <input type='text' name='name' value=''><br/>
Surname: <input type='text' name='surname' value=''><br/>
<input type='submit' value='Find'></form><br/>
<a href='/'>Back</a>Kad parametri tiek nodoti, piem. http://localhost:8800/findTeacher?name=Tom&surname=Tom, tas atgriež:
Statuss OK
HTML:<form action=''>
Name: <input type='text' name='name' value=''><br/>
Surname: <input type='text' name='surname' value=''><br/>
<input type='submit' value='Find'></form><br/>
<table>
<tr>
<td>11</td>
<td>Tom</td>
<td>Tom</td>
</tr>
</table><br>
<a href='/'>Back</a>kur katrs atdotais Teacher objekts ir parādīts atsevišķā tabulas rindā.
Izpildiet deleteTeacher() prasības
- Metode reaģē uz mapi /deleteTeacher
- Metodei ir nepieciešams viens neobligāts parametrs id
- Metde izsauc klases TeacherManager metodi deleteTeacher(int)
Kad netiek nodoti nekādi parametri, piem. http://localhost:8800/deleteTeacher, tiek atvērts, tas atgriež:
Statuss: OK,
HTML:<form action=''>
ID: <input type='text' name='id' value=''><br/>
<input type='submit' value='Delete'></form><br/>
<a href='/'>Back</a>Kad derīgs parametrs ir nodots, piem. http://localhost:8800/deleteTeacher?id=5, tas atgriež:
Statuss: OK
HTML:true<br/>
<a href='/'>Back</a>Ja tiek nodoti nederīgi parametri, piemēram, http://localhost:8800/deleteTeacher?id=1, tas atgriež:
HTTP statuss: Bad Requestfalse<br/>
<a href='/'>Back</a>
Izpildiet vienību testus
- JettyApplicationTest.java ir vienības tests, kas pārbauda tīmekļa lietojumprogrammu, izmantojot API izsaukumus.
- SeleniumWebDriverTests.java ir tīmekļa GUI tests, kas pārbauda tīmekļa lietojumprogrammu, emulējot lietotāja darbības pārlūkprogrammā Firefox.
Papildus informācija
Implementēšanai:
- http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html
- http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestParam.html
- http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/ResponseBody.html
- https://tomcat.apache.org/tomcat-8.0-doc/servletapi/javax/servlet/http/HttpServletRequest.html
- https://tomcat.apache.org/tomcat-8.0-doc/servletapi/javax/servlet/http/HttpServletResponse.html
API testēšanai:
GUI testēšanai:
- ^ Kad projekts tiek izvilkts no *.zip faila, izpildes rekvizīts tiek zaudēts visiem failiem. Tāpēc SeleniumWebDriverTests izpildes atļaujas. Java fails ir jāatjauno, jo Selenium testiem tie ir nepieciešami.