Java Tutorial/Servlet/XML Word PDF Mp3
Содержание
Display PDF based on Request Parameter
<source lang="java">
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; import java.net.*; public class MyServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String fileName = (String) request.getParameter("file"); if (fileName == null || fileName.equals("")) throw new ServletException( "Invalid or non-existent file parameter in UrlServlet servlet."); if (fileName.indexOf(".pdf") == -1) fileName = fileName + ".pdf"; URL pdfDir = null; URLConnection urlConn = null; ServletOutputStream stream = null; BufferedInputStream buf = null; try{ pdfDir = new URL(getServletContext().getInitParameter("remote-pdf-dir") + fileName); } catch (MalformedURLException mue){ throw new ServletException(mue.getMessage()); } try{ stream = response.getOutputStream(); response.setContentType("application/pdf"); response.addHeader( "Content-Disposition","attachment; filename="+fileName ); urlConn = pdfDir.openConnection(); response.setContentLength( (int) urlConn.getContentLength() ); buf = new BufferedInputStream(urlConn.getInputStream()); int readBytes = 0; while((readBytes = buf.read()) != -1) stream.write(readBytes); } catch (IOException ioe){ throw new ServletException(ioe.getMessage()); } finally { if(stream != null) stream.close(); if(buf != null) buf.close(); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); }
}</source>
Send MP3 file back to client with Servlet
<source lang="java">
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; import java.text.DateFormat; public class MyServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String fileName = (String) request.getParameter("file"); if (fileName == null || fileName.equals("")) throw new ServletException( "Invalid or non-existent file parameter in SendMp3 servlet."); if (fileName.indexOf(".mp3") == -1) fileName = fileName + ".mp3"; String mp3Dir = getServletContext().getInitParameter("mp3-dir"); if (mp3Dir == null || mp3Dir.equals("")) throw new ServletException( "Invalid or non-existent mp3Dir context-param."); ServletOutputStream stream = null; BufferedInputStream buf = null; try{ stream = response.getOutputStream(); File mp3 = new File(mp3Dir + "/" + fileName); response.setContentType("audio/mpeg"); response.addHeader("Content-Disposition","attachment; filename="+fileName ); response.setContentLength( (int) mp3.length() ); FileInputStream input = new FileInputStream(mp3); buf = new BufferedInputStream(input); int readBytes = 0; while((readBytes = buf.read()) != -1) stream.write(readBytes); } catch (IOException ioe){ throw new ServletException(ioe.getMessage()); } finally { if(stream != null) stream.close(); if(buf != null) buf.close(); } } //end doGet public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); }
}</source>
Send Pdf to client using Servlet
<source lang="java">
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; import java.text.DateFormat; public class MyServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String fileName = (String) request.getParameter("file"); if (fileName == null || fileName.equals("")) throw new ServletException( "Invalid or non-existent file parameter in SendPdf servlet."); if (fileName.indexOf(".pdf") == -1) fileName = fileName + ".pdf"; String pdfDir = getServletContext().getInitParameter("pdf-dir"); if (pdfDir == null || pdfDir.equals("")) throw new ServletException( "Invalid or non-existent "pdf-Dir" context-param."); ServletOutputStream stream = null; BufferedInputStream buf = null; try{ stream = response.getOutputStream(); File pdf = new File(pdfDir + "/" + fileName); response.setContentType("application/pdf"); response.addHeader( "Content-Disposition","attachment; filename="+fileName ); response.setContentLength( (int) pdf.length() ); FileInputStream input = new FileInputStream(pdf); buf = new BufferedInputStream(input); int readBytes = 0; while((readBytes = buf.read()) != -1) stream.write(readBytes); } catch (IOException ioe){ throw new ServletException(ioe.getMessage()); } finally { if(stream != null) stream.close(); if(buf != null) buf.close(); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); }
}</source>
Send Word file to client in a Servlet
<source lang="java">
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; import java.text.DateFormat; public class MyServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String fileName = (String) request.getParameter("file"); if (fileName == null || fileName.equals("")) throw new ServletException( "Invalid or non-existent file parameter in SendWord servlet."); if (fileName.indexOf(".doc") == -1) fileName = fileName + ".doc"; String wordDir = getServletContext().getInitParameter("word-dir"); if (wordDir == null || wordDir.equals("")) throw new ServletException( "Invalid or non-existent wordDir context-param."); ServletOutputStream stream = null; BufferedInputStream buf = null; try{ stream = response.getOutputStream(); File doc = new File(wordDir + "/" + fileName); //set response headers response.setContentType("application/msword"); response.addHeader( "Content-Disposition","attachment; filename="+fileName ); response.setContentLength( (int) doc.length() ); FileInputStream input = new FileInputStream(doc); buf = new BufferedInputStream(input); int readBytes = 0; while((readBytes = buf.read()) != -1) stream.write(readBytes); } catch (IOException ioe){ throw new ServletException(ioe.getMessage()); } finally { if(stream != null) stream.close(); if(buf != null) buf.close(); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); }
}</source>
Send XML data to client
<source lang="java">
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; import java.net.*; public class MyServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String file = "/WEB-INF/web.xml"; URL url = null; URLConnection urlConn = null; PrintWriter out = null; BufferedInputStream buf = null; try{ out = response.getWriter(); url = getServletContext().getResource(file); response.setContentType("text/xml"); urlConn = url.openConnection(); urlConn.connect(); buf = new BufferedInputStream(urlConn.getInputStream()); int readBytes = 0; //read from the file; write to the PrintWriter while((readBytes = buf.read()) != -1) out.write(readBytes); } catch (MalformedURLException mue){ throw new ServletException(mue.getMessage()); } catch (IOException ioe){ throw new ServletException(ioe.getMessage()); } finally { if(out != null) out.close(); if(buf != null) buf.close(); } } //end doGet public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); }
}</source>
Send XML to client using Servlet
<source lang="java">
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; import java.text.DateFormat; public class MyServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String fileName = (String) request.getParameter("file"); if (fileName == null || fileName.equals("")) throw new ServletException( "Invalid or non-existent file parameter in SendXml servlet."); if (fileName.indexOf(".xml") == -1) fileName = fileName + ".xml"; String xmlDir = getServletContext().getInitParameter("xml-dir"); if (xmlDir == null || xmlDir.equals("")) throw new ServletException( "Invalid or non-existent xmlDir context-param."); ServletOutputStream stream = null; BufferedInputStream buf = null; try{ stream = response.getOutputStream(); File xml = new File(xmlDir + "/" + fileName); response.setContentType("text/xml"); response.addHeader( "Content-Disposition","attachment; filename="+fileName ); response.setContentLength( (int) xml.length() ); FileInputStream input = new FileInputStream(xml); buf = new BufferedInputStream(input); int readBytes = 0; //read from the file; write to the ServletOutputStream while((readBytes = buf.read()) != -1) stream.write(readBytes); } catch (IOException ioe){ throw new ServletException(ioe.getMessage()); } finally { if(stream != null) stream.close(); if(buf != null) buf.close(); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); }
}</source>
Use XPath in servlet
<source lang="java">
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.jdom.Document; import org.jdom.JDOMException; import org.jdom.input.SAXBuilder; import org.jdom.xpath.XPath; public class PostServlet extends HttpServlet {
private SAXBuilder builder = new SAXBuilder(); private XPath nameXPath; private XPath yearXPath; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if (!"text/xml".equals(request.getContentType())) { response.getWriter().println("Please post as text/xml."); } else { try { Document doc = builder.build(request.getReader()); StringBuffer buff = new StringBuffer(); buff.append("You searched for name "" + nameXPath.valueOf(doc) + """); String year = yearXPath.valueOf(doc); if (!"notselected".equals(year)) { buff.append(" and year "" + year + """); } buff.append("."); response.getWriter().print(buff.toString()); } catch (JDOMException e) { response.getWriter().print( "Error getting search terms: " + e.getMessage()); } } } public void init() throws ServletException { try { nameXPath = XPath.newInstance("/search/name/text()"); yearXPath = XPath.newInstance("/search/year/text()"); } catch (JDOMException e) { throw new ServletException("Unable to create XPaths", e); } super.init(); }
}</source>