getParameter returns the value of the HTML Form or Querystring parameters as a
string. You don't set them on the server side (for the most part).
The getAttribute and setAttribute methods allow you to bind and retrieve objects to the desired scope.
No, calling getAttribute doesn't remove it from that scope.
And no, the behaviour doesn't vary among the different scopes.
The lifecycle of the different scopes DOES vary and this can affect the availablility of an object bound to that scope.
For instance, if you bind an object to request, you won't be able to retrieve it after that request cycle is complete (from another request).