Well as far as your client is concerned it depends what content type you define in the header of your HTML page. If you haven't defined one you are using the default for what ever browser your client has. That is unless your client is IE, in which case IE tries to guess the correct encoding to use based on the frequency of characters in the page. Clever, but it can be quite frustrating if you see some of your pages render fine and others fall over with lots of '?'s.
As far as your server is concerned its using the default encoding - which is defined by JVM, OS and OS locale settings. The JSDK (1.4.2+) is documented to support KOI8-R, windows-1251 and UTF-16 any of which you could use, couldn't you?
As far as multi-language pages go - typically you would not expect one page to be able to transparently support every possible character set. That's why frameworks like Struts include internationalization capabilities. Normally an internationalized site will have a default langauge page plus a differntly encoded page for each anticipated language e.g. home.jsp, home_ru.jsp, home_cz.jsp etc.