Wednesday, July 24, 2013

How does a servlet communicate with a JSP page?

The following code snippet shows how a servlet instantiates a bean and initializes it with FORM data posted by a browser. 

The bean is then placed into the request, and the call is then forwarded to the JSP page, Bean1.jsp, by means of a request dispatcher for downstream processing.


public void doPost (HttpServletRequest request, HttpServletResponse response)
{
  try
   {
     govi.FormBean f = new govi.FormBean();
     String id = request.getParameter("id");
     f.setName(request.getParameter("name"));
     f.setAddr(request.getParameter("addr"));
     f.setAge(request.getParameter("age"));
     //use the id to compute
     //additional bean properties like info
     //maybe perform a db query, etc.
     // . . .

     f.setPersonalizationInfo(info);
     request.setAttribute("fBean",f);   
     getServletConfig().getServletContext().getRequestDispatcher
     ("/js/Bean1.jsp").forward(request, response);
   }
    catch (Exception ex)
    { . . .
     }
}


The JSP page Bean1.jsp can then process fBean, after first extracting it from the default request scope via the useBean action. 

jsp:useBean id="fBean" class="govi.FormBean" scope="request"/ jsp:getProperty name="fBean" property="name" / jsp:getProperty name="fBean" property="addr" / jsp:getProperty name="fBean" property="age" / jsp:getProperty name="fBean" property="personalizationInfo" /

No comments:

Post a Comment