【转】JspSmartUpload组件的使用说明

转自 http://blog.csdn.net/shijiebei2009/article/details/8972675

JspSmartUpload是一个小巧简便的实现上传下载功能的组件,在表单中提交图片的时候,有以下注意点:

①表单设置:method="post" enctype="multiply/form-data"

②在Servlet中如果想要取得文本框提交的内容,不能使用request.getParameter(),因为这种提交方式是以二进制进提交的,所以使用以前的取值方法取到的都是null,这时候要使用 new SmartUpload.getRequest().getParameter("name");进行取值。

③在调用SmartUpload取值方法之前,一定先初始化上下文mySmartUpload.initialize(pageContext);,并要先调用upload()方法。

④我的处理上传图片是作为一个单独的类,这时候需要在类里面获取servlet、request、response、pageContext对象,而前三个参数都可以由Servlet在方法中通过参数传递过来,pageContext需要使用这种方法获取:

JspFactory jspFactory = JspFactory.getDefaultFactory();//取得JSP工厂类

//此处request、response由servlet中传递过来

PageContext pageContext = jspFactory.getPageContext(servlet,request,response,"",true,8192,true);//通过Jsp工厂类获取上下文环境

⑤中文乱码问题:如果文本框传递的是中文的话,那么需要使用这种方法:new String(new SmartUpload.getRequest().getParameter("name").getBytes("GBK"));,我的upload.jsp中编码是UTF-8,通过GBK转字节在我的应用中可以正确处理中文问题。

网上摘的解决乱码问题:

1:mySmartUpload.getRequest().getParameter("account") 获取值乱码问题

前台页面(form)传两个值到servlet,一个是文件,另一个是文字。

servlet接收文字的方法:

Request req = smart.getRequest();

account = new String(req.getParameter("account").getBytes("iso-8859-1"), "gb2312");

但得到的是乱码

解决:

这个问题分两个步骤解决:

首先,将前台JSP页面中

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

的UTF-8都改成GBK或GB2312

然后,在servlet中,在doGet或doPost方法中的第一行代码写

request.setCharacterEncoding("GBK");//或GB2312也行;

之后你创建smartUpload的对象..

得到request对象后正常获得JSP中form的各元素值就不会有问题,比如:

SmartUpload mySmartUpload = new SmartUpload();

String account = mySmartUpload.getRequest().getParameter("account");

System.out.println(account);//不会有乱码了;

2:mySmartUpload.getRequest().getParameter("account") 获取值

mySmartUpload.getRequest().getParameter("account");

account不能是文件类型的ID (如: <input type="file" name="file1"/>中的file1)

时间: 2024-12-30 01:13:11

【转】JspSmartUpload组件的使用说明的相关文章

用jspSmartUpload组件实现文件上传、下载

jspSmartUpload组件,可从http://download.csdn.net/user/dearchuansir下载,压缩包的名字是jspSmartUpload.zip.下载后,将其解压到Tomcat的webapps目录下.解压后,将webapps/jspsmartupload目录下的子目录Web-inf名字改为全大写的WEB-INF,这样一改jspSmartUpload类才能使用.如果想让Tomcat服务器的所有Web应用程序都能用它,必须做如下工作: 1.进入命令行状态,将目录切换

使用jspSmartUpload组件实现图片的上传

upload.html页面 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>选择上传的图片</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta

jsp实现文件上传(一)用jspSmartUpload组件实现文件上传

java类(ImageUtil.java) import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; i

jspSmartUpload上传下载使用例子

Html代码 <%@ page contentType="text/html;charset=GBK"%> <html> <head> <title>File Upload</title> </head> <body> <font size=5 color=#FF0000> <b>文件上传----使用jspsmart upload组件</b> </font>

JSP文件上传下载组件(1)

使用jspSmartUpload可以实现文件上传和下载 jspSmartUpload组件主要有4个类:File类,Files类,Request类和SmartUpload类 *SmartUpload类的initialize方法:这个方法是上传和下载共用的方法,他的作用是执行上传和下载的初始化工作,必须第一个执行.原型有多个,主要使用下面这个: public final void initialize(javax.serlvet.jsp.PageContext pageContext) 其中,pag

jspSmartUpload使用初步

jsp中使用SmartUpload上传文件 1.下载jspSmartUpload组件后,解压缩.把com目录复制到应用程序的WEB-INF\classes目录下. 2.尤其注意 (1)文件上传表单要添加enctype="multipart/form-data",如: <form action="product_update_ok.jsp?p_id=<%= p_id %>" method="post" onSubmit="

[转]Java内存溢出详解及解决方案

原文地址:http://blog.csdn.net/xianmiao2009/article/details/49254391 内存溢出与数据库锁表的问题,可以说是开发人员的噩梦,一般的程序异常,总是可以知道在什么时候或是在什么操作步骤上出现了异常,而且根据堆栈信息也很容易定位到程序中是某处出现了问题.内存溢出与锁表则不然,一般现象是操作一般时间后系统越来越慢,直到死机,但并不能明确是在什么操作上出现的,发生的时间点也没有规律,查看日志或查看数据库也不能定位出问题的代码. 更严重的是内存溢出与数

JavaScript 图片上传预览效果

图片上传预览是一种在图片上传之前对图片进行本地预览的技术.使用户选择图片后能立即查看图片,而不需上传服务器,提高用户体验.但随着浏览器安全性的提高,要实现图片上传预览也越来越困难.不过群众的智慧是无限的,网上已经有很多变通或先进的方法来实现.例如ie7/ie8的滤镜预览法,firefox 3的getAsDataURL方法.但在opera.safari和chrome还是没有办法实现本地预览,只能通过后台来支持预览.在研究了各种预览方法后,作为总结,写了这个程序,跟大家一起分享.上次写的简便无刷新文

java里面的文件上传与下载

文件的上传与下载主要用到两种方法:1.方法一:commons-fileupload.jar commons-io.jarapache的commons-fileupload实现文件上传,下载 [upload]package com.handson.bbs.servlet; import java.io.File;import java.io.IOException;import java.util.Date;import java.util.List;import javax.servlet.Se