Definitivamente considere o uso de SSL para tudo. Muitos de nossos clientes estão indo nessa direção e eu recomendo totalmente.
Se você misturar HTTP / HTTPS e quiser manter o estado da sessão, precisará contornar alguns dos mecanismos do Tomcat que tentam evitar isso (cookies somente seguros para JSESSIONID). Uma vez que você tenha feito isso com sucesso, alguém poderia seqüestrar uma sessão do HTTP e realizar ações no lado HTTPS.
Tudo o que disse, se você quiser ter esse nível de controle refinado, você pode considerar o uso de um ServletFilter. O filtro pode ser aplicado primeiro no web.xml e ser aplicado ao dispatcher "REQUEST" no padrão de URL "/ *" (ou apenas nos padrões em que você precisa fazer essa determinação).
O filtro então examinará a solicitação. Se for um caminho que deve ser HTTPS, verifique o request.isSecure (). Se não for seguro, ele emitirá um redirecionamento 301 para o lado HTTPS, certificando-se de manter o caminho completo da solicitação e os parâmetros de URL. Da mesma forma para redirecionar de HTTPS para HTTP.
Sou apaixonada pelos filtros servlet. Eles são o canivete suíço de manipulação de pedidos. Não há nada que você não possa fazer. Mais importante ainda, o comportamento é parte do aplicativo e não uma personalização para a configuração do Tomcat. Você pode implantar o aplicativo em qualquer lugar e ele "simplesmente funcionará".