Java is a virtual machine specification and the specific language it was designed for. Since 1995 several other languages have been ported to run on the JVM: JavaScript, Jython, Closure, JRuby, and Scala.
Java EE is another 1999 specification for distributed objects that run in an operating system agnostic application server that manages object lifecycle, transactions, etc. Java EE app servers that implement the specification include JBOSS, WebLogic, Glassfish, and WebSphere.
Servlets are HTTP listeners - Java classes. They are not a platform, framework, or specification. They are part of the Java EE spec.
The JDK is the Java development kit. It consists of all the development tools for Java: compiling (javac), packaging (jar), etc.
Java ME preceded Android and iPhone. It's intended for mobile platforms, but I don't think it has nearly the market or mindshare that IOS and Android do. Every proposal put out by Sun was not a winner (e.g. Jini, JXTA, Java ME, etc.)
There have been some alternatives to Java EE that you ought to know about. vert.x is a non-blocking IO platform that deserves a great deal of attention. It's built on Netty. I'd consider both of these to be platforms. Neither are part of the Java EE specification.
Another is Spring, which is a framework. Frameworks operate on the Hollywood principle: "Don't call us; we'll call you." You embed your code in the framework, not the other way around.
Rod Johnson developed Interface 21/Spring in 2001 as a reaction against the heavy EJB 1.0 spec. It's been embedded inside Spring Boot, a deployable JAR packaging scheme.