title: Calling a servlet from a jsp and return back a jsp
body: <p>I tried to access a servlet from a jsp and then the code with the webservice if the array list passes as 0. It should show a image and if it passes 1 it should show a different jsp. I am able to generate the code but it is not working as expected. Can any one figure out what the problem is.</p>
  
  <p>package sal;</p>
  
  <pre><code>import java.io.File;
  import java.io.FileInputStream;
  import java.io.FileNotFoundException;
  import java.io.IOException;
  import java.io.OutputStream;
  import java.util.ArrayList;
  import java.util.List;
  
  import javax.servlet.ServletContext;
  import javax.servlet.ServletException;
  import javax.servlet.http.HttpServlet;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
  
  /**
   * Servlet implementation class Amberalerts
   */
  public class Amberalerts extends HttpServlet {
      private static final long serialVersionUID = 1L;
  
  
      public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
  
          List  list = getList();
          if(list != null &amp;&amp; list.size() != 0){
            dispatchToShowJsp(req, resp, "/ShowImage.jsp");
          }else{
              dispatchToShowJsp(req, resp, "/ShowDefaultMsg.jsp");
          }
  
          // writeImageTOBuffer(resp);
      }
      private List getList() {
          List&lt;String&gt; list = new ArrayList&lt;String&gt;();
          list.add("Result");
          return list;
      }
      private void dispatchToShowJsp(HttpServletRequest req,
              HttpServletResponse resp, String jsplocation) throws IOException {
          try {
              getServletConfig().getServletContext().getRequestDispatcher(
                      jsplocation).forward(req,resp);
          } catch (ServletException e) {
  
              e.printStackTrace();
          }
      }
      /**
       * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
       */
  
  
      private void writeImageTOBuffer(HttpServletResponse resp)
              throws FileNotFoundException, IOException {
          // Get the absolute path of the image
          ServletContext sc = getServletContext();
          String filename = sc.getRealPath("rsc/image.gif");
  
          // Get the MIME type of the image
          String mimeType = sc.getMimeType(filename);
          if (mimeType == null) {
              sc.log("Could not get MIME type of "+filename);
              resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
              return;
          }
  
          // Set content type
          resp.setContentType(mimeType);
  
          // Set content size
          File file = new File(filename);
          resp.setContentLength((int)file.length());
  
          // Open the file and output streams
          FileInputStream in = new FileInputStream(file);
          OutputStream out = resp.getOutputStream();
  
          // Copy the contents of the file to the output stream
          byte[] buf = new byte[1024];
          int count = 0;
          while ((count = in.read(buf)) &gt;= 0) {
              out.write(buf, 0, count);
          }
          in.close();
          out.close();
      }
  
  
      /**
       * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
       */
      protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          // TODO Auto-generated method stub
      }
  
  }
  </code></pre>