论坛登陆 用户名:  密 码:
设为首页  加入收藏
08年北京名校秋季招生
名牌院校免试入学宽进严出,突破考分限制,名校与你零距离,以下院校按报名先后顺序录取,24小时网上报名覆盖全国
  您现在的位置: 中国教育招生在线 >> IT >> JAVA认证 >> IT正文
教您如何用Struts向数据库中储存图片
 作者:佚名     2007-3-14 17:30:46        来源:不详  浏览次数:

 

 

 

 

 

 

 

 

这个例子是通过用Struts的FormFile来写入到MySQL中。用用户通过选一个图片,然后按submit就可以存入数据库中,其中先要建立一个表:

create table test 
( name varchar(20), 
pic blob );
在MySQL的test库中

<%@ page language="java"%>
<%@ taglib uri=
"http://jakarta.apache.org/struts/tags-bean"
prefix="bean"%> 
<%@ taglib uri=
"http://jakarta.apache.org/struts/tags-html"
prefix="html"%>
 
<html> 
 <head>
  <title>JSP for multiForm form</title>
 </head>
 <body>
  <html:form action="/multi"
  enctype="multipart/form-data">
  一定要用enctype=“multipart/form-data“
  不然就提交之后就会有抛出异常
   file : <html:file property="file"/>
   <html:errors property="file"/></br>
   name : <html:text property="name"/>
   <html:errors property="name"/></br>
   <html:submit/><html:cancel/>
  </html:form>
 </body>
</html>

2. 相对应的ActionForm:

//Created by MyEclipse Struts
// XSL source (default): 
platform:/plugin/com.genuitec.eclipse.
cross.easystruts.eclipse_3.8.1
/xslt/JavaClass.xsl

package saoo.struts.form;

import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;

/** 
 * MyEclipse Struts
 * Creation date: 08-24-2004
 * 
 * XDoclet definition:
 * @struts:form name="multiForm"
 */
public class MultiForm extends ActionForm 
{

    // ----------------
 Instance Variables

    /** file property */
    private FormFile file;

    /** name property */
    private String name;

    // -----------------
Methods

    /** 
     * Returns the file.
     * @return FormFile
     */
    public FormFile getFile() 
	{
        return file;
    }

    /** 
     * Set the file.
     * @param file The file to set
     */
    public void setFile(FormFile file) 
	{
        this.file = file;
    }

    /** 
     * Returns the name.
     * @return String
     */
    public String getName()
	{
        return name;
    }

    /** 
     * Set the name.
     * @param name The name to set
     */
    public void setName(String name)
	{
        this.name = name;
    }
}

3. 对就的Action:

//Created by MyEclipse Struts
// XSL source (default): 
platform:/plugin/com.genuitec.eclipse.
cross.easystruts.eclipse_3.8.1
/xslt/JavaClass.xsl

package saoo.struts.action;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;

import saoo.struts.form.MultiForm;

/** 
 * MyEclipse Struts
 * Creation date: 08-24-2004
 * 
 * XDoclet definition:
 * @struts:action path="/multi"
 name="multiForm" input="/form/multi.jsp" 
 scope="request"
 */
public class MultiAction extends Action
{

    // ---------------
 Instance Variables

    // ---------------
 Methods

    /** 
     * Method execute
     * @param mapping
     * @param form
     * @param request
     * @param response
     * @return ActionForward
     */
    public ActionForward execute(
        ActionMapping mapping,
        ActionForm form,
        HttpServletRequest request,
        HttpServletResponse response) 
		{
        MultiForm multiForm = (MultiForm)
		form;
        FormFile file = multiForm.getFile();

        String name = multiForm.getName();
        try {
            Class.forName
			("org.gjt.mm.mysql.Driver"); 
            String url="jdbc:mysql:
			///test"; 
            Connection con=DriverManager.getConnection
			(url,"root","password"); 
            String sql="insert into pic values (?,?)"; 
            PreparedStatement ps
			=con.prepareStatement(sql); 
            ps.setString(1, name);
//加入图片到数据库
    
ps.setBinaryStream
(2,file.getInputStream(),
file.getFileSize());
            ps.executeUpdate(); 
            ps.close(); 
            con.close(); 
        } catch (SQLException se) 
		{
            se.printStackTrace();
            return mapping.findForward("error");
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return mapping.findForward("error");
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return mapping.findForward("error");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return mapping.findForward("error");
        }
        return mapping.findForward("success");
    }
}

(T117)


责任编辑:lss
  相关新闻
如何30天突破三级网络?
如何应付新大纲二级考试的公共基础知识
以二级C语言为例分析如何准备计算机考试
我该如何报考软件水平资格考试?
如何顺利通过这次考试:计算机二级考试备考秘诀
如何准备计算机等级考试,基础教程网
名师访谈:如何应对二级C语言笔试考题
中小企业如何有效架设邮件服务系统(图)
如何有效管理Exchange的数据管理
名师谈如何复习并通过软考开发类考试
如何准备计算机等级考试,基础教程网
如何30天突破三级网络?
以二级C语言为例分析如何准备计算机考试
如何应付新大纲二级考试的公共基础知识
名师访谈:如何应对二级C语言笔试考题
名师访谈实录:二级公共基础部分如何准备
专家谈如何准备二级VFP上机考试
2006年4月计算机等级考试应如何备考
如何顺利通过这次考试:计算机二级考试备考秘诀
我该如何报考软件水平资格考试?
  评论
现在有100人对本文发表评论
查看所有评论
 
推  荐
 
100本成功必读热销书
热门招生
  北京文理研修学院   前进大学
  北京明园大学   北京建设大学
  北京邮电大学世纪学院   北方工商管理学院
  联想软件定向委培班   香港数码动画学院
  青年企业管理研修学院   北京华夏管理学院
热门培训
网络化办公专家培训认证 电子科技大学软件学院
软件测试工程师培训认证 北大青鸟十大授权培训
IT硬件工程师培训认证班 北京环球雅思荷兰预科
JAVA开发工程师培训 潜能时代IT服务管理培训
网络信息化工程师培训 清华大学继续教育学院
论坛精选
 
有些细节是男人也该注意的风度!最容易读错的字
某强人手机里保存的30条短信 中国十大高薪职业
最感人的十大韩剧经典台词 嫁给工程师的N个理由
爆强!只有一句话的鬼故事 转贴教你如何做妖精
 女人一定要記住的話 女人最好别嫁给最爱的男人
城市联盟
 大连 上海 天津 广州 西安 深圳  天津  青岛  大连  福州  沈阳  青海  连云港  南京  吉林  厦门  威海  辽宁  呼和浩特
Copyright © 2006   www.edu999.com   All rights reserved. 中国教育招生在线  版权所有
北京市通信管理局[2004]字第552号函    京ICP证040442号