Re: content-type a JSP stranka
Ahoj, kódování je třeba uvést na dvou místech, aby to správně fungovalo, a je dobré ho dát ještě na třetím, a to takto: %@ page contentType=text/html; charset=utf-8 pageEncoding=windows-1250% html head meta http-equiv=Content-Type content=text/html; charset=utf-8 To první místo je v direktivě @page v atributu contentType, a určuje, v jakém kódování bude stránka poslána prohlížeči, tj. HTTP hlavičku. Pokud není uvedeno, bere se iso-8859-1. Druhé místo je zase v direktivě @page, ale v atributu pageEncoding, a určuje, v jakém kódování je soubor JSP načten z disku. Musí odpovídat tomu, jak je nastaven editor, ve kterém to píšete. Default je určen nastavením operačního systému, přesněji řečeno systémovou property file.encoding, a na českých Windows to bude windows-1250. Třetí místo je v tom meta tagu. Pokud je nastaveno první místo (tj. HTTP hlavička), tohle nastavení má smysl jen pokud si uživatel uloží kopii stránky na disk, při kterém se HTTP hlavičky nezachovávají. Pokud HTTP hlavička kodování nespecifikuje, vezme ho prohlížeč z meta tagu. Specifikace v HTTP hlavičce má přednost před specifikací v meta tagu. No a pokud není kodování nastaveno ani v hlavičce ani v meta tagu, prohlížeč má nastaveno nějaké default kodování, ve Firefoxu je to v menu Úpravy - Předvolby - Obsah - Písma a barvy - Rozšířené - Znaková sada, případně se to dá rychle ručně vynutit v Zobrazení - Znaková sada. Takže stručná opověď je, že je třeba, aby pageEncoding bylo správně nastaveno, aby znaky byly vůbec správně načteny, a pak je třeba nastavit správně HTTP hlavičku pomocí contentType, aby byly znaky správně překodovány na výstupu a prohlížeč věděl jak. Pak není nutné na straně prohlížeče vůbec nic dělat. Makub ivo_m napsal(a): Já mám trochu podobný problém. Jednoduchá stránka xx.html: !DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN html head meta http-equiv=Content-Type content=text/html; charset=utf-8 titlePokus 2/title /head body ěščřžýáíéúůťň ĚŠČŘŽÝÁÍÉÚŮŤŇ /body /html se mi ve Firefoxu (v. 3.6.8) vždy zobrazí v kódování windows-1250 a musím ji pokaždé ručně přepnout na utf-8, aby byla čitelná. V IE8 to funguje správně. Jak mám přemluvit Firefox, aby to zobrazoval správně? WinXP, Apache 2.2 (localhost) Díky ivo -- ~~ Supercomputing Center Brno Martin Kuba Institute of Computer Scienceemail: ma...@ics.muni.cz Masaryk University http://www.ics.muni.cz/~makub/ Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775 -- smime.p7s Description: S/MIME Cryptographic Signature
Re: content-type a JSP stranka
Dost často bývá zdrojem tohoto problému ten fakt, že samotný HTML soubor je uložen v kódování Win-1250. Nastav si to v editoru. David Dne 7.9.2010 1:09, ivo_m napsal(a): Já mám trochu podobný problém. Jednoduchá stránka xx.html: !DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN html head meta http-equiv=Content-Type content=text/html; charset=utf-8 titlePokus 2/title /head body ěščřžýáíéúůťň ĚŠČŘŽÝÁÍÉÚŮŤŇ /body /html se mi ve Firefoxu (v. 3.6.8) vždy zobrazí v kódování windows-1250 a musím ji pokaždé ručně přepnout na utf-8, aby byla čitelná. V IE8 to funguje správně. Jak mám přemluvit Firefox, aby to zobrazoval správně? WinXP, Apache 2.2 (localhost) Díky ivo
RE: Jeden beziaci proces
Flag se musí v db updatovat prostě jinou transakcí. Zároveň se hodí přidat timestamp atribut, do kdy je ten zámek aktivní - v praxi pak spuštěný timer může ten timestamp updatovat (prodlužovat jeho platnost, aby nedošlo k opětovnému spuštění). Podmínkou pro spuštění nového timeru je neexistující zámek, nebo vyexpirovaný (tj. ošetření případu, že server spadne a zámek existuje). Jiří Holý From: konference-boun...@java.cz [mailto:konference-boun...@java.cz] On Behalf Of Tomas Studva Sent: Monday, September 06, 2010 1:24 PM To: Java Subject: Re: Jeden beziaci proces Asi myslite explicitny DB zamok. To sa mi nezda celkom idealne, lebo taky zamok je viazany na tranzakciu a teda ta by musela byt otvorena po celu dobu. Tomuto som sa vyhol, lebo sa neda zarucit dlzka behu toho procesu, v zlom pripade to moze bezat aj 30 minut. No na druhej strane, nemam ziadne ine proti :). Moje riesenie cez flag teda stlpec v tabulke ma inu nevyhodu, ktora je ale ovela viacej bolestivejsia. Ked sa restartne server alebo vypadne elektrina pocas behu procesu, tak sa flag nezmeni na false. Dakujem, zvazim to. 2010/9/6 Kamil Podlesak kamil.podle...@gmail.commailto:kamil.podle...@gmail.com Dobrý den, Zámek v databázi má výhody: - bude fungovat i v clusteru - lze ho sledovat administračními nástroji databáze a případně i násilně zrušit Kamil Podlešák 2010/9/6 Tomas Studva tstu...@gmail.commailto:tstu...@gmail.com: Dobry den, v nasej aplikacii mame periodicky spustany proces. Tento proces je schedulovany Jbossom, a moze trvat od niekolko sekund az po niekolko minut. Spustany je asi kazde tri minuty. Potrebujem zarucit aby bezal iba 1 na celom servery. Momentalne to riesim flagom v databaze, ak je flag true, tak proces sa hned ukonci. Chcem sa spytat, ci nie je aj jednoduchsie riesenie a ako by to bolo s implementaciou. Ten zamok naozaj suvisi s datami, teda s databazou a aplikaciou. Ako druhe riesenie mi napada lockovat sa na nejakom objekte v aplikacii. Tomas Studva
Re: Jeden beziaci proces
Mysli Vam to podobne ako mne. Dakujem za vsetky prispevky. Holý Jiří wrote / napísal(a): Flag se musí v db updatovat prostě jinou transakcí. Zároveň se hodí přidat timestamp atribut, do kdy je ten zámek aktivní - v praxi pak spuštěný timer může ten timestamp updatovat (prodlužovat jeho platnost, aby nedošlo k opětovnému spuštění). Podmínkou pro spuštění „nového“ timeru je neexistující zámek, nebo vyexpirovaný (tj. ošetření případu, že server spadne a zámek existuje). Jiří Holý *From:* konference-boun...@java.cz [mailto:konference-boun...@java.cz] *On Behalf Of *Tomas Studva *Sent:* Monday, September 06, 2010 1:24 PM *To:* Java *Subject:* Re: Jeden beziaci proces Asi myslite explicitny DB zamok. To sa mi nezda celkom idealne, lebo taky zamok je viazany na tranzakciu a teda ta by musela byt otvorena po celu dobu. Tomuto som sa vyhol, lebo sa neda zarucit dlzka behu toho procesu, v zlom pripade to moze bezat aj 30 minut. No na druhej strane, nemam ziadne ine proti :). Moje riesenie cez flag teda stlpec v tabulke ma inu nevyhodu, ktora je ale ovela viacej bolestivejsia. Ked sa restartne server alebo vypadne elektrina pocas behu procesu, tak sa flag nezmeni na false. Dakujem, zvazim to. 2010/9/6 Kamil Podlesak kamil.podle...@gmail.com mailto:kamil.podle...@gmail.com Dobrý den, Zámek v databázi má výhody: - bude fungovat i v clusteru - lze ho sledovat administračními nástroji databáze a případně i násilně zrušit Kamil Podlešák 2010/9/6 Tomas Studva tstu...@gmail.com mailto:tstu...@gmail.com: Dobry den, v nasej aplikacii mame periodicky spustany proces. Tento proces je schedulovany Jbossom, a moze trvat od niekolko sekund az po niekolko minut. Spustany je asi kazde tri minuty. Potrebujem zarucit aby bezal iba 1 na celom servery. Momentalne to riesim flagom v databaze, ak je flag true, tak proces sa hned ukonci. Chcem sa spytat, ci nie je aj jednoduchsie riesenie a ako by to bolo s implementaciou. Ten zamok naozaj suvisi s datami, teda s databazou a aplikaciou. Ako druhe riesenie mi napada lockovat sa na nejakom objekte v aplikacii. Tomas Studva