DisplayFolders.java
上传用户:dinglihq
上传日期:2013-02-04
资源大小:99958k
文件大小:3k
源码类别:

Java编程

开发平台:

Java

  1. package bible.javamail;
  2. import java.io.*;
  3. import javax.servlet.*;
  4. import javax.servlet.http.*;
  5. import javax.activation.*;
  6. import javax.mail.*;
  7. import javax.mail.internet.*;
  8. import javax.naming.*;
  9. /**
  10.  * Class DisplayFolders
  11.  *
  12.  *
  13.  * @author
  14.  * @version %I%, %G%
  15.  */
  16. public class DisplayFolders extends HttpServlet {
  17.   private PrintWriter pw;
  18.   private Session     session;
  19.   private Store       store;
  20.   private Folder      defaultFolder;
  21.   /**
  22.    * Method doGet
  23.    *
  24.    *
  25.    * @param req
  26.    * @param res
  27.    *
  28.    * @throws IOException
  29.    * @throws ServletException
  30.    *
  31.    */
  32.   public void doGet(HttpServletRequest req, HttpServletResponse res)
  33.     throws ServletException, IOException {
  34.     pw = res.getWriter();
  35.     res.setContentType("text/html");
  36.     pw.println("<HTML><HEAD><TITLE>Folders</TITLE></HEAD>");
  37.     pw.println("<BODY><H1>Folders</H1>");
  38.     try {
  39.       getDefaultFolder();
  40.       displayFolders();
  41.       store.close();
  42.     } catch (Exception e) {
  43.       pw.println("<BR><BR><STRONG>" + e.getMessage() + "</STRONG><BR>");
  44.       e.printStackTrace(pw);
  45.     }
  46.     pw.println("</BODY></HTML>");
  47.   }
  48.   private void getDefaultFolder()
  49.     throws NamingException, NoSuchProviderException, MessagingException {
  50.     // lookup mail session in JNDI
  51.     InitialContext context = new InitialContext();
  52.     Session        session = (Session) context.lookup("BibleMailSession");
  53.     // get store and create an authenticated session
  54.     store = session.getStore();
  55.     store.connect("xxx.xxx.xxx.xxx", "username", "password");
  56.     // get the default folder
  57.     defaultFolder = store.getDefaultFolder();
  58.   }
  59.   private void displayFolders() throws MessagingException {
  60.     Folder[] allFolders = defaultFolder.list();
  61.     if (allFolders.length > 0) {
  62.       pw.println("<TABLE width='100%'>");
  63.       pw.println("<TR><TD><STRONG>Folder</STRONG></TD>");
  64.       pw.println("<TD><STRONG>Messages</STRONG></TD>");
  65.       pw.println("<TD><STRONG>New</STRONG></TD>");
  66.       pw.println("<TD><STRONG>Unread</STRONG></TD></TR>");
  67.       for (int i = 0; i < allFolders.length; i++) {
  68.         String name = allFolders [i].getName();
  69.         if ((allFolders [i].HOLDS_MESSAGES == Folder.HOLDS_MESSAGES)
  70.             &&!name.equals("Public Folders")) {
  71.           allFolders [i].open(Folder.READ_ONLY);
  72.           pw.println("<TR><TD><A HREF='messages?folder=" + name + "'>" + name
  73.                      + "</A></TD></TD>");
  74.           pw.println("<TD>" + allFolders [i].getMessageCount() + "</TD>");
  75.           pw.println("<TD>" + allFolders [i].getNewMessageCount() + "</TD>");
  76.           pw.println("<TD>" + allFolders [i].getUnreadMessageCount()
  77.                      + "</TD></TR>");
  78.           allFolders [i].close(false);
  79.         }
  80.       }
  81.       pw.println("</TABLE>");
  82.     }
  83.   }
  84. }
  85. /*--- Formatted in Bible Style on Thu, Sep 6, '01 ---*/
  86. /*------ Formatted by Jindent 3.24 Gold 1.02 --- http://www.jindent.de ------*/