Java Applet
Java Applet runs inside a Java plugin in the explorer. In IE, the plugin is a kind of ActiveX. Please see the diagram.
Hoever, in firefox, it is a plugin implemented by Gecko SDK(npapi), please see,
Strong Points
Across the platform, the applet can be explained in IE and Firefox, Windows and Linux/Unix.
Shortcoming
Not each user has the JRE installed.
Flash
Flash is like applet, it is also an ActiveX plugin in IE and Gecko SDK in Firefox. But it should be more related to Multi-Media(HTTP GET and POST is also used inside flash) while Applet has more API available to do anyting. Please see the diagrams in IE and firefox.
Strong Points
Across the platform, the flash can be played in IE and Firefox, Windows and Linux/Unix. There is no enough API do some rich operasions compared to Appllet(java)?
Shortcoming
Not each user has the Flash Player Plugin installed.
ActiveX/Gecko SDK Plugin
They are the real explorer plugins. Actually, the JRE plugin and Flash Player Plugin are also kind of ActiveX or Gecko SDK Plugin themself. They explain the Applet or the Flash.
IE/Firefox ------>> ActiveX/Gecko SDK Plugin
IE/Firefox ------>> JRE plugin ------>> Appllet
IE/Firefox ------>> Flash Player Plugin ------>> Flash
Strong Points
More flesible since they are the real plugin programmed by C++ both in IE and Firefox usually.
Shortcoming
You need to implement different for IE and Firefox. For IE, you need use Windows/COM API. For Firefox, you need use the Gecko SDK/npapi.