maybe I'm not understanding your problem correctly, but here is what I would do:
1. You have a jsp with a form that has an action that points to a servlet.
2. In this servlet you are handling the request. You could have one servlet for each button or one servlet for all and then decide inside the servlet which button was the source of the click. In the servlet you call an EJB (Session Bean) with a method like "buttonPressed(ButtonDescription description)".
3. This EJB calls a Message Driven Bean (the JMS component) that does the asynchronous communication. This is where I don't understand the task, because this action is simple and fast, so why does it have to be JMS and asynchronous?
4. The MDB calls an EJB that saves the data in the database.
The reason for the EJB -> MDB -> EJB is, that an MDB should be called from the business logic and should call business logic. Its only reason to exist is that is lets the first EJB return at once and not block the client.
Another possibility is that your professor meant the Interceptor Chain of JBoss. Then you would have to implement a class that implements Interceptor (a JBoss class, you should look in the docu). This class does the save of the button click and is put in the interceptor chain of an EJB in server//conf/standardjboss.xml. But this makes no sense because the interceptor can not decide which button has been pressed and it is executed at every EJB-invocation, where the EJB has this invoker-proxy-binding.
If I understood you wrong, you would have to clarify this a bit for me.