Re: content-type a JSP stranka

2010-09-07 Tema obsahu Martin Kuba
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

2010-09-07 Tema obsahu David Mach
 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

2010-09-07 Tema obsahu Holý Jiří
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

2010-09-07 Tema obsahu Tomas Studva

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