小demo例子: 上传&&下载
来源:互联网 发布:pad怎么卸载软件 编辑:程序博客网 时间:2024/05/01 20:00
1. user.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'user.jsp' starting page</title> </head> <body> <form name="form1" action="${pageContext.request.contextPath}/UserUploadServlet" method="post" enctype="multipart/form-data"> 用户名:<input name="username" type="text" /><br/> 性别:<input name="sex" type="radio" value="男" />男<br/> <input name="sex" type="radio" value="女" />女<br/> 电话: <input name="tel" type="text" /><br/> 上传的文件:<input name="filepath" type="file" /><br/> <input value="上传" type="submit" /><br/> </form> <a href="${pageContext.request.contextPath }/UserListServlet">查看</a> </body></html>
2. userList.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'userList.jsp' starting page</title> </head> <body> 用户信息查询:<br/> <table border="1"> <tr> <td>用户名</td> <td>性别</td> <td>电话</td> <td>文件名称</td> <td>下载</td> </tr> <c:forEach items="${list}" var="user"> <tr> <td>${user.username }</td> <td>${user.sex }</td> <td>${user.tel }</td> <td>${user.filename }</td> <td> <c:url value="/DownUserServlet" var="url"> <c:param name="filepath" value="${user.filepath }"></c:param> <c:param name="filename" value="${user.filename}"></c:param> </c:url> <a href="${url }">${user.filepath }下载</a> </td> </tr> </c:forEach> </table> </body></html>
3. web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><!-- 配置标签库 --><jsp-config><taglib> <!-- 在jsp页面使用的tld文件的名称,看成一个别名 --><taglib-uri>/WEB-INF/tag.tld</taglib-uri><!-- 标签库在当前web应用的完整路径,/表示从更路径开始 --><taglib-location>/WEB-INF/tld/tag.tld</taglib-location></taglib><taglib> <!-- 在jsp页面使用的tld文件的名称,看成一个别名 --><taglib-uri>/WEB-INF/elfunction.tld</taglib-uri><!-- 标签库在当前web应用的完整路径,/表示从更路径开始 --><taglib-location>/WEB-INF/tld/elfunction.tld</taglib-location></taglib></jsp-config> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>LoginServlet</servlet-name> <servlet-class>day09.LoginServlet</servlet-class> </servlet> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>GetCGIServlet</servlet-name> <servlet-class>day09.GetCGIServlet</servlet-class> </servlet> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>ReadCookieServlet</servlet-name> <servlet-class>day09.ReadCookieServlet</servlet-class> </servlet> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>LastDateServlet</servlet-name> <servlet-class>day09.LastDateServlet</servlet-class> </servlet> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>AddProductServlet</servlet-name> <servlet-class>day10Shopping.AddProductServlet</servlet-class> </servlet> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>RemoveProductServlet</servlet-name> <servlet-class>day10Shopping.RemoveProductServlet</servlet-class> </servlet> <servlet> <servlet-name>UserUploadServlet</servlet-name> <servlet-class>day16.UserUploadServlet</servlet-class> </servlet> <servlet> <servlet-name>UserListServlet</servlet-name> <servlet-class>day16.UserListServlet</servlet-class> </servlet> <servlet> <servlet-name>DownUserServlet</servlet-name> <servlet-class>day16.DownUserServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/servlet/LoginServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>GetCGIServlet</servlet-name> <url-pattern>/servlet/GetCGIServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>ReadCookieServlet</servlet-name> <url-pattern>/servlet/ReadCookieServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>LastDateServlet</servlet-name> <url-pattern>/LastDateServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AddProductServlet</servlet-name> <url-pattern>/servlet/AddProductServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>RemoveProductServlet</servlet-name> <url-pattern>/servlet/RemoveProductServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>UserUploadServlet</servlet-name> <url-pattern>/UserUploadServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>UserListServlet</servlet-name> <url-pattern>/UserListServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>DownUserServlet</servlet-name> <url-pattern>/DownUserServlet</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>
4. User.java
package day16.bean;public class User {private Integer id;private String username;private String sex;private String tel;private String filepath;private String filename;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getTel() {return tel;}public void setTel(String tel) {this.tel = tel;}public String getFilepath() {return filepath;}public void setFilepath(String filepath) {this.filepath = filepath;}public String getFilename() {return filename;}public void setFilename(String filename) {this.filename = filename;}}
5. DaoUserImpl
package day16.dao.impl;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import com.mysql.jdbc.Connection;import com.mysql.jdbc.PreparedStatement;import day16.DBManager;import day16.bean.User;public class DaoUserImpl {public void saveUser(User user) throws Exception {DBManager dbManager=null;Connection conn=null;PreparedStatement pstmt=null;try {dbManager=new DBManager();conn=dbManager.getConnection();//组织Sql语句String sql="insert into userfile (id,username,sex,tel,filepath,filename)values(null,?,?,?,?,?)";pstmt=(PreparedStatement) conn.prepareStatement(sql);pstmt.setString(1, user.getUsername());pstmt.setString(2, user.getSex());pstmt.setString(3, user.getTel());pstmt.setString(4, user.getFilepath());pstmt.setString(5, user.getFilename());pstmt.executeUpdate();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{dbManager.closeResource(conn, pstmt);}}public List<User> findAllUser() throws Exception {DBManager dbManager=null;Connection conn=null;PreparedStatement pstmt=null;ResultSet rs=null;List<User> list=new ArrayList<User>();try {dbManager=new DBManager();conn=dbManager.getConnection();//组织Sql语句String sql="select id,username,sex,tel,filepath,filename from userfile order by id ";pstmt=(PreparedStatement) conn.prepareStatement(sql);rs=pstmt.executeQuery();while(rs.next()){User u=new User();u.setId(rs.getInt(1));u.setUsername(rs.getString(2));u.setSex(rs.getString(3));u.setTel(rs.getString(4));u.setFilepath(rs.getString(5));u.setFilename(rs.getString(6));list.add(u);}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{dbManager.closeResource(conn, pstmt,rs);}return list;}}
6. UserListServlet
package day16;import java.io.IOException;import java.io.PrintWriter;import java.util.List;import day16.bean.User;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import day16.dao.impl.DaoUserImpl;public class UserListServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request,response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");PrintWriter out = response.getWriter();DaoUserImpl daoUser=new DaoUserImpl();List<User> list=null;try {list = daoUser.findAllUser();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}request.setAttribute("list", list);request.getRequestDispatcher("/userList.jsp").forward(request, response);}}7. DownUserServlet
package day16;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.io.IOException;import java.io.OutputStream;import java.io.PrintWriter;import java.net.URLDecoder;import java.net.URLEncoder;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class DownUserServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request,response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");//获取路径String filepath=request.getParameter("filepath");//获取文件名称String filename=request.getParameter("filename");response.setContentType("application/x-msdownload");response.setHeader("Content-Disposition", "attachment;filename="+URLEncoder.encode(filename,"utf-8"));//获取真实路径String realPath=this.getServletContext().getRealPath(filepath);realPath=realPath+"/";//读取文件输入流FileInputStream fis=new FileInputStream(realPath);BufferedInputStream bis=new BufferedInputStream(fis);//定义输出流//从响应对象中获取输出流OutputStream fos=response.getOutputStream();BufferedOutputStream bos= new BufferedOutputStream(fos);//从输入流中读取写入到输出流byte[] b= new byte[200*1024];int len=0;while((len=bis.read(b))!=-1){bos.write(b, 0, len);}//关闭bis.close();bos.close();}}
8.UserUploadServlet
package day16;import java.io.File;import java.io.IOException;import java.io.PrintWriter;import java.util.Arrays;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;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.FileItemFactory;import org.apache.commons.fileupload.FileUploadException;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload;import day16.bean.User;import day16.dao.impl.DaoUserImpl;public class UserUploadServlet extends HttpServlet {//定义哪些后缀类型的文件能被接受String allowedExt[]=new String[]{"doc","jpg","mp3"};public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request,response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");PrintWriter out = response.getWriter();//保存表单域的mapMap<String,String> formMap= new HashMap<String,String>();//保存文件域的mapMap<String,String> fileMap= new HashMap<String,String>();//如果客户端请求 enctype="multipart/form-data" 返回trueboolean isMultipart = ServletFileUpload.isMultipartContent(request);// Create a factory for disk-based file itemsFileItemFactory factory = new DiskFileItemFactory(); // Set factory constraints表示上传文件存储在内存空间的大小,若上传文件大小大于1024B,存储在硬盘D:/temp下,否则存储在内存中((DiskFileItemFactory) factory).setSizeThreshold(1024);((DiskFileItemFactory) factory).setRepository(new File("D:/temp"));// Create a new file upload handlerServletFileUpload upload = new ServletFileUpload(factory);try {//限制文件上传的大小long MAXSIZE=1024*1024;upload.setFileSizeMax(MAXSIZE);// Parse the requestList /* FileItem */ items = upload.parseRequest(request);// Process the uploaded itemsIterator iter = items.iterator();while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (item.isFormField()) { // Process a regular form field //请输入文件名:<input type="text" name="filename"/><br/> String name = item.getFieldName(); String value = item.getString("utf-8"); System.out.println("isFormField: "+name+" "+value); formMap.put(name, value); } else { // Process a file upload //请选择要上传的文件:<input type="file" name="filepath" /><br/> if (!item.isFormField()) { String fieldName = item.getFieldName(); String fileName = item.getName(); String contentType = item.getContentType();//上传的文件类型 boolean isInMemory = item.isInMemory();//true 临时保存在内存;false保存在硬盘 long sizeInBytes = item.getSize(); System.out.println("file upload: "+fieldName+" "+fileName); fileMap.put(fieldName, fileName); /************************************************/ /* //获取上传文件的名称:方法一 File uploadedFile = new File("D:/"+fileName); //把上传的内容写到一个文件中 item.write(uploadedFile);*/ /************************************************/ //上传的文件保存到pics文件夹下 String realPath=this.getServletContext().getRealPath("/user"); System.out.println("realPath= "+realPath); //获取后缀名 String fileNameEnd=fileName.substring(fileName.lastIndexOf(".")+1); System.out.println("fileNameEnd= "+fileNameEnd); //阻止某些类型的文件 if(fileNameEnd!=null){ boolean flag=Arrays.asList(allowedExt).contains(fileNameEnd); if(!flag){ throw new RuntimeException("您上传的文件类型["+fileNameEnd+"],本系统不支持"); } } realPath=realPath+"/"+fileName; File uploadedFile = new File(realPath); //把上传的内容写到一个文件中 item.write(uploadedFile); /************************************************/ /*保存固定的文件名 * //定义一个file指向一个具体的文件 File uploadedFile = new File("D:/a.jpg"); //把上传的内容写到一个文件中 item.write(uploadedFile);*/ /************************************************/ } }}} catch (FileUploadException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} //封装信息到javaBeanUser user=new User();user.setUsername(formMap.get("username"));user.setSex(formMap.get("sex"));user.setTel(formMap.get("tel"));user.setFilepath("/user");user.setFilename(fileMap.get("filepath"));DaoUserImpl daoUser = new DaoUserImpl();try {daoUser.saveUser(user);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
9. DBManager
package day16;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import com.mysql.jdbc.Connection;import com.mysql.jdbc.PreparedStatement;public class DBManager {private String url="jdbc:mysql://localhost:3306/test";Connection conn=null;public DBManager() throws Exception{Class.forName("com.mysql.jdbc.Driver");}public Connection getConnection() throws SQLException{conn=(Connection) DriverManager.getConnection(url, "root", "");return conn;}public void closeResource(Connection conn, PreparedStatement pstmt,ResultSet rs) throws SQLException {if(rs!=null){rs.close();}if(pstmt!=null){pstmt.close();}if(conn!=null){conn.close();}}public void closeResource(Connection conn, Statement pstmt,ResultSet rs) throws SQLException {if(rs!=null){rs.close();}if(pstmt!=null){pstmt.close();}if(conn!=null){conn.close();}}public void closeResource(Connection conn, PreparedStatement pstmt) throws SQLException {if(pstmt!=null){pstmt.close();}if(conn!=null){conn.close();}}}
- 小demo例子: 上传&&下载
- 一个下载小demo
- 文件上传与下载Demo
- 离线下载的小demo
- 上传 下载 简单例子(c#)
- Struts1 文件上传小例子
- PHP上传文件小例子
- Struts2文件下载小例子
- CHttpFile下载文件小例子
- ViewAnimator实例源码小Demo+Tab例子
- StringMvc环境搭建以及小demo,例子
- iCloud上传备份和下载的Demo
- struts文件上传与下载简单DEMO
- 关于图片上传的问题小demo
- 一个上传头像的小Demo
- Struts2上传与下载文件 简单例子
- java网络上传文件小例子
- struts2上传文件的小例子
- RichTextBox中用指定字体和颜色高亮显示指定字符
- 《自适应软件开发》
- mysql导入数据命令之(二):使用批处理和LOAD
- jquery日期控件学习1
- 如何在不同编程语言中获取现在的Unix时间戳(Unix timestamp)?
- 小demo例子: 上传&&下载
- Android:windowSoftInputMode 熟悉详解
- linux服务常用命令
- 表单form的enctype="multipart/form-data"使用体会
- 利用MVC做一个 常见的管理系统
- <一年成为Emacs高手>更新至20121115版.
- 微波炉的致命伤害
- 【音频】音频编程中常见的概念
- Butterfly UI 编写方式