For #1, you could probably use AJAX to do this without much trouble. The component would initially render itself as a link, which when clicked, makes an AJAX call back to the component. The data returned by that AJAX call would get displayed in a pop-up.
Here how can i implement AJAX, do i need to create servlet as usual? js and java class should put where?