<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FServlet%2FXML_Word_PDF_Mp3</id>
		<title>Java Tutorial/Servlet/XML Word PDF Mp3 - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FServlet%2FXML_Word_PDF_Mp3"/>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Servlet/XML_Word_PDF_Mp3&amp;action=history"/>
		<updated>2026-04-07T22:10:36Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/Servlet/XML_Word_PDF_Mp3&amp;diff=4884&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Servlet/XML_Word_PDF_Mp3&amp;diff=4884&amp;oldid=prev"/>
				<updated>2010-06-01T05:06:49Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 05:06, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/Servlet/XML_Word_PDF_Mp3&amp;diff=4883&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Servlet/XML_Word_PDF_Mp3&amp;diff=4883&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Display PDF based on Request Parameter ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.*;&lt;br /&gt;
import javax.servlet.*;&lt;br /&gt;
import javax.servlet.http.*;&lt;br /&gt;
import java.util.*;&lt;br /&gt;
import java.net.*;&lt;br /&gt;
public class MyServlet extends HttpServlet {&lt;br /&gt;
   &lt;br /&gt;
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {&lt;br /&gt;
    &lt;br /&gt;
      String fileName = (String) request.getParameter(&amp;quot;file&amp;quot;);&lt;br /&gt;
      if (fileName == null || fileName.equals(&amp;quot;&amp;quot;))&lt;br /&gt;
           throw new ServletException(&lt;br /&gt;
            &amp;quot;Invalid or non-existent file parameter in UrlServlet servlet.&amp;quot;);&lt;br /&gt;
      &lt;br /&gt;
      if (fileName.indexOf(&amp;quot;.pdf&amp;quot;) == -1)&lt;br /&gt;
          fileName = fileName + &amp;quot;.pdf&amp;quot;;&lt;br /&gt;
        &lt;br /&gt;
      URL pdfDir = null;&lt;br /&gt;
      URLConnection urlConn = null;&lt;br /&gt;
      ServletOutputStream stream = null;&lt;br /&gt;
      BufferedInputStream buf = null;&lt;br /&gt;
     try{&lt;br /&gt;
     &lt;br /&gt;
       pdfDir = new URL(getServletContext().getInitParameter(&amp;quot;remote-pdf-dir&amp;quot;) + fileName);&lt;br /&gt;
    &lt;br /&gt;
    } catch (MalformedURLException mue){&lt;br /&gt;
    &lt;br /&gt;
           throw new ServletException(mue.getMessage());&lt;br /&gt;
   }&lt;br /&gt;
   try{&lt;br /&gt;
          &lt;br /&gt;
     stream = response.getOutputStream();&lt;br /&gt;
      response.setContentType(&amp;quot;application/pdf&amp;quot;);&lt;br /&gt;
      response.addHeader(&lt;br /&gt;
        &amp;quot;Content-Disposition&amp;quot;,&amp;quot;attachment; filename=&amp;quot;+fileName );&lt;br /&gt;
      &lt;br /&gt;
      urlConn = pdfDir.openConnection();&lt;br /&gt;
      response.setContentLength( (int) urlConn.getContentLength()  );&lt;br /&gt;
     &lt;br /&gt;
     buf = new BufferedInputStream(urlConn.getInputStream());&lt;br /&gt;
     int readBytes = 0;&lt;br /&gt;
     while((readBytes = buf.read()) != -1)&lt;br /&gt;
        stream.write(readBytes);&lt;br /&gt;
     } catch (IOException ioe){&lt;br /&gt;
     &lt;br /&gt;
        throw new ServletException(ioe.getMessage());&lt;br /&gt;
         &lt;br /&gt;
     } finally {&lt;br /&gt;
     &lt;br /&gt;
     if(stream != null)&lt;br /&gt;
         stream.close();&lt;br /&gt;
      if(buf != null)&lt;br /&gt;
          buf.close();&lt;br /&gt;
          }&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    public void doPost(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;
    throws ServletException, IOException {&lt;br /&gt;
        &lt;br /&gt;
        doGet(request,response);&lt;br /&gt;
    } &lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Send MP3 file back to client with Servlet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.*;&lt;br /&gt;
import javax.servlet.*;&lt;br /&gt;
import javax.servlet.http.*;&lt;br /&gt;
import java.util.*;&lt;br /&gt;
import java.text.DateFormat;&lt;br /&gt;
public class MyServlet extends HttpServlet {&lt;br /&gt;
   &lt;br /&gt;
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {&lt;br /&gt;
      String fileName = (String) request.getParameter(&amp;quot;file&amp;quot;);&lt;br /&gt;
      if (fileName == null || fileName.equals(&amp;quot;&amp;quot;))&lt;br /&gt;
           throw new ServletException(&lt;br /&gt;
            &amp;quot;Invalid or non-existent file parameter in SendMp3 servlet.&amp;quot;);&lt;br /&gt;
      &lt;br /&gt;
      if (fileName.indexOf(&amp;quot;.mp3&amp;quot;) == -1)&lt;br /&gt;
          fileName = fileName + &amp;quot;.mp3&amp;quot;;&lt;br /&gt;
          &lt;br /&gt;
     String mp3Dir = getServletContext().getInitParameter(&amp;quot;mp3-dir&amp;quot;);&lt;br /&gt;
     if (mp3Dir == null || mp3Dir.equals(&amp;quot;&amp;quot;))&lt;br /&gt;
           throw new ServletException(&lt;br /&gt;
             &amp;quot;Invalid or non-existent mp3Dir context-param.&amp;quot;);&lt;br /&gt;
          &lt;br /&gt;
      ServletOutputStream stream = null;&lt;br /&gt;
      BufferedInputStream buf = null;&lt;br /&gt;
      try{&lt;br /&gt;
     &lt;br /&gt;
      stream = response.getOutputStream();&lt;br /&gt;
      File mp3 = new File(mp3Dir + &amp;quot;/&amp;quot; + fileName);&lt;br /&gt;
     &lt;br /&gt;
      response.setContentType(&amp;quot;audio/mpeg&amp;quot;);&lt;br /&gt;
      &lt;br /&gt;
      response.addHeader(&amp;quot;Content-Disposition&amp;quot;,&amp;quot;attachment; filename=&amp;quot;+fileName );&lt;br /&gt;
      response.setContentLength( (int) mp3.length() );&lt;br /&gt;
      &lt;br /&gt;
      FileInputStream input = new FileInputStream(mp3);&lt;br /&gt;
      buf = new BufferedInputStream(input);&lt;br /&gt;
      int readBytes = 0;&lt;br /&gt;
      while((readBytes = buf.read()) != -1)&lt;br /&gt;
         stream.write(readBytes);&lt;br /&gt;
     } catch (IOException ioe){&lt;br /&gt;
     &lt;br /&gt;
        throw new ServletException(ioe.getMessage());&lt;br /&gt;
         &lt;br /&gt;
     } finally {&lt;br /&gt;
     if(stream != null)&lt;br /&gt;
         stream.close();&lt;br /&gt;
      if(buf != null)&lt;br /&gt;
          buf.close();&lt;br /&gt;
          }&lt;br /&gt;
    &lt;br /&gt;
    } //end doGet&lt;br /&gt;
   &lt;br /&gt;
    public void doPost(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;
    throws ServletException, IOException {&lt;br /&gt;
        &lt;br /&gt;
        doGet(request,response);&lt;br /&gt;
    } &lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Send Pdf to client using Servlet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.*;&lt;br /&gt;
import javax.servlet.*;&lt;br /&gt;
import javax.servlet.http.*;&lt;br /&gt;
import java.util.*;&lt;br /&gt;
import java.text.DateFormat;&lt;br /&gt;
public class MyServlet extends HttpServlet {&lt;br /&gt;
   &lt;br /&gt;
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {&lt;br /&gt;
    &lt;br /&gt;
      String fileName = (String) request.getParameter(&amp;quot;file&amp;quot;);&lt;br /&gt;
      if (fileName == null || fileName.equals(&amp;quot;&amp;quot;))&lt;br /&gt;
           throw new ServletException(&lt;br /&gt;
            &amp;quot;Invalid or non-existent file parameter in SendPdf servlet.&amp;quot;);&lt;br /&gt;
      &lt;br /&gt;
      if (fileName.indexOf(&amp;quot;.pdf&amp;quot;) == -1)&lt;br /&gt;
          fileName = fileName + &amp;quot;.pdf&amp;quot;;&lt;br /&gt;
          &lt;br /&gt;
     String pdfDir = getServletContext().getInitParameter(&amp;quot;pdf-dir&amp;quot;);&lt;br /&gt;
     if (pdfDir == null || pdfDir.equals(&amp;quot;&amp;quot;))&lt;br /&gt;
           throw new ServletException(&lt;br /&gt;
             &amp;quot;Invalid or non-existent &amp;quot;pdf-Dir&amp;quot; context-param.&amp;quot;);&lt;br /&gt;
          &lt;br /&gt;
      ServletOutputStream stream = null;&lt;br /&gt;
      BufferedInputStream buf = null;&lt;br /&gt;
     try{&lt;br /&gt;
     &lt;br /&gt;
     stream = response.getOutputStream();&lt;br /&gt;
     File pdf = new File(pdfDir + &amp;quot;/&amp;quot; + fileName);&lt;br /&gt;
     &lt;br /&gt;
      response.setContentType(&amp;quot;application/pdf&amp;quot;);&lt;br /&gt;
      &lt;br /&gt;
      response.addHeader(&lt;br /&gt;
        &amp;quot;Content-Disposition&amp;quot;,&amp;quot;attachment; filename=&amp;quot;+fileName );&lt;br /&gt;
      response.setContentLength( (int) pdf.length() );&lt;br /&gt;
      &lt;br /&gt;
     FileInputStream input = new FileInputStream(pdf);&lt;br /&gt;
     buf = new BufferedInputStream(input);&lt;br /&gt;
     int readBytes = 0;&lt;br /&gt;
     while((readBytes = buf.read()) != -1)&lt;br /&gt;
        stream.write(readBytes);&lt;br /&gt;
     } catch (IOException ioe){&lt;br /&gt;
     &lt;br /&gt;
        throw new ServletException(ioe.getMessage());&lt;br /&gt;
         &lt;br /&gt;
     } finally {&lt;br /&gt;
   &lt;br /&gt;
   if(stream != null)&lt;br /&gt;
       stream.close();&lt;br /&gt;
    if(buf != null)&lt;br /&gt;
          buf.close();&lt;br /&gt;
      }&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    public void doPost(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;
    throws ServletException, IOException {&lt;br /&gt;
  &lt;br /&gt;
  doGet(request,response);&lt;br /&gt;
  &lt;br /&gt;
    } &lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Send Word file to client in a Servlet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.*;&lt;br /&gt;
import javax.servlet.*;&lt;br /&gt;
import javax.servlet.http.*;&lt;br /&gt;
import java.util.*;&lt;br /&gt;
import java.text.DateFormat;&lt;br /&gt;
public class MyServlet extends HttpServlet {&lt;br /&gt;
   &lt;br /&gt;
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {&lt;br /&gt;
      String fileName = (String) request.getParameter(&amp;quot;file&amp;quot;);&lt;br /&gt;
      if (fileName == null || fileName.equals(&amp;quot;&amp;quot;))&lt;br /&gt;
           throw new ServletException(&lt;br /&gt;
            &amp;quot;Invalid or non-existent file parameter in SendWord servlet.&amp;quot;);&lt;br /&gt;
      &lt;br /&gt;
      if (fileName.indexOf(&amp;quot;.doc&amp;quot;) == -1)&lt;br /&gt;
          fileName = fileName + &amp;quot;.doc&amp;quot;;&lt;br /&gt;
          &lt;br /&gt;
     String wordDir = getServletContext().getInitParameter(&amp;quot;word-dir&amp;quot;);&lt;br /&gt;
     if (wordDir == null || wordDir.equals(&amp;quot;&amp;quot;))&lt;br /&gt;
           throw new ServletException(&lt;br /&gt;
             &amp;quot;Invalid or non-existent wordDir context-param.&amp;quot;);&lt;br /&gt;
          &lt;br /&gt;
      ServletOutputStream stream = null;&lt;br /&gt;
      BufferedInputStream buf = null;&lt;br /&gt;
     try{&lt;br /&gt;
     &lt;br /&gt;
     stream = response.getOutputStream();&lt;br /&gt;
     File doc = new File(wordDir + &amp;quot;/&amp;quot; + fileName);&lt;br /&gt;
     &lt;br /&gt;
      //set response headers&lt;br /&gt;
      response.setContentType(&amp;quot;application/msword&amp;quot;);&lt;br /&gt;
      &lt;br /&gt;
      response.addHeader(&lt;br /&gt;
        &amp;quot;Content-Disposition&amp;quot;,&amp;quot;attachment; filename=&amp;quot;+fileName );&lt;br /&gt;
      response.setContentLength( (int) doc.length() );&lt;br /&gt;
      &lt;br /&gt;
     FileInputStream input = new FileInputStream(doc);&lt;br /&gt;
     buf = new BufferedInputStream(input);&lt;br /&gt;
     int readBytes = 0;&lt;br /&gt;
     while((readBytes = buf.read()) != -1)&lt;br /&gt;
        stream.write(readBytes);&lt;br /&gt;
     } catch (IOException ioe){&lt;br /&gt;
     &lt;br /&gt;
        throw new ServletException(ioe.getMessage());&lt;br /&gt;
         &lt;br /&gt;
     } finally {&lt;br /&gt;
     &lt;br /&gt;
     if(stream != null)&lt;br /&gt;
         stream.close();&lt;br /&gt;
      if(buf != null)&lt;br /&gt;
          buf.close();&lt;br /&gt;
          }&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    public void doPost(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;
    throws ServletException, IOException {&lt;br /&gt;
        &lt;br /&gt;
        doGet(request,response);&lt;br /&gt;
    } &lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Send XML data to client ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.*;&lt;br /&gt;
import javax.servlet.*;&lt;br /&gt;
import javax.servlet.http.*;&lt;br /&gt;
import java.util.*;&lt;br /&gt;
import java.net.*;&lt;br /&gt;
public class MyServlet extends HttpServlet {&lt;br /&gt;
   &lt;br /&gt;
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {&lt;br /&gt;
    &lt;br /&gt;
      String file = &amp;quot;/WEB-INF/web.xml&amp;quot;;&lt;br /&gt;
     &lt;br /&gt;
      URL url = null;&lt;br /&gt;
      URLConnection urlConn = null;  &lt;br /&gt;
      PrintWriter out = null;&lt;br /&gt;
      BufferedInputStream buf = null;&lt;br /&gt;
     try{&lt;br /&gt;
     out = response.getWriter();&lt;br /&gt;
     url = getServletContext().getResource(file);&lt;br /&gt;
      response.setContentType(&amp;quot;text/xml&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
      urlConn = url.openConnection();&lt;br /&gt;
     urlConn.connect();&lt;br /&gt;
     buf = new BufferedInputStream(urlConn.getInputStream());&lt;br /&gt;
     int readBytes = 0;&lt;br /&gt;
     //read from the file; write to the PrintWriter&lt;br /&gt;
     while((readBytes = buf.read()) != -1)&lt;br /&gt;
        out.write(readBytes);&lt;br /&gt;
     } catch (MalformedURLException mue){&lt;br /&gt;
    &lt;br /&gt;
           throw new ServletException(mue.getMessage());&lt;br /&gt;
           &lt;br /&gt;
     } catch (IOException ioe){&lt;br /&gt;
     &lt;br /&gt;
        throw new ServletException(ioe.getMessage());&lt;br /&gt;
         &lt;br /&gt;
     } finally {&lt;br /&gt;
     &lt;br /&gt;
     if(out != null)&lt;br /&gt;
         out.close();&lt;br /&gt;
      if(buf != null)&lt;br /&gt;
          buf.close();&lt;br /&gt;
          }&lt;br /&gt;
    &lt;br /&gt;
    } //end doGet&lt;br /&gt;
   &lt;br /&gt;
    public void doPost(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;
    throws ServletException, IOException {&lt;br /&gt;
        &lt;br /&gt;
        doGet(request,response);&lt;br /&gt;
    } &lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Send XML to client using Servlet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.*;&lt;br /&gt;
import javax.servlet.*;&lt;br /&gt;
import javax.servlet.http.*;&lt;br /&gt;
import java.util.*;&lt;br /&gt;
import java.text.DateFormat;&lt;br /&gt;
public class MyServlet extends HttpServlet {&lt;br /&gt;
   &lt;br /&gt;
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {&lt;br /&gt;
    &lt;br /&gt;
      String fileName = (String) request.getParameter(&amp;quot;file&amp;quot;);&lt;br /&gt;
      if (fileName == null || fileName.equals(&amp;quot;&amp;quot;))&lt;br /&gt;
           throw new ServletException(&lt;br /&gt;
            &amp;quot;Invalid or non-existent file parameter in SendXml servlet.&amp;quot;);&lt;br /&gt;
      &lt;br /&gt;
      if (fileName.indexOf(&amp;quot;.xml&amp;quot;) == -1)&lt;br /&gt;
          fileName = fileName + &amp;quot;.xml&amp;quot;;&lt;br /&gt;
          &lt;br /&gt;
     String xmlDir = getServletContext().getInitParameter(&amp;quot;xml-dir&amp;quot;);&lt;br /&gt;
     if (xmlDir == null || xmlDir.equals(&amp;quot;&amp;quot;))&lt;br /&gt;
           throw new ServletException(&lt;br /&gt;
             &amp;quot;Invalid or non-existent xmlDir context-param.&amp;quot;);&lt;br /&gt;
          &lt;br /&gt;
      ServletOutputStream stream = null;&lt;br /&gt;
      BufferedInputStream buf = null;&lt;br /&gt;
     try{&lt;br /&gt;
     &lt;br /&gt;
     stream = response.getOutputStream();&lt;br /&gt;
     File xml = new File(xmlDir + &amp;quot;/&amp;quot; + fileName);&lt;br /&gt;
     &lt;br /&gt;
      response.setContentType(&amp;quot;text/xml&amp;quot;);&lt;br /&gt;
      &lt;br /&gt;
      response.addHeader(&lt;br /&gt;
        &amp;quot;Content-Disposition&amp;quot;,&amp;quot;attachment; filename=&amp;quot;+fileName );&lt;br /&gt;
      response.setContentLength( (int) xml.length() );&lt;br /&gt;
      &lt;br /&gt;
     FileInputStream input = new FileInputStream(xml);&lt;br /&gt;
     buf = new BufferedInputStream(input);&lt;br /&gt;
     int readBytes = 0;&lt;br /&gt;
     //read from the file; write to the ServletOutputStream&lt;br /&gt;
     while((readBytes = buf.read()) != -1)&lt;br /&gt;
        stream.write(readBytes);&lt;br /&gt;
     } catch (IOException ioe){&lt;br /&gt;
     &lt;br /&gt;
        throw new ServletException(ioe.getMessage());&lt;br /&gt;
         &lt;br /&gt;
     } finally {&lt;br /&gt;
     &lt;br /&gt;
     if(stream != null)&lt;br /&gt;
         stream.close();&lt;br /&gt;
      if(buf != null)&lt;br /&gt;
          buf.close();&lt;br /&gt;
          }&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    public void doPost(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;
    throws ServletException, IOException {&lt;br /&gt;
        &lt;br /&gt;
        doGet(request,response);&lt;br /&gt;
    } &lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Use XPath in servlet ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import javax.servlet.ServletException;&lt;br /&gt;
import javax.servlet.http.HttpServlet;&lt;br /&gt;
import javax.servlet.http.HttpServletRequest;&lt;br /&gt;
import javax.servlet.http.HttpServletResponse;&lt;br /&gt;
import org.jdom.Document;&lt;br /&gt;
import org.jdom.JDOMException;&lt;br /&gt;
import org.jdom.input.SAXBuilder;&lt;br /&gt;
import org.jdom.xpath.XPath;&lt;br /&gt;
public class PostServlet extends HttpServlet {&lt;br /&gt;
    private SAXBuilder builder = new SAXBuilder();&lt;br /&gt;
    private XPath nameXPath;&lt;br /&gt;
    private XPath yearXPath;&lt;br /&gt;
    protected void doPost(HttpServletRequest request,&lt;br /&gt;
            HttpServletResponse response) throws ServletException, IOException {&lt;br /&gt;
        if (!&amp;quot;text/xml&amp;quot;.equals(request.getContentType())) {&lt;br /&gt;
            response.getWriter().println(&amp;quot;Please post as text/xml.&amp;quot;);&lt;br /&gt;
        } else {&lt;br /&gt;
            try {&lt;br /&gt;
                Document doc = builder.build(request.getReader());&lt;br /&gt;
                StringBuffer buff = new StringBuffer();&lt;br /&gt;
                buff.append(&amp;quot;You searched for name &amp;quot;&amp;quot; + nameXPath.valueOf(doc)&lt;br /&gt;
                        + &amp;quot;&amp;quot;&amp;quot;);&lt;br /&gt;
                String year = yearXPath.valueOf(doc);&lt;br /&gt;
                if (!&amp;quot;notselected&amp;quot;.equals(year)) {&lt;br /&gt;
                    buff.append(&amp;quot; and year &amp;quot;&amp;quot; + year + &amp;quot;&amp;quot;&amp;quot;);&lt;br /&gt;
                }&lt;br /&gt;
                buff.append(&amp;quot;.&amp;quot;);&lt;br /&gt;
                response.getWriter().print(buff.toString());&lt;br /&gt;
            } catch (JDOMException e) {&lt;br /&gt;
                response.getWriter().print(&lt;br /&gt;
                        &amp;quot;Error getting search terms: &amp;quot; + e.getMessage());&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    public void init() throws ServletException {&lt;br /&gt;
        try {&lt;br /&gt;
            nameXPath = XPath.newInstance(&amp;quot;/search/name/text()&amp;quot;);&lt;br /&gt;
            yearXPath = XPath.newInstance(&amp;quot;/search/year/text()&amp;quot;);&lt;br /&gt;
        } catch (JDOMException e) {&lt;br /&gt;
            throw new ServletException(&amp;quot;Unable to create XPaths&amp;quot;, e);&lt;br /&gt;
        }&lt;br /&gt;
        super.init();&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>