TIEP113 Ohjelmointi 2, JSP, 1 op, 2024
JSP = Java Server Pages = tapa tehdä dynaamisia WWW-sovelluksia niin, että kirjoitetaan (X)HTML:ää ja tarvittaessa sekaan Java-koodia.
1. Kurssin suoritus
- Ilmoittautuminen Sisussa
- Kurssin aihe: Miten Kerho muutetaan WWW-ohjelmaksi
- Kurssin postilista: ohj24jsp@korppi.jyu.fi ja sen Arkisto
Suoritus:
Katsotaan itsenäisesti alla olevat videot. Alla esimerkkiaikataulut videoiden katsomiseen.
- videot W0-W2 katsottavat ennen päätohjausta 1
- videot W3-W4 katsottava ennen pääteohjausta 2
- Tehdään ohjatusti tai itsenäisesti pääteohjaukset:
- Ilmoittaudu pääteohjauksiin alla olevalla taulukolla
- Pääteohjaus 1
- Pääteohjaus 2 (Harjoitustyön ohjeita samalla)
- Muutetaan oma harjoitustyö (osittain) WWW-pohjaiseksi
- Harjoitustyön ohjeet
- palautus heinäkuun loppuun mennessä
- apua pääteohjauksissa ja kesän Ohj2-kurssin pääteohjauksissa.
- myös postilistalla ohj24jsp@korppi.jyu.fi voi kysellä
- Luvussa 3 on työkalujen ohjeita
2. Luentojen videot
- alla luentovideot, niiden ehdotetut katselujat (tiistain ahtautta voi pienentää katsomalla aikaisemminkin :-), sisällöt ja oheismateriaali
- vinkki: avaa video toiseen selainikkunaan ja tee itse samalla Eclipsellä tai vastaavalla.
W0. ti 2.5.2016 klo 10:15-10:45: Aihe: Aloitusluento
- avausluento videona (2015) [.mp4] [.mp4-mobiili]
W1. ti 2.5.2017 klo 10:45-12:15: Aihe: TCP/IP, Servlet, JSP
- TCP /IP:
- Varatut porttinumerot
- Sockettien käsittely Javalla
- Hakemisto winohj/vclclx/comps/tcpip - käynnistä ohjelma tcpiptestVCL.exe
ja lue ohjeita tcpiptest.pas
- Hakemisto winohj/delphi/comps/tcpip
- SimpleChatClient.java - yksinkertainen Chat-asiakas
- SimpleUpperCaseServer.java - yksinkertainen palvelin joka muuttaa lähetetyn tekstin isoksi
- SimpleMailClient.java - yksinkertainen SMTP-asiakas jolla voi lähettää postia
- SimpleHttpUpperCaseServer.java - yksinkertainen HTTP-palvelin joka muuttaa tekstin isoksi
- TCPServer.java - pieni takaisinkutsuihin perustuva TCP/IP palvelin
- UppercaseServer.java - edellisestä luotu UpperCase palvelin
- ChatServer.java yksinkertainen Chat-palvelin käyttäen TCPServeriä
- HttpUppercaseServer.java - yksinkertainen HTTP-palvelin käyttäen TCPServeriä
- HttpTextHandler.java - HTTP käsittelijä, joka kutsuu erillistä doGet käsittelijää
- HttpUppercaseTextServer.java - yksinkertainen doGet käsittelijä, joka muuttaa parametrin isoksi
- Varatut porttinumerot
- Servlet:
- Hakemisto ohj2/jsp/servlet jossa on servlet- ja jsp -esimerkkejä
- Wiki ohjeet Eclipsen asetuksiin
- pääteohjaus 1 - ohjeet Servletin tekoon
- ServletEka.java - ensimmäinen esimerkki servletistä
- ServletValinta.java - servletti joka tuottaa alasvetolistan
- WebContent/WEB-INF/web.xml - servletin mäppäys URL-osoitteeksi
- JSP (Java Server Pages):
- JspEka.jsp - ensimmäinen jsp-esimerkki
- JspValinta.jsp - jsp-sivu jossa tehdään alasvetolista
- Pavut:
- ComboBox.java - komponentti alasvetolistan tekemiseksi
- ServletValintaWithBean.java - servletti jossa käytetty komponenttia
- jspValintaWithBean.jsp - jsp-sivu jolla käytetään komponettia
- Luennolle etukäteen tehdyt koodit (2014)
- Luennolla tehdyt koodit (2014)
- 1. luentotunti videona (2014) [.mp4] [.mp4-mobiili]
W2. ti 2.5.2017 klo 14:15-16:00: Aihe: Omien komponenttien käyttö JSP-sivuilla
- Wiki-ohjeet Eclipseä varten
- jspRahanVaihto.jsp - jsp-sivu rahan vaihtamiseksi
- EditBox.java - komponentti Edit-lotjun tekemiseksi
- ComboBox.java - komponentti alasvetolistan tekemiseksi
- VaihtajaBean.java - luokka tietorakenteen luomiseksi yhden kerran ohjelman aikana
- JSP:stä kääntyneet Java-tiedostot
- Luennolle etukäteen tehdyt koodit (2013)
- Luennolla tehdyt koodit (2014)
- 1. luentotunti videona [.mp4] [.mp4-mobiili]
W3. ma 8.05.2017 klo 10:15-12:00: Aihe: Kerho-ohjelma JSP:llä
- Harjoitustyön ohjeet - harjoitustyöstä, tietoturvasta ja malli synkronoinnista
- Korpin sivut tietoturvasta
- vaihe1/kerho.jsp - Kerhon ensimäinen versio [html-lähdekoodi]
- vaihe1/jasen.jsp - Jäsenen ensimäinen versio [html-lähdekoodi]
- vaihe2/kerho.jsp - Kerhon toinen versio
- vaihe2/jasen.jsp - Jäsenen toinen versio
- kerho.jsp - Kerhon "toimiva" versio [html-lähdekoodi] [kuva sivusta]
- jasen.jsp - Jäsenen "toimiva" versio [html-lähdekoodi] [kuva sivusta]
- kerho.jsp - Kerhon "toimiva" versio haku-formilla tehtynä
- jasen.jsp - Jäsenen "toimiva" versio. Tietorakenteen kuva.
- KerhoBean.java - Tietorakenteen "singleton"-mallin hoitava luokka
- HakuForm.java - Papu hakuformin tekemistä varten
- Malliharjoitustyön web-version
- Malliharjoitustyö - käyttöliittymästä riippumattomat luokat, Kerho, Jasenet, Jasen jne...
- Pääteohjaus 2 - katso pääteohjausten ohjeita
- Luennolla tehdyt koodit (2014)
- 1. luentotunti videona [.mp4] [.mp4-mobiili]
W4. ti 9.05.2016 klo 14:15-16:00: Aihe: synkronoinnista, Ajax, Vaadin
- Esimerkki säikeistä
- ajaxRahanVaihto.jsp - JSP-sivu rahan vaihtamiseksi Ajax-toteutuksena
- AjaxVaihtajaServlet.java - Ajax-servletti ottamaan vastaan asynkronisia pyyntöjä.
- AjaxVaihtaja.jsp - edellinen JSP-versiona.
- FireBug - kannattaa ladata FireFoxiin jotta voi debugata JavaScriptiä ja tutkia DOM-puuta
- Vaadin - toisenlainen tapa tehdä rikkaita sovelluksia.
- Muita vaihtoehtoja:
- GWT - Google Web Toolkit
- PHP
- Python
- Ruby on rails
- JQuery
- AngularJS
- .net (ks myös: MSDNAA - ohjelmien lataaminen)
- Erilaiset pilvipalvelut - ks esim. luento07
- Luennolle tehdyt koodit (2014)
- Luennolla tehdyt koodit (2013, 2014 ei tehty uusia)
- 1. luentotunti videona [.mp4] [.mp4-mobiili]
3. JSP ja Eclipse
3.1 Perusasennukset
Tämä siis omalla koneella (tämä on jo tehty mikroluokissa, älä yritä uudelleen).
- Asenna aluksi TomCatin uusin versio (tarkista mikä, kirjoitushetkellä oli 9.x, korjaa näitä ohjeita tarvittaessa): http://tomcat.apache.org/index.html (muista hakemisto johon asensit TomCatin, ehdotus:
C:\devel\apache-tomcat-9.0.19
) - Jos et asentanut aikanaan osoitteesta https://www.eclipse.org/downloads/packages/ Eclipsen J2EE versiota (Eclipse IDE for Enterprise Java Developers), niin asenna se viimeistään nyt. Jos olet tehnyt vanhan asennuksen, niin voi riittää Eclipsen configuraatio-hakemiston tyhjentäminenkin, jos kaikki ei toimi ihan kunnolla. Tämä voi olla esim Windowsissa hakemistossa
%USERPROFILE%\Local Settings\Application Data\eclipse
11.05.20 näyttää julkaisseen uuden version Tomcat 10.0.0-M5, mutta Eclipsessä tämä ei vielä ole vaihtoehtona… Pystynkö lisäämään sen Eclipseen vai kannattaako ladata 9.xxx versio?
Se näyttäisi olevan vielä alphaversio, joten varminta on mennä juurikin 9.x versioilla. Toki jos joku haluaa omalla vastuulla kokeilla kehitysversioita, niin ihan vapaasti :) -MR
—3.2 Palvelimen asentaminen työtilaan
- Käynnistä Eclipse (mikroluokassa Eclipse 19.03, jos N-levy ei toimi, ks pääte 3)
- Kannattaa tehdä Workspace jota ei ole koskaan käyttänyt vielä
- Lisää työtilaan palvelin:
- File/New/Other/Server/Server
- Asetukset:
- Select the server type: Apache/Tomcat vX.Y Server (mikroluokissa versio 9)
- Server's host name: localhost
- Server name: Tomcat vX.Y Server at localhost
- Next
- Tomcat installation directory: kohdan 3.1 hakemisto (mikroluokissa
C:\devel\tomcat-9.0.19
) - Next ja Finish
3.3 Servletin tekeminen
- luo uusi Web-projekti sopivaan hakemistoon (ei toiminut kaikilla mikroluokissa, kokeile, mutta jos ei toimi, niin siirry JSP-osaan)
- File/New/Other/Web/Dynamic Web Project
- Nimeksi vaikka servlet
- Sopiva hakemisto
- Target Runtime: Apache Tomcat vX.Y Next
- Next Next Finish
- Salli uusi perspektiivi, jos Eclipse kysyy
- luo uusi Servlet:
- File/New/Other/Web/Servlet Next
- Asetukset:
- Project: servlet
- Folder: servlet
- Java package: servlet
- Class name: ServletEka
- Super class: javax.servlet.http.HttpServlet
- Next
- Asetukset:
- Name: ServletEka
- Description: Eka servletti meikäläiselle
- Url mappings /ServletEka
- Next
- Asetukset:
- Modifiers: Public
- Interfaces: javax.servlet.Servlet
- Ruksit:
- Constructors from superclass
- Inherited abstract methods
- doPost
- doGet
- Finish
- Muuta syntynyt koodi haluamaksesi (esim ServletEka.java)
- Aja servletti:
- Oikeaa nappia koodin päällä ja Run as/Run on Server
- Valitse Tomcat X.Y ja ruksi "Always user this server when running this project" ja Next, Finish
- Ota joku selain (oletuskin käy) ja kirjoita URLiksi:
http://localhost:8080/servlet/ServletEka
(jossa servlet
on projektin nimi ja ServletEka
servletin nimi)
3.4 JSP-sivun tekeminen
- Lisää saman projektin alle uusi JSP-sivu:
- File/New/Other/Web/JSP File
- Katso, että projektin WebContent on valittuna
- File name: JspEka.jsp
- Next
- Valitse sopiva merkkaustapa, esim html 5
- Finish
- Muuta syntynyt koodi haluamaksesi (esim. JspEka.jsp)
- Näytä JSP-sivu Run as/Run on server
- Nyt tarvittava URL on
http://localhost:8080/servlet/JspEka.jsp
- Tutustu myös generoidun .html-tiedoston sisältöön (selaimesta riippuen View Source -välilehti, eli siis HTML-sivun lähdekoodi)
3.5 uiBeans-kirjaston käyttäminen
- luo uusi Java-projekti uiBeans
- tee sen alle uiBeans-paketti
- kopioi paketin alle EditBox.java ja ComboBox.java
- Lisää projektiin Tomcat:
Project/Properties/Java Build path/Libraries/Add Library/Server Runtime/Apache Tomcat
- Web-projektissasi lisää projekti mukaan:
Project/Properties/Java Build Path/Projects/Add
- ja projektisi nimi (esim. uiBeans)
- Laita vielä web-projektissa ui-projekti vielä näkymään palvelimelle:
- Eclipse 4.4:
Project/Properties/Deployment Assembly/Add/Project
ja valitse ui-projektisi (esim. uiBeans)
- Eclipse 4.4:
- Muuta jsp sivu käyttämään ko. komponentteja (esim. jspValintaWithBean.jsp)
- Muista tallentaa JSP-sivusi
- Tarvittaessa siivoa kaikki:
Project/Clean.../Clean all
projects - Jos uiBeans ei käänny, voi syynä olla se, että Tomcatin .jar puuttuu uiBeans-projektin Java Build Pathista. Sen voi yrittää saada sinne esim.
import javax.servlet.http.*;
rivillä Ctrl-1:n kautta ja sitten Fix Project Setup...
3.6 Oman papu-luokan lisääminen
Jos haluat lisätä oman papu-luokan, se onnistuu näin:
- Lisää web-projetiin uusi paketti, esim. jspvaihtaja
- Luo uusi luokka paketin alle, esim. VaihtajaBean
3.7 Valmiin .jar-kirjaston käyttäminen (esim. Ali.jar)
- Web-projektissasi
Project/Properties/Java Build Path/Libraries/Add External JARs
- Lisää haluamasi Jar-tiedostot (esim. Ali.jar)
- Lisää jar näkymään palvelimelle:
- Eclipse 4.4:
Project/Properties/Deployment Assembly/Add/Archives from File System
- Eclipse 4.4:
3.8 Valmiiden omien luokkien lisääminen
tee luokkia vastaava uusi projekti:
File/New/Java Project
ja hae oikea hakemistoanna projektille joku nimi (esim. Valuutat-luokkaa varten demo)
Web-projektissasi lisää projekti mukaan:
Project/Properties/Java Build Path/Projects/Add
ja projektisi nimi (esim. demo)Laita projekti vielä näkymään palvelimelle: - Eclipse 4.4:
Project/Properties/Deployment Assembly/Add/Project
Jos omien luokkien projekti ei tule millään em. kohtaan näkyviin, voit tehdä omista luokista .jar-tiedoston, joka sitten lisätään palvelimelle em. kohdasta .jar-tiedostona
File/Export/Java/Jar-file
Jos muutat luokkiesi sisältöä, muista tässä tapauksessa tehdä uusi .jar.
3.9 Oletushakemisto
- Eclipsen ja Tomcatin oletushakemistona on se hakemisto, josta Eclipse on käynnistetty.
- tätä varten on hyvä olla itsellään ajojono, jolloin voi ensin siirtyä komentorivillä haluamaansa ja sitten käynnistää Eclipsen tähän hakemistoon.
- tällä tiedolla on merkitystä, kun avataan tiedostoja ilman hakemiston nimeä.
- hakemisto voidaan toki muuttaa myös
Run Configurations/Apache Tomcat/Tomcat vX.Y/Arguments/Working Directory/Other
3.10 Tietokanta
Mikäli käytät esim. SQLite tietokantaa, katso mallia kannan alustamisesta esimerkistä:
ja erityisesti metodista annaKantayhteys()
.
4. Lukemista
- HY:n FullStack-kurssi
- Www-sovelluskehitys Vaadin-kehyksellä, Joni Korkalainen, kandityö
- Rikkaiden WWW-sovellusten luominen, Joni Korkalainen, gradu
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.