- 浏览: 1728860 次
- 性别:
- 来自: 沈阳
文章分类
- 全部博客 (288)
- java (59)
- javaweb (15)
- eclipse (16)
- uml (1)
- java ee (7)
- windows (5)
- html (4)
- 数据结构和算法 (6)
- oracle (84)
- struts (3)
- ajax (3)
- hibernate (3)
- spring (12)
- ExtJS (14)
- 随笔 (2)
- JavaScript (9)
- PL SQL (12)
- tomcat (2)
- Plugins (5)
- office (2)
- webService (4)
- others (9)
- htc (1)
- 自定义标签的行为 (1)
- powerDesigner (3)
- webSphere (5)
- linux (6)
- dom4j (1)
- xml (5)
- json (2)
- bat (4)
- spring MVC (5)
- MySQL (12)
- junit (4)
- maven (10)
- jquery (1)
- mongoDB (16)
- git (0)
- mybatis (5)
- svn (3)
- activemq (3)
- quartz_job (1)
最新评论
-
白天看黑夜:
PDMReader实现pdm建模快速导出word,html文件 ...
利用powerDesigner逆向导出oracle表为PDM并把PDM转为CDM -
sanshao:
roompig 写道beancopier只实现了浅拷贝的功能, ...
使用Cglib的BeanCopier实现Bean的拷贝 -
贝塔ZQ:
Java实现导入导出excel文件,利用poi实现感觉代码比较 ...
利用java导入导出excel到oracle数据库 -
suxj16:
部署之后启动有问题org.springframework.be ...
spring mvc文件上传实现进度条(转) -
suxj16:
谢谢分享。部署之后启动有问题org.springframewo ...
spring mvc文件上传实现进度条(转)
利用JSP+Servlet+JavaBean实现用户管理系统中的照片上传的程序片段。
本片段主要使用的jar包有commons-fileupload.jar,commons-io.jar,jstl.jar,standard.jar,我附件上都有,请自行下载。其中fileupload和io用于上传文件。jstl和standard用于文件的页面显示。
费话少说,直接进入程序片段,具体的讲解会出现在程序片段中,请大家自行观察。
upload.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <script type="text/javascript"> function checkFile(){ //在表单中添加一个隐藏元素,目的是测试是否获得动态的用户名,以便在Servlet中接收并传递到数据库中 var f = document.uploadForm.photo.value ; //用元素的id获得该元素的值,从而进行判断选择的文件是否合法 var file = document.uploadForm.p.value ; if(file==null||file==""){ alert("你还没有选择任何文件,不能上传!") ; return ; } if(file.lastIndexOf(".")==-1){ alert("路径不正确!") ; return ; } var allImgExt = ".jpg|.jpeg|.gif|.bmp|.png|" ; var extName = file.substring(file.lastIndexOf(".")) ; if(allImgExt.indexOf(extName+"|")==-1){ errMsg="该文件类型不允许上传。请上传 "+allImgExt+" 类型的文件,当前文件类型为"+extName; alert(errMsg); return; } document.uploadForm.submit() ; } </script> <style type="text/css"> <!-- .STYLE1 { font-family: "新宋体"; font-weight: bold; font-size: 24px; } .STYLE3 { font-size: 16px } .STYLE4 { color: #FF0000 } .STYLE6 { font-family: Arial, Helvetica, sans-serif } --> </style> </head> <body> <jsp:useBean id="user" scope="session" class="com.ysj.model.UserBean"></jsp:useBean> <div align="center" class="STYLE1"> 欢迎 <jsp:getProperty property="name" name="user" /> 光临 <br /> <br/> </div> <hr/> <% String message = (String)request.getAttribute("message") ; if(message!=null){ out.println(message) ; } String name = user.getName() ; %> //action为Servlet的URL,enctype的值必须为multipart/form-data <form action="uploadServlet" method="POST" enctype="multipart/form-data" name="uploadForm"> <table align="center"> <tr> <td>请选择要上传的照片:</td> <td><input type="file" id="p" name="<%=name %>" size="20" /></td> </tr> <tr align="center"> <td align="center" colspan="2"> <input type="hidden" name="photo" value="<%=name %>"/> <input type="button" value="上传" onclick="checkFile()"/> </td> </tr> </table> </form> </body> </html>
web.xml
<servlet> <servlet-name>uploadServlet</servlet-name> <servlet-class>com.ysj.controller.UploadServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>uploadServlet</servlet-name> <url-pattern>/uploadServlet</url-pattern> </servlet-mapping>
UploadServlet.java
package com.ysj.controller; import java.io.File; import java.io.IOException; import java.util.Iterator; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import com.ysj.model.UserManagerService; public class UploadServlet extends HttpServlet { public void init(){} public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ this.doPost(request, response) ; } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ request.setCharacterEncoding("UTF-8") ; response.setCharacterEncoding("UTF-8") ; //用于存放输出的信息 String message = "" ; //在自己的项目中构造出一个用于存放用户照片的文件夹 String projectpath = this.getServletContext().getRealPath("/images/") ; //如果此文件夹不存在,则构造此文件夹 File f = new File(projectpath) ; if(!f.exists()){ f.mkdir() ; } //构造出文件工厂,用于存放JSP页面中传递过来的文件 DiskFileItemFactory factory = new DiskFileItemFactory() ; //设置缓存大小,如果文件大于缓存大小时,则先把文件放到缓存中 factory.setSizeThreshold(4*1024) ; //设置上传文件的保存路径 factory.setRepository(f) ; //产生Servlet上传对象 ServletFileUpload upload = new ServletFileUpload(factory) ; //设置可以上传文件大小的上界4MB upload.setSizeMax(4*1024*1024); try { //取得所有上传文件的信息 List<FileItem> list = upload.parseRequest(request) ; Iterator<FileItem> iter = list.iterator() ; while(iter.hasNext()){ FileItem item = iter.next() ; //如果接收到的参数不是一个普通表单(例text等)的元素,那么执行下面代码 if(!item.isFormField()){ String fieldName = item.getFieldName() ;//获得此表单元素的name属性 String fileName = item.getName() ;//获得文件的完整路径 String contentType = item.getContentType() ;//获得文件类型 long fileSize = item.getSize() ;//获得文件大小 // 从文件的完整路径中截取出文件名 fileName = fileName.substring(fileName.lastIndexOf("\\") + 1, fileName.length()); //判断是否有图片上传 if(!("".equals(fileName))&&!(fileName==null)){ //如果上传的文件不是图片,那么不上传 String allImgExt = ".jpg|.jpeg|.gif|.bmp|.png|" ; String extName = fileName.substring(fileName.indexOf("."),fileName.length()) ; if(allImgExt.indexOf(extName+"|")==-1){ message = "该文件类型不允许上传。请上传 "+allImgExt+" 类型的文件,当前文件类型为"+extName; break ; } String filepath = projectpath+"\\"+fieldName ; File uf = new File(filepath) ; //更改文件的保存路径,以防止文件重名的现象出现 if(!uf.exists()){ uf.mkdir() ; } //此输出路径为保存到数据库中photo字段的路径 String insertDB = filepath+"\\"+fileName ; System.out.println("文件路径:"+insertDB+":"+insertDB.length()); File uploadedFile = new File(filepath, fileName); try { //如果在该文件夹中已经有相同的文件,那么将其删除之后再重新创建(只适用于上传一张照片的情况) if(uploadedFile.exists()){ uploadedFile.delete() ; } item.write(uploadedFile); UserManagerService userService = new UserManagerService() ; if(userService.getOperate().updatePhoto(fieldName, insertDB)){ message = "上传文件成功<br/><br/>基本信息如下:<br/>文件名:"+fileName +"<br/>文件类型:"+contentType+"<br/>文件大小:"+fileSize; } } catch (Exception e) { e.printStackTrace(); //return ; } }else { // 取得普通的对象(对于像文本框这种类型的使用) // 对于普通类型的对象暂不做处理 //return ; } } } } catch (FileUploadException e) { // TODO Auto-generated catch block message = "文件的内容过大,请上传小于4MB的文件" ; e.printStackTrace(); } request.setAttribute("message", message) ; request.getRequestDispatcher("upload.jsp").forward(request, response) ; } public void destroy(){} }
完毕!
有什么疑问可以给我留言,一天之内肯定解决。
- standard.jar (384 KB)
- 下载次数: 394
- jstl.jar (20.2 KB)
- 下载次数: 261
- commons-fileupload-1.2.2.jar (58.2 KB)
- 下载次数: 339
- commons-io-1.4.jar (106.5 KB)
- 下载次数: 313
- UserManagerSystem_3.0.rar (563.6 KB)
- 下载次数: 579
- 数据库脚本.rar (1.9 KB)
- 下载次数: 249
评论
20 楼
ysj5125094
2015-04-21
东来东去 写道
你好,在jsp代码中70行 String name=user.getName()是干什么用的,我的找不到这个方法
在Model下面有个UserBean类,相当于从session中取出个user对象。
19 楼
东来东去
2015-04-14
你好,在jsp代码中70行 String name=user.getName()是干什么用的,我的找不到这个方法
18 楼
ysj5125094
2012-09-21
1028156461pan 写道
UserManagerService userService = new UserManagerService() ;这个类包是实现什么的?你好,您这个工程的具体页面流程是怎样的呢
UserManagerService这个类的原代码已经在附件中包含了,就是这个UserManagerSystem_3.0.rar.具体页面的流程你可以把我的代码贴到自己的工程下面跑一下就知道了.
17 楼
ysj5125094
2012-09-21
1028156461pan 写道
你好,请问您能把那个CSS样式的改成表单的嘛?对CSS样式不是很熟
你完全可以不加CSS样式嘛,把CSS删掉,对程序没有任何影响的,呵呵.
16 楼
1028156461pan
2012-09-13
UserManagerService userService = new UserManagerService() ;这个类包是实现什么的?你好,您这个工程的具体页面流程是怎样的呢
15 楼
1028156461pan
2012-09-13
你好,请问您能把那个CSS样式的改成表单的嘛?对CSS样式不是很熟
14 楼
lh870003574
2012-05-30
牛~~~~
13 楼
ysj5125094
2012-04-08
yys0706 写道
可不可以再写一篇把添加文件路径写入数据库,再从数据库调用的,实现文件下载功能的。。
恩,这个应该不是很难吧,呵呵.现在项目比较忙,看看什么时候有时间再添加这个功能吧.呵呵.
12 楼
yys0706
2012-03-28
可不可以再写一篇把添加文件路径写入数据库,再从数据库调用的,实现文件下载功能的。。
11 楼
ysj5125094
2011-04-14
花岗岩 写道
再写一篇把添加文件路径写入数据库,再从数据库调用的呗。。。
我以前还真做过这样的例子,等过一阵子有时间了,我传上来,你注意看一下.
10 楼
ysj5125094
2011-04-14
花岗岩 写道
yuhu521fy 写道
UserManagerService userService = new UserManagerService() ; 这个service类中的方法是怎样的??
这个类包里是什么?求解
已经传上去了.
9 楼
ysj5125094
2011-04-14
yuhu521fy 写道
UserManagerService userService = new UserManagerService() ; 这个service类中的方法是怎样的??
不好意思,那天上传的匆忙,没传我整个的工程,我现在把我以前做过的一个小例子传上去,你有时间可以看一下.
8 楼
花岗岩
2011-04-12
yuhu521fy 写道
UserManagerService userService = new UserManagerService() ; 这个service类中的方法是怎样的??
这个类包里是什么?求解
7 楼
花岗岩
2011-04-11
再写一篇把添加文件路径写入数据库,再从数据库调用的呗。。。
6 楼
花岗岩
2011-04-11
我自己也在从头填写一个网站,感觉写的挺好
5 楼
yuhu521fy
2011-04-09
UserManagerService userService = new UserManagerService() ; 这个service类中的方法是怎样的??
4 楼
ysj5125094
2010-11-08
justice_jl 写道
O(∩_∩)O~,还行,还挺聪明的说,就是 简单的登录和增删改查,我先自己研究研究,呵呵,哎,自己的破机器,太卡了,开了MYECLIPSE,ORACLE,FIREFOX,基本就啥都干不了了,我OFFICE 还是2007的……超卡,本身就一身漏洞,呵呵,所以挺闹心的,我看看还是在A9学吧,到时候遇到问题了,再M你的说,O(∩_∩)O~
引用
恩,好的,有事儿您请话,哈哈。
3 楼
justice_jl
2010-11-08
O(∩_∩)O~,还行,还挺聪明的说,就是 简单的登录和增删改查,我先自己研究研究,呵呵,哎,自己的破机器,太卡了,开了MYECLIPSE,ORACLE,FIREFOX,基本就啥都干不了了,我OFFICE 还是2007的……超卡,本身就一身漏洞,呵呵,所以挺闹心的,我看看还是在A9学吧,到时候遇到问题了,再M你的说,O(∩_∩)O~
2 楼
ysj5125094
2010-11-07
justice_jl 写道
老剑,猜猜我是谁的说?改天给我讲讲哈,我看你弄的挺好!
引用
你是龙呗,嘿嘿,早就猜到了。你让我给你讲讲啥啊?会的一定全部告诉你。
1 楼
justice_jl
2010-11-07
老剑,猜猜我是谁的说?改天给我讲讲哈,我看你弄的挺好!
发表评论
-
过滤有效查询条件的好方法
2014-11-13 17:25 1591在工作中经常遇到明细查询,前段有很多查询条件,但是不 ... -
Java web过滤器验证登录(避免未经登录进入主页)
2014-11-03 13:36 4623要想实现此功能,分以下两步: 1.配置web.xm ... -
解决servlet-api包冲突问题(maven)
2014-08-20 10:12 47113问题描述:本人的项目是用Maven管理,而且用到了s ... -
在web.xml下配置error-page
2014-07-18 15:20 1887解决问题:捕获页面错误并反到指定页面处理。 在 ... -
jsp中使用jquery的ajaxSubmit方法实现现异步上传
2012-12-07 10:46 11407html代码: <FORM name=& ... -
利用axis2实现WebService(Java)
2012-08-25 15:24 9728一.使用axis2构建WebService服务器(POJO方式 ... -
利用Xfire调用WebService(Java)
2012-08-17 14:05 4988本文中介绍如何根据一个webservice串来访问 ... -
JS获取客户端IP地址及MAC地址(转)
2012-06-16 17:34 20102在网上找的,对自己很有帮助,留下来,备用. 加上自已 ... -
java连接各种数据库大全
2011-07-12 22:05 13391、Oracle8/8i/9i数据库(thin模式) Cl ... -
解决JSP文件中的乱码问题
2010-11-03 19:41 1374a.jsp页面内容如下: <%@ page lang ... -
web开发中遇到的dtd和tld文件的作用
2010-11-02 20:28 3971dtd文件是对XML文件元素类型定义的一个约束,如struts ... -
javascript对frame的操作及常用的方法
2010-10-16 22:47 17461、如一个frame下有一页面: <frame s ... -
利用JSP实现文件上传功能(支持中文)
2010-10-13 23:11 2009利用JSP实现文件的上传功能,主要的技术用到了apache的开 ... -
关于EL表达式的简单总结(转)
2010-10-11 23:18 1138基本语法 一、EL(Expres ...
相关推荐
登录和注册的jsp页面+servlet+javaBean登录和注册的jsp页面+servlet+javaBean登录和注册的jsp页面+servlet+javaBean登录和注册的jsp页面+servlet+javaBean登录和注册的jsp页面+servlet+javaBean登录和注册的jsp页面+...
jsp+servlet+javaBean实现MVC jsp+servlet+javaBean实现MVCjsp+servlet+javaBean实现MVCjsp+servlet+javaBean实现MVCjsp+servlet+javaBean实现MVCjsp+servlet+javaBean实现MVCjsp+servlet+javaBean实现MVCjsp+...
【标题】基于JSP+Servlet+JavaBean实现的图书管理系统 在Web开发中,JSP(JavaServer Pages)、Servlet和JavaBean是常见的技术栈,它们共同构建了动态、交互式的Web应用程序,尤其适用于构建功能丰富的图书管理系统...
jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+...
本实例将详细讲解如何利用JavaServer Pages (JSP)、Servlet、JavaBean以及Java Database Connectivity (JDBC) 来实现这样一个简单的登录功能。 **一、JSP(JavaServer Pages)** JSP是Java的一种动态网页技术,允许...
本项目“jsp+Servlet+javaBean实现登录注册”采用经典的Web开发技术栈,包括JavaServer Pages (JSP)、Servlet以及JavaBeans,结合MySQL数据库,利用集成开发环境myEclipse进行开发。下面将详细阐述这些知识点。 1. ...
编程项目实战Java-jsp:jsp+servlet+javaBean实现MVC; 编程项目实战Java-jsp:jsp+servlet+javaBean实现MVC; 编程项目实战Java-jsp:jsp+servlet+javaBean实现MVC; 编程项目实战Java-jsp:jsp+servlet+javaBean...
jsp+servlet+javaBean实现MVC_jspmvcjsp+servlet+javaBean实现MVC_jspmvcjsp+servlet+javaBean实现MVC_jspmvcjsp+servlet+javaBean实现MVC_jspmvcjsp+servlet+javaBean实现MVC_jspmvcjsp+servlet+javaBean实现MVC_...
[其他类别]jsp+servlet+javaBean实现MVC_jspmvc[其他类别]jsp+servlet+javaBean实现MVC_jspmvc[其他类别]jsp+servlet+javaBean实现MVC_jspmvc[其他类别]jsp+servlet+javaBean实现MVC_jspmvc[其他类别]jsp+servlet+...
Java编程项目实战:jsp+servlet+javaBean实现MVC; Java编程项目实战:jsp+servlet+javaBean实现MVC; Java编程项目实战:jsp+servlet+javaBean实现MVC; Java编程项目实战:jsp+servlet+javaBean实现MVC; Java编程项目...
jsp+servlet+javaBean实现MVC_jspmvc(毕业设计+课程设计)jsp+servlet+javaBean实现MVC_jspmvc(毕业设计+课程设计)jsp+servlet+javaBean实现MVC_jspmvc(毕业设计+课程设计)jsp+servlet+javaBean实现MVC_jspmvc...
本项目以"JSP+servlet+javabean实现购物车"为主题,旨在演示如何使用这些技术来创建一个功能完整的购物车系统。下面我们将深入探讨这些知识点。 1. **JSP(JavaServer Pages)**:JSP是一种服务器端脚本语言,用于...
[其他类别]jsp+servlet+javaBean实现MVC_jspmvc.rar[其他类别]jsp+servlet+javaBean实现MVC_jspmvc.rar[其他类别]jsp+servlet+javaBean实现MVC_jspmvc.rar[其他类别]jsp+servlet+javaBean实现MVC_jspmvc.rar[其他...
[其他类别]jsp+servlet+javaBean实现MVC_jspmvc [其他类别]jsp+servlet+...[其他类别]jsp+servlet+javaBean实现MVC_jspmvc[其他类别]jsp+servlet+javaBean实现MVC_jspmvc[其他类别]jsp+servlet+javaBean实现MVC_jspmvc
基于JSP+Servlet+JavaBean+JDBC+DAO的Web架构设计该系统,进一步了解并掌握如何对数据库进行操作,以及如何分析、设计一个应用系统。 需求要求: 该系统的基本需求是,系统要实现如下的基本管理功能: (1)用户分为...
基于JSP+layui+mysql+servlet+javabean实现的图书馆管理系统 基于JSP+layui+mysql+servlet+javabean实现的图书馆管理系统 基于JSP+layui+mysql+servlet+javabean实现的图书馆管理系统 基于JSP+layui+mysql+servlet+...
jsp+servlet+javabean+mysql实现的简易BBS论坛系统 适合初学者学习