Yes. Typically if you are using an EJB you would define a remote interface for the EJB your JSP action would invoke a servlet that calls the appropriate method on the remote interface. Ofcourse there are tons of other ways you can use an EJB like JSFs and stuff but if you are talking about action method this is the easiest way to use it
Suppose for a shopping cart application, sometimes an EJB is called by an action class or servlet. In this case, is that action class or servlet acting as the "client" ?
The client object is the servlet object. Servlet objects use many different objects to execute. In some cases, servlet objects use action objects. They get information from the action object and may also execute behavior that is coded in an action object.
So, yes both the servlet object and the action object are client objects of a Session EJB.