I'm afraid that the only question out of that set that I can answer is the last one. Java is "write-once/run-anywhere", so as long as you have no Window-specific code or file paths in your webapp, it will usually run without any changes.
I spent several years developing webapps under Windows XP for production operation under the Solaris Unix OS. I used the exact same WAR files on both.
subject: Not calling controller classes when hosted on server