Testisivu ohjelmointiprojektiin

teksti tekstiä

Google

lisää tekstia

Työn tarkoituksena oli toteuttaa ohjelma, joka tarkistaa ovatko annetut verkkosivut muuttuneet viimeisen käyntikerran jälkeen. Ohjelmalle voidaan antaa useita osoitteita, kunhan osoitteet annetaan eri riveille. Jokaisen osoitteen on oltava muotoa http://www.domain.pääte. Tämän jälkeen painamalla Tarkista-nappia, ohjelma lataa annetut sivut ja tarkistaa, ovatko sivut muuttuneet viimeisen tarkistuskerran jälkeen. Tarkistuksessa ohjelma ilmoittaa jokaiselle osoitteelle erikseen jonkin seuraavista neljästä tilasta: Muuttunut Sivu on muuttunut viimeisen tarkistuskerran jälkeen Ei muuttunut Sivu ei ole muuttunut viimeisen tarkistuskerran jälkeen. Lisätty Sivulla ei ole vierailtu ennen. Tällöin ohjelma lisää sivun nykyisen tilan vierailtujen sivujen listaan. Virhe Tarkistuksessa on tapahtunut jokin virhe. Yleensä tämä tarkoittaa, että palvelin ei vastaa tai osoite on virheellinen. Työtä on testattu käyttämällä henkilökohtaiseen kotisivutilaan tallennettua yksnikertaista HTML-sivua. Muuttumisen tunnistamista testattiin tekemällä sivun teksteihin sekä pieniä yhden tai kahden kirjaimen muutoksia että isompia tekstiosuuksien tai muiden elementtien lisäyksiä ja poistoja. Sivusta tehtiin palvelimelle myös useita kopioita monen sivun samanaikaista testaamista varten. Ohjelman onnistui tunnistaa kaikki kokeillut muutokset. Ohjelmaa on testattu vain HTML-koodia sisältävillä verkkosivuilla. Ohjelma ei välttämättä toimi luotettavasti dynaamista sisältöä (kuten PHP tai JavaScript) sisältävien verkkosivujen kanssa. Testisivun pohjana käytettiin seuraavaa HTML-koodia: Testi

Testisivu ohjelmointiprojektiin

teksti tekstiä

Google

lisää tekstia

Ohjelma lataa jokaisen tarkastuskerran aluksi vierailtujen sivujen listan uudelleen tiedostosta (sivut.txt). Sivut luetaan sivulista-nimiseen ArrayListiin, joka sisältää sivu-tyyppisiä olioita. Jokaisella sivu-oliolla on tieto sivun osoitteesta ja hash codesta sekä metodit näiden havainnointiin ja hash coden muuttamiseen. Sivut.txt sisältää jokaisen aiemmin tarkistetun sivun osoitteen sekä hash coden. Osoite on aina parittomalla rivillä x ja siihen kuuluva hash code parillisella iivillä x+1. Seuraavaksi käyttöliittymän osoitelaatikosta luetaan annetut osoitteet merkkijonotaulukkoon, jonka jälkeen jokainen osoite tarkistetaan yksitellen. Aina jokaisen osoitteen tarkistuksen jälkeen, merkkijonotaulukkoon lisätään osoitteen eteen tarkistuksen lopputulos tarkistaSivu-funktion antamien palautusarvojen perusteella. Tarkistaessaan sivua ohjelma tutkii ensin sivulista-listasta, onko annetussa osoitteessa vierailtu ennen. Jos sivulla on käyty ennen, ohjelma lataa sivun HTML-koodin merkkijonoksi, jonka jälkeen merkkijonosta lasketaan hash code käyttäen Javan sisäänrakennettua hashCode()-funktiota. HashCoden, tai minkään muunkaan tarkistussumma-algoritmin, käyttäminen merkkijonon muuttumisen havaitsemiseen ei ole täysin luotettava tapa, koska on olemassa useita erilaisia merkkijonoja, joista saadaan sama lopputulos. On kuitenkin erittäin epätodennäköistä, että sivun muuttumisen jälkeen sen hash code olisi täysin sama kuin ennen muutosta. Näin ollen hashCode()-funktion voidaan olettaa olevan tarpeeksi luotettava tämän projektin toteuttamiseen. Mikäli hash code on sama kuin aikaisemman tarkistuksen yhteydessä, tarkistaSivu-funktio palauttaa arvon 1. Mikäli hash code on muuttunut aikaisemmasta tarkistuksesta, tarkistaSivu palauttaa arvon 2 ja myös päivittää kyseisen sivu-olion hash coden uudeksi. Mikäli annettua osoitetta ei ole tarkistettu ennen, tarkistaSivu palauttaa arvon 3 ja luo sivulistaan uuden sivu-olion, joka sisältää uuden sivun osoitteen ja hash coden . Kun kaikki sivut on tarkistettu, käyttöliittymän osoitelaatikkoon kirjoitetaan sivujen tarkistuksien tulokset sekä sivulistan mahdollisesti muuttunut sisältö tallennetaan uudelleen tiedostoon sivut.txt.