<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 6  文章 - 129  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(14)

    隨筆檔案(6)

    文章分類(467)

    文章檔案(423)

    相冊

    收藏夾(18)

    JAVA

    搜索

    •  

    積分與排名

    • 積分 - 826119
    • 排名 - 49

    最新評論

    閱讀排行榜

    評論排行榜

    package com.apress.dwrprojects.instamail;


    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.IOException;
    import java.util.Properties;
    import javax.servlet.ServletContext;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;


    /**
     * This class deals with maintaining options, including the e-mail account.
     *
     * @author <a href="mailto:fzammetti@omnytex.com">Frank W. Zammetti</a>.
     */
    public class OptionsManager {


      /**
       * Log instance.
       */
      private static Log log = LogFactory.getLog(OptionsManager.class);


      /**
       * File name of the options file.
       */
      private static final String optionsFilename = "options.properties";


      /**
       * This method retrieves the options and returns them.  If no
       * optionsFilename file is found, a 'blank' DTO is returned.
       *
       * @param  sc ServletContext associates with the request.
       * @return    An OptionsDTO containing all the stored options.
       */
      public OptionsDTO retrieveOptions(ServletContext sc) {

        // Instantiate an OptionsDTO, and by default assume it will be configured.
        // This means the application has already been configured for use.  This
        // affects what the user can do when the app is accessed initially.
        OptionsDTO options = new OptionsDTO();
        options.setConfigured(true);

        // Read in the options.
        InputStream isFeedFile =
          sc.getResourceAsStream("/WEB-INF/" + optionsFilename);

        Properties props = new Properties();
        try {
          if (isFeedFile == null) {
            throw new IOException(optionsFilename + " not found");
          }
          props.load(isFeedFile);
          isFeedFile.close();
        } catch (IOException e) {
          log.info("No " + optionsFilename + " file, a blank DTO will " +
            "be returned.");
          // Make sure the OptionsDTO is set as unconfigured so that when the
          // index.jsp page is loaded, all the user will be allowed to do is go to
          // the Options views.
          options.setConfigured(false);
          props.setProperty("pop3Server", "");
          props.setProperty("pop3ServerRequiresLogin", "false");
          props.setProperty("pop3Username", "");
          props.setProperty("pop3Password", "");
          props.setProperty("smtpServer", "");
          props.setProperty("smtpServerRequiresLogin", "false");
          props.setProperty("smtpUsername", "");
          props.setProperty("smtpPassword", "");
          props.setProperty("fromAddress", "");
        }

        // Populate OptionsDTO from options Properties.
        options.setPop3Server(props.getProperty("pop3Server"));
        options.setPop3ServerRequiresLogin(
          props.getProperty("pop3ServerRequiresLogin"));
        options.setPop3Username(props.getProperty("pop3Username"));
        options.setPop3Password(props.getProperty("pop3Password"));
        options.setSmtpServer(props.getProperty("smtpServer"));
        options.setSmtpServerRequiresLogin(
          props.getProperty("smtpServerRequiresLogin"));
        options.setSmtpUsername(props.getProperty("smtpUsername"));
        options.setSmtpPassword(props.getProperty("smtpPassword"));
        options.setFromAddress(props.getProperty("fromAddress"));

        return options;

      } // End retrieveOptions().


      /**
       * This method saves the options.
       *
       * @param  pop3Server              The POP3 server address.
       * @param  pop3ServerRequiresLogin Does the POP3 server require login?
       * @param  pop3Username            The POP3 username.
       * @param  pop3Password            The POP3 password.
       * @param  smtpServer              The SMTP server address.
       * @param  smtpServerRequiresLogin Does the SMTP server require login?
       * @param  smtpUsername            The SMTP username.
       * @param  smtpPassword            The SMTP password.
       * @param  fromAddress             From address for outgoing messages.
       * @param  sc                      ServletContext associated with the request.
       * @return                         A message saying the save was OK.
       */
      public String saveOptions(String pop3Server, String pop3ServerRequiresLogin,
        String pop3Username, String pop3Password, String smtpServer,
        String smtpServerRequiresLogin, String smtpUsername,
        String smtpPassword, String fromAddress, ServletContext sc) {

          // Log what we received.
          log.info("\nSaving options:\n" +
          "pop3Server = " + pop3Server + "\n" +
            "pop3ServerRequiresLogin = " + pop3ServerRequiresLogin + "\n" +
            "pop3Username = " + pop3Username + "\n" +
            "pop3Password = " + pop3Password + "\n" +
            "smtpServer = " + smtpServer + "\n" +
            "smtpServerRequiresLogin = " + smtpServerRequiresLogin + "\n" +
            "smtpUsername = " + smtpUsername + "\n" +
            "smtpPassword = " + smtpPassword + "\n" +
            "fromAddress = " + fromAddress + "\n");

          String result = "";

          // Populate Properties structure.
          Properties props = new Properties();
          props.setProperty("pop3Server", pop3Server);
          props.setProperty("pop3ServerRequiresLogin",
            pop3ServerRequiresLogin);
          props.setProperty("pop3Username", pop3Username);
          props.setProperty("pop3Password", pop3Password);
          props.setProperty("smtpServer", smtpServer);
          props.setProperty("smtpServerRequiresLogin",
            smtpServerRequiresLogin);
          props.setProperty("smtpUsername", smtpUsername);
          props.setProperty("smtpPassword", smtpPassword);
          props.setProperty("fromAddress",  fromAddress);

          // Lastly, delete any existing optionsFilename file in WEB-INF and
          // write out a new version from the Properties object we just populated.
          // Return a message saying the operation was complete, or if any problems
          // occur, a message saying what went wrong.
          FileOutputStream fos = null;
          try {
            new File(sc.getRealPath("WEB-INF") + "/" + optionsFilename).delete();
            fos = new FileOutputStream(sc.getRealPath("WEB-INF") +
              "/" + optionsFilename);
            props.store(fos, null);
            fos.flush();
            result = "Options have been saved.";

          } catch (IOException e) {
            log.error("Error saving contact:");
            e.printStackTrace();
            result = "Options could not be saved.  " +
              "Please review logs for details.";
          } finally {
            try {
              if (fos != null) {
                fos.close();
              }
            } catch (IOException e) {
              log.error("Error closing fos: " + e);
            }
          }

          return result;

      } // End saveOptions().


    } // End class.



    posted on 2010-03-09 22:19 Ke 閱讀(503) 評論(0)  編輯  收藏 所屬分類: javaIO
    主站蜘蛛池模板: 亚洲日本在线观看视频| 亚洲人成网站在线观看播放动漫| 全黄A免费一级毛片| 免费福利资源站在线视频| 黄色短视频免费看| 中文字幕乱码免费看电影| 久久久久久久99精品免费观看| 国产成人综合亚洲| 一级毛片免费播放试看60分钟| 99999久久久久久亚洲| 亚洲av中文无码乱人伦在线观看| 91天堂素人精品系列全集亚洲| 久久夜色精品国产亚洲av| 亚洲VA中文字幕无码一二三区| 久久久久亚洲精品无码网址| 亚洲电影免费在线观看| 亚洲国产乱码最新视频| 五月婷婷免费视频| h在线观看视频免费网站| 国产美女无遮挡免费网站| 精品国产综合成人亚洲区| 亚洲五月丁香综合视频| 一个人看的www免费高清| 91久久精品国产免费一区| 日美韩电影免费看| 亚洲AV日韩精品久久久久久| 亚洲日本va一区二区三区| a级片在线免费看| 天天看免费高清影视| 亚洲国产精品乱码一区二区| 中文字幕亚洲综合久久综合| 中国性猛交xxxxx免费看| AV片在线观看免费| 国产成人亚洲综合无码精品| 亚洲国产AV无码一区二区三区| 国产亚洲精品美女久久久久| 久久精品视频免费播放| 免费大片黄手机在线观看| 亚洲天堂中文字幕| sihu国产精品永久免费| 男人的好看免费观看在线视频|