2. Röviden: a jdbc url-hez hozzácsapod a characterEncoding=UTF-8 name/value párost, illetve a useUnicode értéke legyen true, tehát jdbc:mysql://host:port/db?useUnicode=true&characterEncoding=UTF-8
Hosszan: Connector-J dokumentáció
3. Az adott probléma megoldásához elég, ha a servletbe kerül a response.setCharacterEncoding("UTF-8"), de akkor az összes ilyen servletbe be kell írni, a filter, ha úgy van map-elve, akkor meg minden requestre lefut a servlet meghívása előtt.