request.getParameter() and request.getAttribute()

Ok, getParameter() first:

Code:

<html>

<body>
<form name="testForm" method="post" action="testJSP.jsp">
<input type="text" name="testParam" value="Hello Amit">

<input type="submit">
</form>
</body>

</html>

-------------------------------------------------------------------------------------
Ok so when you click the submit button on this HTML page the form will be posted to testJSP.jsp

<!-- Code for testJSP.jsp -->
<%
String sValue = request.getParameter("testParam");
%>
<html>

<body>
<%= sValue %>
</body>

</html>

------------------------------------------------------------------------------------------

request.getParameter("testParam") will get the value from the posted form (named testForm) of the input box named testParam which is "Hello Vaibhav". It will then print it out, so you should see "Hello Vaibhav" on the screen. So request.getParameter() will retrieve a value that the client has submitted. You will get the value on the server side.

----------------------------------------------------------------------------------------------
Now for request.getAttribute(), this is all done server side. YOU add the attribute to the request and YOU submit the request to another resource, the client does not know about this. So all the code handling this would typically be in servlets.


// Your servlet code

public class SomeServlet extends HttpServlet {
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}


protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}

protected void processRequest(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

RequestDispatcher rd = request
.getRequestDispatcher("http://www.website.com/yourResource");

Object object = new Object();

request.setAttribute("ObjectName", object);
rd.forward(request, response);
}

Now when you call rd.forward() the request will be forwarded to the resource specified ie: in this case "http://www.website.com/yourResource"

Now in this case yourResource is a Servlet, here is the code

public class YourResourceServlet extends HttpServlet {
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {

processRequest(request, response);
}


protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {

processRequest(request, response);
}


protected void processRequest(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {

// Retrieve the object stored in the request.

Object myDispatchedObject =
request.getAttribute("ObjectName");

}
}
}

main


0 comments: