2I1073 Lektion 2. Lektion 2a. Lektion 2a. Servlets, säkerhet, och filhantering. import java.io.*; import javax.servlet.*; import javax.servlet.http.

Relevanta dokument
Tentamen ITK:P2. Inga hjälpmedel tillåtna förutom penna och papper. Skriv tydligt och texta gärna. 14 st frågor, 70 poäng.

ITK:P1 Lektion 4. Lektion 4. Lektion 4. Att implementera en spelidé i Java. DSV Peter Mozelius

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

2I1070 Lektion 2 Servlets och databaskopplingar Internetprogrammering 2I1049 Treskiktsarkitektur Klient-server med servlets

Denna vecka. Idag. Grafiskt användarsnitt. Vi kommer att se

Föreläsning 14. Filhantering

Servlets y JSP Fernando Berzal,

ITK:P1 Föreläsning 4. Grafiska gränssnitt i Java. AWT-komponenter

Malmö högskola 2007/2008 Teknik och samhälle

Java-concept och Swing. Swing low, sweet chariot

MVC-mönstret. model-view-control i Swing

Laboration 15 Grafiskt användargränssnitt

lgammal2.txt // Lösningar till gammal tentamen // Uppgift 1 a

Föreläsnings 9 - Exceptions, I/O

Laboration 24 Databasen MySQL och java

Dagens program. Programmeringsteknik och Matlab. Vad är arv? Vi ärver från GregorianCalendar. Kan vi bygga vidare på existerande klasser?

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl

Instuderingsuppgifter läsvecka 6 - LÖSNINGAR

Lösningsförslag till tentamen

PROGRAMMERINGSTEKNIK för F1 och TM1 (TIN212)

Lösningsförslag till tentamen

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU

Föreläsning 12. Föreläsning 12. Rörliga figurer Klassen Timer Undantag Något om applets. Rörliga appletsfigurer Klassen Timer Undantag

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

Lösningsförslag till tentamen

Lösningsförslag till tentamen

DI-institutionen Sid 1 av 5 Hans-Edy Mårtensson Sten Sundin Micael Karlsson

Lösningsförslag till tentamen

Språkkonventioner och redigering av tal.

Föreläsnings 11 - GUI, Händelsestyrda program, MVC

Lösningar för tenta 2 DAT043,

ITK:P1 Föreläsning 8. Verktyget Javadoc. Kommentarer för Javadoc. Multimedia för spelkonstruktion

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

Lösningsförslag till tentamen

Fortsättningskurs i programmering F 5. GUI händelsehantering - undantagshantering Hugo Quisbert AWT. Paket för hantering av grafik

Surfning. Webbklienter och webbservrar. Specialskrivna webbservrar. Kommunikation med sockets

Två designmönster, MVC och Observer/Observable. Objektorienterad programvaruutveckling GU (DIT011)

Swing. MER Java Foundation Classes (JFC) Hur lära sig? Vad är farorna. LayoutManagers. Exempel på några av komponenterna

Swing. MER Java Foundation Classes (JFC) Vad är farorna. Hur lära sig? LayoutManagers. Exempel på några av komponenterna

JAVAUTVECKLING LEKTION 7

Lösningsförslag till tentamen

4 13 / %.; 8 </" '': " / //&' " " ' * TelefonKostnad +,-%&. #!" $% " &' . > / ' 5 /' * 13/ &' static Math 1+" &'/ % 12 "" static "' * 1 /") %& &

Föreläsning 14. Träd och filhantering

Lösningsförslag till tentamen

OOP Objekt-orienterad programmering

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista

Lösningsförslag till tentamen

Repetitionsföreläsning 2: Quiz & problemlösning med swing Inget nytt material.

Föreläsning 13: Swing (GUI), händelser, timer

Properties. Användbara metoder som kan anropas i propertychanged:

Grafiska användargränsnitt i Java. Föreläsning 7 Innehåll. Använda klasspaketet Swing. Klasspaket i Java. Grafiska användargränsnitt i Java

Detta dokument är ett exempel, cirka andra hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling

Tentamen FYTA11 Javaprogrammering

Frames, menyer och GUI-program

Mer om grafiska komponenter. Händelsestyrda program

kl

Föreläsning 15 (16) Historik (java.awt) Historik (javax.swing) Introduktion till Swing

Tentamen. Lösningsförslag

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag aug - 23 Tentamen i Objektorientering och Java Skrivtid 5 h

OOP Objekt-orienterad programmering

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP och DSV1:P2

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser

Hämta data mha URLer Föreläsning 2b. Innehåll Klassen URL

JAVAUTVECKLING LEKTION 4

Tangentbord.java. Talinlasning.java. import java.io.*; class Tangentbord {

Grafiska komponenter.

OOP Objekt-orienterad programmering

Lösningar för tenta 3 DAT043,

Programmeringsteknik II - HT18. Föreläsning 6: Grafik och händelsestyrda program med användargränssnitt (och Java-interface) Johan Öfverstedt

Föreläsning 10. Mer om grafiska komponenter Händelsestyrda program. Layout Managers. Exempel: FlowLayout. Klassen FlowLayout

Input. Programmering. Andra källor

Projekt 2 XL. Observer-mönstret

2I1073 Föreläsning 3. Säkerhet. Kryptering

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h

Tentamensskrivning Nätverksprogrammering (EDA095 - FED) , kl 8-13

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 18

Föreläsning 10. Mer om grafiska komponenter Händelsestyrda program. Layout Managers

Undantagshantering. Fördjupad Java. Fel. Undantag. Fånga Undantag. Grupper av Undantag

Undantagshantering. Fördjupad Java. Undantag. Fel. Grupper av Undantag. Fånga Undantag

Att skriva till och läsa från terminalfönstret

DAT043 Objektorienterad Programmering

Examination i PROGRAMMERINGSTEKNIK F1/TM1 TIN212. Dag: Måndag Datum: Tid: (OBS 5 tim) Rum: V+M

Föreläsning 9-10 Innehåll

Lösningsförslag till tentamen

Enum, mer om Arv, Abstrakta klasser, Polymorfism, Recursion! Förelasning 14!! TDA540 Objektorienterad Programmering!

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 00 - juni - 17 Tentamen i Objektorientering och Java Skrivtid 5 h

Handboken / Programmering / Java

Grafiskt användargränssnitt (GUI-Graphical User Interface) intro Komponenter

Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Tentamen Nätverksprogrammering Lösningsförslag

Rita Egna Bilder, Timer

Tentamen Nätverksprogrammering Lösningsförslag

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

Basic Internet Programming. Servlets, Cookies and Sessions. Björn Eiderbäck Cristian Bogdan

Transkript:

2I1073 Lektion 2 Servlets, säkerhet, och filhantering KTH-MI Peter Mozelius import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Lektion2a extends HttpServlet { public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { res.setcontenttype("text/html"); PrintWriter out = res.getwriter(); String protokoll = req.getprotocol(); // Skriv ut som ett validerande XHTML1.1-dokument "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\""); "\"http://www.w3.org/tr/xhtml11/dtd/xhtml11.dtd\">"); "<html xmlns =\"http://www.w3.org/1999/xhtml\">"); 1

" <head>"); " <meta http-equiv=\"content-type\" content=\"text/html;" + "charset=iso-8859-1\" />"); " <title>2i1073-lektion2a</title>" ); " </head>" ); " <body>" ); " <h2>hej, detta är en hälsning via " + protokoll + "</h2>" ); " </body>" ); "</html>" ); out.close(); //doget public void dopost(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { doget(req, res); //dopost //Lektion2a Lektion 2b - web.xml <!-- Definition --> - <servlet> <servlet-name> Lektion2a </servlet-name> <servlet-class> Lektion2a </servlet-class> </servlet> 2

Lektion 2b - web.xml <!-- Mappning --> - <servlet-mapping> <servlet-name> Lektion2a </servlet-name> <url-pattern> /Lektion2a </url-pattern> </servlet-mapping> </web-app> 15 min paus! Lektion 2c import java.io.*; import java.security.*; public class Lektion2c { public static void main(string[] args) { String recept = ""; //öppna filen med recept och läs in BufferedReader receptfil = null; Lektion 2c try { receptfil = new BufferedReader( new FileReader("recept.fil")); String rad; while((rad = receptfil.readline())!= null) recept += "\n" + rad; catch (FileNotFoundException fnfe){ System.err.println("Filen hittades inte!"); System.exit(1); catch (IOException e){ System.err.println("Filen gick inte att läsa!"); System.exit(2); 3

Lektion 2c //låt klassen MessageDigest beräkna ett kontrollvärde byte[] buffer = recept.getbytes(); try { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(buffer); System.md.digest()); System.out.print("är kontrollvärdet för följande recept: \n\n"); System.recept); catch(nosuchalgorithmexception nsae) { System.err.println(nsae.getMessage()); //main import java.io.*; import javax.swing.*; import javax.swing.filechooser.*; import java.awt.*; import java.awt.event.*; public class Lektion2d extends JFrame { private Container container; private JTextField inforuta; private JTextArea meddelanderuta; private JPanel nordpanel, mittpanel, sydpanel; private JMenuBar filbar; private JMenu arkivmeny; private JMenuItem mitem; private String filnamn; public Lektion2d() { skapagränssnitt(); public void skapagränssnitt() { this.setsize(400, 200); this.settitle( MIwebb, en liten filläsare för Lektion2."); 4

container = this.getcontentpane(); container.setlayout(new BorderLayout()); nordpanel = new JPanel(); container.add(nordpanel, BorderLayout.NORTH); mittpanel = new JPanel(); mittpanel.setbackground(new Color(255,255,255)); mittpanel.setsize(400, 150); meddelanderuta = new JTextArea(); mittpanel.add(meddelanderuta); container.add(mittpanel, BorderLayout.CENTER); sydpanel = new JPanel(); sydpanel.setlayout(new GridLayout(1, 2)); inforuta = new JTextField("Läs in en fil genom att välja Öppna från Arkiv-menyn här ovanför!"); sydpanel.add(inforuta); container.add(sydpanel, BorderLayout.SOUTH); setjmenubar(skapaarkivmeny()); setdefaultcloseoperation(exit_on_close); this.setvisible(true); //skapagränssnitt public JMenuBar skapaarkivmeny() { filbar = new JMenuBar(); arkivmeny = new JMenu("Arkiv"); arkivmeny.setmnemonic('a'); filbar.add(arkivmeny); MenuListener ml = new MenuListener(this, meddelanderuta, inforuta); mitem = arkivmeny.add( new JMenuItem("Öppna", 'ö')); mitem.addactionlistener(ml); mitem = arkivmeny.add( new JMenuItem("Avsluta", 'a')); mitem.addactionlistener(ml); return filbar; 5

public static void main(string[] args) { Lektion2d l2d = new Lektion2d(); //main //Lektion2d class MenuListener implements ActionListener { private Lektion2d compo; private JTextArea meddelanderuta; private JTextField inforuta; public void actionperformed(actionevent e) { String val = e.getactioncommand(); if(val.equals("öppna")) { öppnafil(); else if(val.equals("avsluta")) System.exit(0); public void öppnafil() { JFileChooser jfc = new JFileChooser("./"); jfc.setfilefilter(new InFilter()); int val = jfc.showopendialog(compo); if(val == JFileChooser.APPROVE_OPTION) { String meddelande = ""; //öppna ström och läs in BufferedReader infil = null; try { infil = new BufferedReader(new FileReader(jfc.getSelectedFile())); inforuta.settext("inläst från: " + jfc.getselectedfile()); String rad; while((rad = infil.readline())!= null) meddelande += "\n" + rad; 6

catch (FileNotFoundException fnfe){ System.err.println("Filen hittades inte!"); System.exit(1); catch (IOException e){ System.err.println("Filen gick inte att läsa!"); System.exit(2); meddelanderuta.settext(meddelande); private class InFilter extends javax.swing.filechooser.filefilter { public boolean accept(file f) { if(f.getname().tolowercase().endswith(".fil")) return true; else return false; public String getdescription() { return "Visar endast filer med ändelsen.fil"; //InFilter //MenuListener Lektion 2 Det var allt för idag. Glad Påsk! 7