They are two different collections. The parameters are generally set by the framework when handling a GET request with parameters in the URL (e.g., http://myserver.com?id=5&name=amrit) or when a POST request contains parameters set through a form. The attributes are something the user has access to, so a servlet could do initial processing and set values to the request attributes, then forward to a JSP to be displayed. The JSP can read the attributes when building up the page. JSTL and the Expression Language make it especially easy to retrieve values from the request attributes.