záp 2011_01_19 9h Http server

Předmět zaměřený na praktické programování v jazyku a prostředí Java
Baa
Matfyz(ák|ačka) level I
Příspěvky: 1
Registrován: 19. 1. 2011 14:04
Typ studia: Kombinace Informatika - Matematika

záp 2011_01_19 9h Http server

Příspěvek od Baa »

Zadání, knihovny v jaru, testovaci data a template jsou v příloze.
Subjektivně hodnotím jako těžké a nikdo neodevzdával nijak předčasně...
Máte to někdo? Někdo ochotný se pochlubit?
Přílohy
zapocet-java-2011-19-01.zip
(340.11 KiB) Staženo 366 x
Ph.ill

Re: záp 2011_01_19 9h Http server

Příspěvek od Ph.ill »

No já jsem to nakonec utloukl, protože cvičící byl fakt hodnej. Ale byl jsem jeden z posledních, nechal nám čas navíc. Bylo tam potřeba čekat na socket, hned za socket.open odpalit novy vlakno a hodně pracovat s třídou File. Na konci dát socket.close jinak by browser furt čekal a nic by se neobjevilo. Ta třída File pro mě byla zrádná, protože File sežere jakoukoli cestu i když neexistuje, je to jenom kontejner, co na tu cestu pak provadí metody. Takže já si vypsal adresář jako file.list to mi hodilo pole filů co jsou v adreáři, jenomže já vůl sem si je pak tvořil z názvů a né z celých cest (prostě new File(files[0]) což je kravina, protože to je jenom název a né celá cesta. Pak mi sice fungovali file.getName atd. ale file.LastModified nebo file.length vraceli nulu, ani nezařvali, že to pouštim na neexsitujíci file, takže celkem zdržení. Vim, popletl jsem to, ale tak třeba to aspoň někomu pomuže. Jo a je dobrý si najít interface Comparable a jak se chová, na třídění použít normálně java.util.Arrays tam je Arrays.sort() metoda a s funkčním comparator nebo comparable to jde celkem pěkně. Protože potřebujete sortit podle třech různých atributů. Někde je tam i reverse() mam dojem, možná jenom na listu. Jo a hodí se: new date(file.LastModified()) Jinak server se testuje na adrese 127.0.0.1:socket (to pro ty co to vidí poprvé). Taky doporučuju ještě, pokud ten index budete dělat ve stringuBuilderu, tak si zjistit, jak se dělá InputStream ze stringu, protože ta Response chce inputstream. Ale to jde asi lépe, já se do toho trochu zamotal. Jinak tomu HttpProtocolu se předají jenom streamy toho socketu. Prostě jenom stačilo zkontrolovat argumenty=> na požadavky pustit nové vlákno => v něm jenom sortit výpis index, to je asi to co zabralo nejvíc času. Ta samotná komunikace byla již perfektně připravena v těch souborech. To podle čeho sortit, to vracelo samo, takže se člověk o to nemusel vubec starat. A na chyby 404/403 to tam má svuj enum statusů, takže taky v pohodě. Btw. mam dojem, že nikdo neodevzdal v předstihu, spíš trochu později. Bylo toho dost nového a asi spíš hodně bugy sme v tom měli. Přišlo mi dost pitomý, být bez internetu. Protože ty slidy jsou chudý, aby se tam všechno vešlo, dokumentace mi taky moc přehledná nepřijde a člověk pak ztráví přemýšlení nad tím jak převede file.LastModified() long číslo na přehledné datum, místo toho aby to ve vteřině vygooglil. No mužem poděkovat těm co minulá léta podváděli. Ale je možno si doma tyhle zvláštnosti sepsat a tam to použít, takže domácí příprava se určitě vyplatí.
ondrej100

Re: záp 2011_01_19 9h Http server

Příspěvek od ondrej100 »

Aka bola nakoniec uspesnost a kolko nadstavil? Ja som (uspesne) odosiel par minut po 12tej tj nieco pred koncom oficialneho limitu. Ten zakazany internet je chujny, pre tych co este pojdu, odporucam si stiahnut z download.oracle.com aspon API k jave a zobrat si vyriesene priklady z minulych rokov. Je zvlastne, ze vyriesene priklady nevadia ale googlenie tutorialov ano :D
Ph.ill

Re: záp 2011_01_19 9h Http server

Příspěvek od Ph.ill »

No ja myslim, že nakonec na to jak to tam vypadalo, byla úspěšnost celkem solidní, tipuju pomalu 70%, podle toho co sem viděl na papíře zaškrtnuté. V podstatě ti co houževnaťě bojovali to nějak dokutáleli do konce. Nedala to spíš ta část co spanikařila a vzdala to v poločase. Jinak myslim, že nastavil ještě 50 minut. Fakt skvělej cvičící, měl pochopení. No s tim internetem, ono by jim ani nevadilo, kdybychom si googlily tutorialy, ale oni se bojí, že nám někdo na icq nebo na mailu bude házet řešení, že se to prý minulé roky několikrát objevilo a vyhazovalo se (to nám řikal cvičící). Já si to teda nedovedu představit, abych studoval informatiku a někdo mi po mailu házel řešení, ale tak možné je asi všechno.
Ph.ill

Re: záp 2011_01_19 9h Http server

Příspěvek od Ph.ill »

Možná bych ještě poradil si prostě předvytvořit nějaké třídy jako třeba readery,writery na soubory. Jako neni nutný tam vymýšlet půl hodiny, jak mám přes sebe dát streamy a filtery, když půlka se jich nepoužívá a netbeans moc s pomocí nenemáhaji. A ještě si třeba udělat Gui okno, pak třeba třídu se sitovou komunikaci a třídu se spouštěním vlákna. To se fakt hodí. Já si to večer před tím naprogramoval a odzkoušel a pak jsem nemusel znova vynalézat kolo. A ještě jsem si tam bral tohle: http://download.oracle.com/javase/tutor ... isual.html Tak všem good luck.
hurda
Matfyz(ák|ačka) level I
Příspěvky: 12
Registrován: 10. 1. 2011 14:46
Typ studia: Informatika Mgr.

Re: záp 2011_01_19 9h Http server

Příspěvek od hurda »

Javadoc je povolenej a mohlo se i na přednášky, třeba celá chujovina se ServerSocketem je na dvou slidech v pr myslim 11.

Bylo to docela pracny, možná jsme se zbytečně patlal s okrajovejma variantama, když on do toho pak kliknul cca 5krát, chce to nedělat nic navíc.
zbytovsky
Matfyz(ák|ačka) level I
Příspěvky: 7
Registrován: 29. 10. 2009 18:12
Typ studia: Informatika Bc.

Re: záp 2011_01_19 9h Http server

Příspěvek od zbytovsky »

Posílám svoje řešení, tím že bylo možno využívat slidy i osobní příklady, tak mi to přišlo docela jednoduché - spíše to byl opruz to všechno vypisovat - ta java je místy dost hloupá. Řešení samozřejmě sprasené ;-)
Přílohy
http-server-moje-reseni.zip
(355.12 KiB) Staženo 337 x
Odpovědět

Zpět na „PGR013 Java“