⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 downproc.java

📁 用JSP完成根据用户的身份实现登录识别的下载
💻 JAVA
字号:
package com.mypack.servlet;

import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.mypack.dto.UserInfo;

public class DownProc extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String file = request.getParameter("file");
		HttpSession session = request.getSession();
		UserInfo userInfo = (UserInfo) session.getAttribute("userInfo");
		if (userInfo != null) {
			if (file != null && file.startsWith(userInfo.getRole())) {
				response.setContentType("application/octet-stream");
				SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
				String date =sdf.format(new Date());
				ServletContext sc = getServletContext();
				String downDir = sc.getInitParameter("downDir");
				InputStream is = sc.getResourceAsStream(downDir + file);
				int pos = file.lastIndexOf(".");
				file = new StringBuilder().append(file.substring(0, pos))
						.append("_").append(date).append(".").append(
								file.substring(pos + 1, file.length()))
						.toString();
				file = new String(file.getBytes("gb2312"), "iso-8859-1");
				response.setHeader("Content-Disposition",
						"attachment;filename=" + file);
				byte[] buf = new byte[8196];
				int len;
				ServletOutputStream sos = response.getOutputStream();
				while ((len = is.read(buf)) != -1) {
					sos.write(buf, 0, len);
				}
				sos.flush();
				sos.close();
				is.close();
			} else {
				log("ALERT: 用户 " + userInfo.getUsername() + "试图违反权限下载《" + file
						+ "》");
				request.getRequestDispatcher("../jsp/privAlert.jsp").forward(
						request, response);
			}
		} else {
			request.getRequestDispatcher("../jsp/sessionTimeoutAlert.jsp")
					.forward(request, response);
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -