1. You need to restrict this in web.xml by specifying CONFIDENTIAL <transport-guarantee/>:
<security-constraint>
<web-resource-collection>
<web-resource-name>Protected Resources</web-resource-name>
<description>All servlets requiring https access</description>
<url-pattern>/path-to-your-servlet-starting-with-a-slash</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
2. Correction: it is not necessarily NEW thread, more likely to be a DIFFERENT thread. The rest is correct, local method variables are safe.
3. Nothing wrong unless you want to limit it to particular method.
4. (it is !) Not quite clear what you want to achieve. Being able to access your local Tomcat from the network ? Should be fairly simple: open the port your Tomcat listens on (8080) in your firewall (allow incoming TCP connection). I think by default Tomcat listens on all interfaces/IPs. Then access it as:
http://yourMachineNameOrIP:8080/yourServlet
<security-
constraint
> <web-resource-collection>
<
/web-resou
rce-collec
tion></sec
urity-cons
traint>