I'm new to portlets and trying to understand better the available options for implementation.
How is your book different from the "Liferay in Action" for example ?
Does your book tackle the development of portlets using different types of compliant portlet servers (beside Liferay) ?
What criteria should one take into consideration before selecting a certain portlet server?
Portlets in Action is quite different from Liferay in Action.
The concepts described in Portlets in Action are not tied to a specific portal server. Liferay in Action is specific to Liferay portal. If you look at the ToC of Portlets in Action, you'll find that it focuses on Portlet 2.0 specification, portal development in general, Spring Portlet MVC, Hibernate, Spring JDBC, AOP, Portlet Brides, Filters, AJAX, Reverse AJAX or Comet, and so on. In a nutshell, it is for developing portlets without getting tied up with a portal server specific approach to portlet development. Liferay is the reference portal server but it also has an appendix dedicated to developing portlets for GateIn portal. A separate codebase exists for all the examples so that you can try out examples on GateIn portal also. The overall idea is to give a feel that portlet development is not difficult and it is always possible to develop portlets which can be ported to different portal servers, with little or no modification required. Chapter 3 and 4 focus on developing a portlet which works on JetSpeed, Liferay and Glassfish (with OpenPortal Portlet container), to show that a good understanding of the portlet container can help in developing portable portlets.
Selection of portal server is mainly driven by the built-in features that you get with the portal server - like built-in portlets, integration with external authentication/authorization systems, security infrastructure for portlets/portal pages, and so on.