Java-kielinen verkkoprojektiesimerkki

Tämän laittaminen on jonkin verran viivästynyt, mutta olen laatinut arkkityypiksi kelpaavan verkkoprojektiesimerkin. Se on saatavissa tästä linkistä: warproject.zip Sitä voi kokeilla avaamalla paketin: $ unzip -d warproject warproject.zip $ cd warproject $ mvn clean install $ mvn jetty:run ja täyttämällä lomakkeen osoitteessa http://localhost:8080/lomake Painamalla nappia ”Lähetä”, ladataan uusi sivu, jossa toistetaan täytetyt tiedot ja painamalla… Jatka lukemista Java-kielinen verkkoprojektiesimerkki

Maven-projektia täydennetty

Vastoin edellisen artikkelini suuntaviivoja, päätin täydentää edellistä Maven-projektiani kattamaan esimerkiksi resurssien suodattamisen ja paketoinnin. Uusi paketti on saatavissa tästä linkistä: jarproject-2014-04-13.zip Tarkastellaan sen pom.xml-tiedostoa, joka näyttää tältä: <?xml version=”1.0″ encoding=”UTF-8″?> <project xmlns=”http://maven.apache.org/POM/4.0.0″ xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”> <modelVersion>4.0.0</modelVersion> <groupId>fi.mikkonummelin</groupId> <artifactId>jarproject</artifactId> <packaging>jar</packaging> <version>1.3-SNAPSHOT</version> <name>${project.artifactId}</name> <url>http://www.mikkonummelin.fi</url> <scm> <developerConnection>scm:git:file:///home/mnummeli/Asiakirjat/java/jarproject</developerConnection> <tag>HEAD</tag> </scm> <properties> <commons-logging.version>1.1.3</commons-logging.version> </properties> <dependencies> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>${commons-logging.version}</version> </dependency>… Jatka lukemista Maven-projektia täydennetty

Yksinkertainen Maven-projekti

Edellisessä artikkelissani käsittelin Javan ja Mavenin asennusta. Käytännössä jälkimmäisenä mainittu vaatii jonkinlaisen projektipohjan tai ”arkkityypin”, jonka perusteella voidaan laatia monimutkaisempi projekti ja lisätä ohjelma- ja resurssitiedostoja. Käytännössä Maven tarjoaa tällaisen mahdollisuuden jo itsessään, jos komentoriville kirjoittaa $ mvn archetype:generate Käytännössä kuitenkin vaihtoehtoja tulee valtavasti ja yksinkertaisemmatkin niistä voivat olla sellaisia, jotka nojautuvat vanhentuneisiin pakettitietoihin. Olen… Jatka lukemista Yksinkertainen Maven-projekti

Java ja Maven

Jotta hienompien verkkosovellusten laadinta olisi mahdollista, tarvitaan pohjaksi joku ohjelmointikieli ja käännösohjelma. Verkkoselaimissa pyöriviä ohjelmia voidaan tehdä nykyisellään käytännössä ainoastaan JavaScriptillä, mutta ns. palvelinpuolen ohjelmia, joiden tehtävänä ovat esimerkiksi tietokantahaut, useilla eri kielillä. Tässä vaiheessa oletetaan, että halutaan käyttää palvelinpuolella Java-ohjelmointikieltä, joka siis on eri asia kuin JavaScript! Javan ohella esittelen myös Apache Maven:in peruskäytön,… Jatka lukemista Java ja Maven

Muut HTTP-vastaukset ja lähdeviitteitä

Kaikki HTTP-vastaukset eivät ole ns. hyväksyviä (OK) vastauksia, vaan voivat sisältää kehotuksia siirtyä toiselle sivulle tai muuhun toiseen resurssiin, edellyttää tunnistautumista tai ehdottomasti hylätä pyynnön. Käytetään edellisessä artikkelissa esiteltyä WebSocketTest-ohjelmaa tämän demonstroimiseen. Jos yritetään hakea olematonta resurssia tyyliin: $ java WebSocketTest www.mikkonummelin.fi 80 /ei-palvelua saadaan vastaukseksi: HTTP/1.1 404 Not Found Date: Sun, 02 Mar 2014… Jatka lukemista Muut HTTP-vastaukset ja lähdeviitteitä

HTTP-vastaukset

HTTP-pyynnöistä ei ole hyötyä, jos palvelu ei vastaa. Käsittelen tässä artikkelissa lyhyesti HTTP-vastausten muotoa. Sitä varten kirjoitin Java-kielisen testiohjelman, joka lähettää GET-pyynnön haluttuun verkko-osoitteeseen ja palauttaa sieltä HTTP-vastauksen. Testiohjelma on seuraavanlainen: import java.io.*; import java.net.*; public class WebSocketTest { public static void main(String[] args) throws Exception { String host=args[0]; int port=Integer.parseInt(args[1]); String pathName=args[2]; Socket s=new… Jatka lukemista HTTP-vastaukset

HTTP-pyynnöt (osa 2)

Tässä artikkelissa esitetään muutamia tarkennuksia edelliseen. Jos käynnistetään edellisen artikkelin mukainen kaappausohjelma ja ohjataan selain osoitteeseen: http://localhost:10025/this/is/my/path?a=1;b=2 sisältää tämä sekä polkunimen, että GET-parametreja. Lopputulos on seuraavanlainen: GET /this/is/my/path?a=1;b=2 HTTP/1.1 Host: localhost:10025 … mistä ylimääräiset rivit on poistettu. Olennaista on, että polkunimi on ’/’-merkeistä huolimatta vain merkkijono yhdistettynä parametrimerkkijonon kanssa, eikä suinkaan tarkoita, että missään tarvitsisi… Jatka lukemista HTTP-pyynnöt (osa 2)

HTTP-pyynnöt

Kirjoitin aikanaan Aalto-yliopiston kokeiluluontoisille ”Interactive mathematics”-blogisivuille tynkäkurssia verkko-ohjelmoinnista, koska pidin sitä tuolloin ja pidän edelleenkin, tärkeänä asiana nykyisessä työelämässä. Valitettavasti kyseinen ”www.intmath.org”-sivusto hävisi jossakin vaiheessa bittitaivaaseen, joten joudun soveltuvilta osin keksimään samat artikkeliteemat uudelleen muutamista alkeisaiheista. Onneksi en ollut päässyt järin pitkälle siinä, koska en tyhmyyksissäni ottanut artikkeleistani varmuuskopioita. Melkein kaikki Internetissä verkkoselainten kautta käsiteltävä… Jatka lukemista HTTP-pyynnöt