jsp把图象保存到Oracle数据库中并读出直接显示到Jsp页面

jsp教程把图象保存到Oracle数据库教程中并读出直接显示到Jsp页面
结合后的图像数据,并在调用的网页上显示出图文结合后的图像(注:该servlet仅实现了JPG格式图像文件的处理,不支持GIF):  
package   net.xdevelop.merge;

import   javax.servlet.*;
import   javax.servlet.http.*;
import   java.io.*;
import   java.util.*;

import   java.awt.*;
import   java.awt.image.*;
import   com.sun.image.codec.jpeg.*;
import   net.xdevelop.util.ParamUtil;

/**
  *   将文字用指定的字体,颜色和大小,嵌入指定图片的指定位置,调用参数:
  *   text:        要嵌的文字
  *   imageFile:    JPG图片的虚拟路径
  *   x:        文字输出的起始X坐标位置
  *   y:        文字输出的起始Y坐标位置
  *   fontColor:    字体颜色(例fontColor=FFFFFF)
  *   fontSize:    字体大小
  *   fontStyle:    字体风格(斜体,粗体等)
  *   fontName:    字体名称(如仿宋体,宋体等)
  */
public   class   TextIntoImage   extends   HttpServlet   {
        private   static   final   String   CONTENT_TYPE   =   "image/jpeg;charset=GB2312 ";

        public   void   init()   throws   ServletException   {
        }
        /**   Process   the   HTTP   Get   request   */
        public   void   doGet(HttpServletRequest   request,   HttpServletResponse   response)
                throws   ServletException,   IOException   {

                doPost(request,response);

        }
        //---------------------------------------------------------------------------------------------
        /**   Process   the   HTTP   Post   request   */
        public   void   doPost(HttpServletRequest   request,   HttpServletResponse   response)
                throws   ServletException,   IOException   {

                response.setContentType(CONTENT_TYPE);

                String   text   =   " ";                               //要嵌的文字
                String   imageFile   =   " ";                     //被嵌的图片的虚拟路径
                int   x   =   0;                                             //坐标
                int   y   =   0;
                String   fontColor   =   " ";                     //字体颜色
                int   fontSize   =   0;                               //字体大小
                String   fontStyle   =   " ";                     //字体风格(斜体,粗体等)
                String   fontName   =   " ";                       //字体名称

                try   {
                        //取得参数(ParamUtil类请参看后面附的ParamUtil类代码)
                        text   =   ParamUtil.getParameter(request, "text ");
                        imageFile   =   ParamUtil.getParameter(request, "imageFile ");
                        x   =   ParamUtil.getIntParameter(request, "x ",0);
                        y   =   ParamUtil.getIntParameter(request, "y ",0);
                        fontColor   =   ParamUtil.getParameter(request, "fontColor ");
                        fontSize   =   ParamUtil.getIntParameter(request, "fontSize ",16);
                        fontStyle   =   ParamUtil.getParameter(request, "fontStyle ");
                        fontName   =   ParamUtil.getParameter(request, "fontName ");
                }
                catch(Exception   e)   {
                        e.printStackTrace();
                }

                ServletOutputStream   output=response.getOutputStream();

                if(imageFile.toLowerCase().endsWith( ".jpeg ")||imageFile.toLowerCase().endsWith( ".jpg "))   {
                        imageFile   =   getServletContext().getRealPath(imageFile);
                        InputStream   imageIn   =   new   FileInputStream(new   File(imageFile));
                        JPEGImageDecoder   decoder   =   JPEGCodec.createJPEGDecoder(imageIn);
                        BufferedImage   image   =   decoder.decodeAsBufferedImage();
                        Graphics   g=image.getGraphics();

                        //设置颜色
                        g.setColor(new   Color(Integer.parseInt(fontColor,16)));

                        //设置字体
                        Font   mFont   =   new   Font(fontName,Font.PLAIN,fontSize);//默认字体
                        if(fontStyle.equalsIgnoreCase( "italic "))   mFont=new   Font(fontName,Font.ITALIC,fontSize);
                        if(fontStyle.equalsIgnoreCase( "bold "))   mFont=new   Font(fontName,Font.BOLD,fontSize);
                        if(fontStyle.equalsIgnoreCase( "plain "))   mFont=new   Font(fontName,Font.PLAIN,fontSize);
                        g.setFont(mFont);

                        //输出文字
                        g.drawString(text,x,y);

                        //输出数据流
                        JPEGImageEncoder   encoder   =   JPEGCodec.createJPEGEncoder(output);
                        encoder.encode(image);

                        imageIn.close();
                }
                output.close();
        }
}//////////

 

上面获取参数的代码使用了一个工具类,它是扩展了request.getParameter()功能的一个类:package   net.xdevelop.util;  
import   javax.servlet.*;

public   class   ParamUtil   {
    /**
      *   获得request中指定名称的参数值,若有中文乱码问题请增加转码部分
      *   @param   request   ServletRequest对象
      *   @param   paramName   参数名称
      *   @return   如果该变量值存在则返回该值,否则返回 " "
      */
    public   static   String   getParameter(   ServletRequest   request,   String   paramName   )   {
        String   temp   =   request.getParameter(paramName);
        if(   temp   !=   null   &&   !temp.equals( " ")   )   {
                //若有中文问题,在此添加转码代码,例:temp   =   new   String(temp.getBytes( "8859_1 "),   "GB2312 ");
                return   temp;
        }
        else   {
            return   " ";
        }
    }

    /**
      *   获得request中的int型参数值
      *   @param   request   ServletRequest对象
      *   @param   paramName   参数名称
      *   @param   defaultNum   默认值,如果没有返回该值
      *   @return   如果该参数值存在则返回其转换为int型的值,否则返回defaultNum
      */
    public   static   int   getIntParameter(   ServletRequest   request,   String   paramName,   int   defaultNum   )   {
        String   temp   =   request.getParameter(paramName);
        if(   temp   !=   null   &response.setContentType( "iamge/jpg ");
ServletOutputStream   sos   =   response.getOutputStream();
ResultSet   rs   =   stmt.executeQuery( "select   imagefield   from   t ");
while(rs.next()){
      InputStream   is   =   rs.getBinaryStream( "imagefield ");
      byte[]   b   =   new   byte[128];
      int   l;
      while((l   =   is.read(b))> -1){
            sos.write(b,0,l);
      }
}
  %>

时间: 2024-09-30 18:30:19

jsp把图象保存到Oracle数据库中并读出直接显示到Jsp页面的相关文章

oracle-如何在jsp中显示保存在Oracle数据库中的图片

问题描述 如何在jsp中显示保存在Oracle数据库中的图片 把图片文件上传时,保存了图片的路径,之后想在另一个页面把图片显示出来, 总是显示不出来,而且不报错, 解决方案 路径的问题,在浏览器上访问以下你所保存的路径,看看在浏览器上能不能正确显示目标图片,如果不能说明路径有问题

用java实现 把一个文件保存到oracle数据库表中

问题描述 如何把一个文件保存到oracle数据库表中 用java实现 解决方案 public class InsertBlobData {Connection con = null;/** * @param args * @throws Exception */public static void main(String[] args) throws Exception {// TODO Auto-generated method stubInsertBlobData data = new In

c#-如何把datagridview中的数据保存到SQL数据库中?VB.NET或C#

问题描述 如何把datagridview中的数据保存到SQL数据库中?VB.NET或C# 如下图:已经实现从EXCEL导入数据到Datagridview中,现在要把其中的数据保存到数据库的AAAie表里面.请用代码说明,谢谢. 解决方案 取数据用ado.net保存到SQL Server数据库.http://blog.csdn.net/lysc_forever/article/details/7697536 解决方案二: 方法1.创建一个数据库,表,表名自取,表的字段和Excel相同,取Excel

kindeditor sql-如何将kindeditor中的数据保存到SQL数据库中

问题描述 如何将kindeditor中的数据保存到SQL数据库中 主要就是我从数据库中读取了数据,然后显示在页面上.然后我在页面上通过kindeditor修改了那些数据.要怎么再保存进SQL数据库 解决方案 直接关闭即可以保存内容

php怎么把session保存到MySql数据库中

php中session默认的存储方式是硬盘,php也可以改变默认的存储方式. 主要使用到session_set_save_handler方法,下面分享下如何将session保存到MySql数据库中的具体代码. 1.建session表  代码如下 复制代码 CREATE TABLE `session` (   `sessionid` varchar(128) NOT NULL,   `uid` int(11) NOT NULL,   `data` mediumblob NOT NULL,   `t

哪位大神可以帮我写下在Oracle数据库中查询出来的数据在jsp页面中进行分页显示,我已经能显示了,但是没有分页,直接改我的代码,我初学,没做过分页

问题描述 这是JSP页面代码:<%@pagelanguage="java"contentType="text/html;charset=gbk"pageEncoding="GBk"%><%@pageimport="com.etc.sky.entity.Record"%><%@pageimport="java.util.*"%><!DOCTYPEHTMLPUBLIC&

php中把session保存到MySQL数据库中示例

PHP保存session默认的是采用的文件的方式来保存的,这仅仅在文件的空间开销很小的windows上是可以采用的,但是如果我们采用uinx或者是liux上的文件系统的时候,这样的文件系统的文件空间开销是很大的,然而session是要时时刻刻的使用的,大量的用户就要创建很多的session文件,这样对整个的服务器带来性能问题. 另一方面,如果服务器起采用群集的方式的话就不能保持session的一致性,所以我们就绪要采用数据库的方式来保存session,这样,不管有几台服务器同时使用,只要把他们的

图片-通过jsp页面上传图,路径保存到oracle中,怎么能在上传的时候把文件的名字改成自己想要的

问题描述 通过jsp页面上传图,路径保存到oracle中,怎么能在上传的时候把文件的名字改成自己想要的 图片保存到磁盘后,当我想换掉这个图片时,用什么方法可以用新的图片覆盖掉老图片 解决方案 一般存路径就是文件改过名字的路径,再次保存新图片,取得原来的路径删除呗,然后在存 解决方案二: 上传的时候重命名同时将文件路径的信息保存到数据库. 硬盘保存文件 . 解决方案三: 用文件流写文件的时候路径不就是名字 解决方案四: 上传的时候用自己想要的名字存在服务器上就行了

jsp+表单+sql-jsp中在页面上填写的表单信息,怎么保存到SQL数据库

问题描述 jsp中在页面上填写的表单信息,怎么保存到SQL数据库 我写了一个填写表单的界面,提交后,另一个页面的表格可以获取到相应的数据.但是,我不知道该怎么把 数据保存到数据库中.用了 String sql1 = "insert into LeaveList(country,profession,classes,studentId,name,contact,startdate,enddate,teacher) values ('"+country+"','"+pr