1) First things first; Forget about applets. I think you are a little confused by what is an applet, and what is just
Java. An applet is just a way of using the power of Java in a browser, and it's a very small part of what Java is. All the Classes, Objects, and methods stuff, and all the useful APIs (java.lang, java.util, java.io, java.math, JDBC, servlets, RMI, Streams, Sockets, events, inner classes, serialization, Threads, etc. etc.) are part of Java, and available from any application, applet, servlet, JavaBean or whatever.
I've been using Java commercially for about four years now, and I've never needed to write an applet, but I have written hundreds of thousands of lines of Java.
I don't know ahat language (or languages) Amazon and B&N are written in, but they do do all their processing in the server. They don't use applets, but deliver computer-generated HTML to your browser for each page you request or button you click. This is what server-side programming is all about - accepting requests from, and delivering replies to, a client system.
2) If you wish to specialize in Java server-side programming, you will need to know all of Java
except Applets, AWT and Swing (ie, the Graphical User Interface APIs), and it would be useful to be able to use those if you have to do a different bit of work sometimes.
3) An Applet is a class which extends java.applet.Applet. A servlet is a class which extends javax.servlet.Servlet (or one of its subclasses such as HttpServlet or GenericServlet). All the other classes in a system may be used by the applet and/or servlet, but they are not
part of it. In a good design, an applet or servlet should be a vary small part of the overall system, acting just as an interface to the real "business logic".
Is this any clearer?