📄 getfile.java
字号:
package ch08.section08;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class GetFile
extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=gb2312";
MailUser mailUser;
MailInfo mf;
public void init() throws ServletException {
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
javax.servlet.http.HttpSession session = request.getSession();
mailUser = (MailUser) session.getAttribute("_mailUser");
String s_id = request.getParameter("id");
int msg = Integer.parseInt(s_id);
showPart(request, response, mailUser, msg, 1);
}
public void showPart(HttpServletRequest req,
HttpServletResponse resp,
MailUser mailUser,
int msg, int part) throws ServletException,
java.io.IOException {
java.io.PrintWriter out = resp.getWriter();
try {
Folder inbox = mailUser.getInbox();
Message[] msgs = inbox.getMessages();
Message m = msgs[msg];
Multipart mp = (Multipart) m.getContent();
Part p = mp.getBodyPart(part);
String contentType = p.getContentType();
if (contentType == null) {
out.println("Invalid message part at " + part);
}
else {
ContentType type = new ContentType(contentType);
resp.setContentType(type.getBaseType());
resp.setHeader("Content-Disposition",
String.valueOf( (new StringBuffer(String.valueOf(
"attachment;"))).
append(" filename=").append(p.getFileName())));
java.io.InputStream in = p.getInputStream();
int b;
while (true) {
b = in.read();
if (b == -1) {
break;
}
out.write(b);
}
}
}
catch (MessagingException ex) {
out.println("<br>");
out.println("ERROR: " + ex.getMessage());
}
out.flush();
}
protected String getAddress(Address address) {
String name = "";
if (address != null) {
name = "" + address;
if (address instanceof InternetAddress) {
String personal =
( (InternetAddress) address).getPersonal();
if (personal != null) {
name = personal;
}
}
}
return name;
}
protected String formatAddresses(Address addresses[]) {
String s = "";
if (addresses != null) {
for (int i = 0; i < addresses.length; i++) {
if (i > 0) {
s += ", ";
}
s += getAddress(addresses[i]);
}
}
return s;
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
doGet(request, response);
}
public void destroy() {
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -