📄 metadataservlet.java
字号:
/* * MetadataServlet.java * * Created on 2007-11-4, 21:18:33 * * To change this template, choose Tools | Templates * and open the template in the editor. */package com.s7turn.jaas.webapps;import com.s7turn.sdk.content.Metadata;import com.s7turn.sdk.content.MetadataFactory;import com.s7turn.sdk.content.MetadataProvider;import com.s7turn.sdk.utils.ImageUtils;import java.io.*;import java.net.*;import javax.servlet.*;import javax.servlet.http.*;/** * * @author Long */public class MetadataServlet extends HttpServlet { /** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods. * @param request servlet request * @param response servlet response */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String mid = request.getParameter("mid"); String md5 = request.getParameter("md5"); String thumb = request.getParameter( "thumb" ); String metadataFactory = this.getInitParameter( "com.s7turn.metadataFactory" ); int bufferSize = 0; String strBffSz = this.getInitParameter("com.s7turn.bufferSize"); if( strBffSz != null && strBffSz.trim().length() > 0 ) { bufferSize = Integer.parseInt( strBffSz ); } else { bufferSize = 4096; } MetadataFactory factory = MetadataFactory.createInstance( metadataFactory ); MetadataProvider provider = factory.createProvider(); Metadata meta = null; if( mid == null || mid.trim().length() == 0 ) { meta = provider.getMetadata(md5); } else { meta = provider.getMetadata( Long.parseLong ( mid ) ); } if( meta == null ) { ////generate 404 error. ServletException se = new ServletException(); throw new ServletException(); } response.reset(); response.setContentType( meta.getMetaType() + "; charset=utf-8" ); ServletOutputStream output = response.getOutputStream(); byte[] buffer = meta.getContent(); ///InputStream input = meta.getContent(); try { ////Check the thumb option. if( isImage( meta ) && (thumb != null && thumb.trim().length() > 0) ) { thumb = thumb.trim().toLowerCase(); String[] splitedDimon = thumb.split("x"); int width = 320; int height = 320; try{ width = Integer.parseInt( splitedDimon[0] ); } catch(Exception ex){} try{ height = Integer.parseInt( splitedDimon[1] ); } catch(Exception ex){} ImageUtils.resizeImage(buffer, width, height, output); } else { output.write( buffer, 0, buffer.length ); } }catch(Exception ex){ throw new ServletException( ex.getMessage(), ex ); } finally { output.flush(); } } public boolean isImage( Metadata meta ) { if( meta == null ) return false; return meta.getMetaType().startsWith("image/"); } // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> /** * Handles the HTTP <code>GET</code> method. * @param request servlet request * @param response servlet response */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Handles the HTTP <code>POST</code> method. * @param request servlet request * @param response servlet response */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Returns a short description of the servlet. */ public String getServletInfo() { return "Nible Metadata Stream servlet that provides for downloading the content from server."; } // </editor-fold>}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -