Learn HTML, CSS, Javascript first. Already you know Java so better start learning JSP.
For Template designing, you have two ways.
0) Use CSS(styles/themes) to create templates - This way you could learn more things yourself. And easy to customize your code. It'll take more time on starting period.
1) Google for "Website templates" - This way you could get tons of templates at first, you just need to copy-paste/find-replace to change things. Sometime customization is tough because it's someothers code. Some templates are coyrighted, careful when you use.
I recommend the first way(0).
And you need to play with images to create a great templates. Use tools like GIMP or Photoshop for that. And there're some more tools in web, check it out. These tools are related to web designing.
Essential tools for every web designer[
^]
50 web design tools for 2013[
^]