Sunday, September 18, 2011

Java Interview Questions - 77

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
        ("/jsp/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: