This things are same or different if different then please give me reason for that and How?
1) pageContext.setAttribute(\"first\"
all three are basically same just different way of setting variable in respective scopes.
check this article. It states that third parameter for setAttribute method defines the scope in which variable need to set.
So in your case first will set value in request scope, second will set it in session and third will set it in application scope.