od Ph.ill » 19. 1. 2011 15:45
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í.
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í.