东软JavaWeb实训记-DAY8-小组项目开发实践(文件上传下载等操作)

项目结构



其他:


源代码:

package com.neu.dao;

public class FileInfoDao extends BaseDao {

	public FileInfoDao() {
		super("com.neu.dao.file_info");
	}

}

package com.neu.service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.neu.dao.FileInfoDao;

public class FileInfoService {

	private FileInfoDao fileInfoDao;
	public FileInfoService() {
		// TODO Auto-generated constructor stub
		fileInfoDao=new FileInfoDao();
	}
	
	public boolean doSave(Map<String, String> map){
		boolean flag=false;
		try {
			int row=fileInfoDao.insert("save", map);
			if(row>0){
				flag=true;
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return flag;
	}
	
	public List<Map<String, String>> search(Map<String, String> map){
		List<Map<String, String>> list=null;
		try {
			list=fileInfoDao.search("search", map);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return list;
	}
	
	public Map<String,String> searchById(Map<String,String> map){
		Map<String,String> item=null;
		try {
			List<Map<String, String>> list=fileInfoDao.search("search", map);
			if(list!=null && list.size()>0){
				item=list.get(0);
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return item;
	}

}

package com.neu.servlet.li;

import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.io.FileUtils;

import com.neu.service.FileInfoService;
import com.neu.servlet.BaseServlet;

/**
 * Servlet implementation class DownServlet
 */
@WebServlet("/DownServlet")
public class DownServlet extends BaseServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public DownServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		this.doPost(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		FileInfoService service=new FileInfoService();
		Map<String, String> item=service.searchById(param);
		System.out.println(item);
		String fileName=item.get("file_name");
		String path=request.getServletContext().getRealPath("/files");
		File file=new File(path+"/"+fileName);
		fileName=new String(fileName.getBytes("GBK"),"ISO-8859-1");
		response.setHeader("content-disposition", 
				"attachment;filename="+fileName);
		OutputStream out=response.getOutputStream();
		FileUtils.copyFile(file, out);
		//out.close();
	}

}

package com.neu.servlet.li;

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
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.neu.service.FileInfoService;
import com.neu.util.ImageUtil;

/**
 * Servlet implementation class FileUpServlet
 */
@WebServlet("/FileUpServlet")
public class FileUpServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public FileUpServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		this.doPost(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//		request.setCharacterEncoding("UTF-8");
		String path=request.getServletContext().getRealPath("/files");
		DiskFileItemFactory factory=new DiskFileItemFactory();
		ServletFileUpload up=new ServletFileUpload(factory);
		boolean flag=false;
		try {
			List<FileItem> items=up.parseRequest(request);
			Map<String, String> map=new HashMap<String,String>();
			for (FileItem item : items) {
				if(item.isFormField()){
					String name=item.getFieldName();
					String value=map.get(name);
					if(value==null){
						map.put(name, item.getString("UTF-8"));
					}else{
						map.put(name, value+","+item.getString("utf-8"));
					}
				}else{
					String fileName=item.getName();
					if(fileName==null || fileName.trim().length()==0){
						continue;
					}
					String type=fileName.substring(fileName.lastIndexOf(".")+1);
					item.write(new File(path,fileName));
					map.put("file_type", type);
					map.put("file_name", fileName);
					map.put("file_image", ImageUtil.getImage(type));
				}
				
			}
			FileInfoService service=new FileInfoService();
			flag=service.doSave(map);
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		if(flag){
			response.sendRedirect("show.jsp");
		}else{
			response.sendRedirect("fail.jsp");
		}
		
	}

}


package com.neu.servlet.li;

import com.neu.dao.BaseDao;
import com.neu.service.FileInfoService;
import com.neu.servlet.BaseServlet;

import java.io.IOException;
import java.util.List;
import java.util.Map;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class ShowFileServlet
 */
@WebServlet("/ShowFileServlet")
public class ShowFileServlet extends BaseServlet {

    /**
     * Default constructor. 
     */
    public ShowFileServlet() {
        // TODO Auto-generated constructor stub
    }
       
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    		throws ServletException, IOException {
    	this.doPost(request, response);
    }
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    		throws ServletException, IOException {
    	FileInfoService service=new FileInfoService();
    	List<Map<String, String>> list=
    			service.search(param);
    	session.setAttribute("items", list);
    	response.sendRedirect("show.jsp");
    }

}


package com.neu.util;

public class ImageUtil {

	public ImageUtil() {

	}

	public static String getImage(String type) {
		String image = "del.gif";
		if ("exe".equals(type)) {
			image="add.gif";
		}else if("rar".equals(type)||"zip".equals(type)){
			image="delete.gif";
		}
		return image;
	}

}


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.neu.dao.file_info">
	<insert id="save" parameterType="map">
		insert into file_info(file_id,file_name,file_image,file_type,file_content)
		values(seq_file_id.nextval,#{file_name},#{file_image},#{file_type},#{file_content})
	</insert>
	<select id="search" resultType="com.neu.util.MyMap" parameterType="map">
		select * from file_info where 1=1 
		<if test="file_id != null and file_id !=''">
			and file_id =${file_id}
		</if>
	</select>
</mapper>


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<typeAliases>
		<typeAlias type="java.util.Map" alias="map"/>
	</typeAliases>
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="oracle.jdbc.driver.OracleDriver" />
				<property name="url" value="jdbc:oracle:thin:@localhost:1521:shanke" />
				<property name="username" value="scott" />
				<property name="password" value="tiger" />
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<mapper resource="com/neu/dao/file_info.xml"/>
	</mappers>
</configuration>

file.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="FileUpServlet" method="post" enctype="multipart/form-data">
	文件:<input type="file" name="file_name"><br>
	描述:<textarea rows="5" cols="10" name="file_content"></textarea><br>
	<button type="submit">提交</button>
</form>
</body>
</html>

show.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
	*{
		font-size: 12px;
	}
	#main{
		width: 500px;
		height: 400px;
		margin: 0px auto;
		border: 1px solid black;
	}
	.item{
		width: 120px;
		height: 140px;
		float: left;
		margin: 2px;
	}
	.item table{
		width: 100%;
	}
	.item td{
		text-align: center;
	}
	.item img{
		width: 80px;
		height: 80px;
	}
</style>
</head>
<body>
<a href="ShowFileServlet">显示所有</a>
<div id="main">
	<c:forEach var="item" items="${sessionScope.items }">
		<div class="item">
			<table>
				<tr>
					<td>
						<img alt="" src="images/${item.file_image }">
					</td>
				</tr>
				<tr>
					<td>${item.file_name }</td>
					
				</tr>
				<tr>
					<td>
						<a href="DownServlet?file_id=${item.file_id }">下载</a>
					</td>
				</tr>
			</table>
		</div>
		
	</c:forEach>
</div>
</body>
</html>

test.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
	#main{
		width: 100%;
		height: 100%;
		background-color: gray;
	}
</style>
</head>
<body>
<%
	//登录成功
	map.put("status","1");
	session.setAttribute("item", map);
	
	Map map=session.getAttribute("item");
	Object o=map.get("status");
%>
	<% if(o!=null){ %>
		
	<%}else{%>
				
		
	<%} %>
	

<div id="main">
	<div id="msg">
	dasfsaf<br>
	asdfasfas<br>
	asfdasdf<br>
</div>
</div>
</body>
</html>


猜你喜欢

转载自blog.csdn.net/muyao987/article/details/75734773
今日推荐