<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

    搜索

    •  

    積分與排名

    • 積分 - 825709
    • 排名 - 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 閱讀(502) 評論(0)  編輯  收藏 所屬分類: javaIO
    主站蜘蛛池模板: 国产高清对白在线观看免费91| 亚洲第一区二区快射影院| 中文字幕精品无码亚洲字| 国产猛烈高潮尖叫视频免费| 免费看a级黄色片| 日本无卡码免费一区二区三区| 午夜老司机免费视频| 在线不卡免费视频| 成人免费777777| 国产精品二区三区免费播放心 | 免费播放国产性色生活片| 国产精品亚洲精品久久精品| 青青青亚洲精品国产| 色www免费视频| 久久99精品免费一区二区| 日韩精品无码免费专区午夜不卡| 中文字幕日本人妻久久久免费| 日本免费污片中国特一级| 91精品视频在线免费观看| 青青青国产在线观看免费 | 美景之屋4在线未删减免费| 欧洲美女大片免费播放器视频| 一级女性全黄久久生活片免费| 三年在线观看免费观看完整版中文| 日批视频网址免费观看| 99国产精品视频免费观看| 一级女人18毛片免费| 国产又大又粗又硬又长免费| 亚洲人成电影网站国产精品| 亚洲AV综合色一区二区三区| 亚洲福利秒拍一区二区| 亚洲精品9999久久久久无码| 日韩毛片一区视频免费| 午夜无码A级毛片免费视频 | 一级做a爰全过程免费视频毛片| 91在线视频免费观看| 久久精品免费一区二区| 国产成人免费a在线资源| 亚洲国产三级在线观看| 亚洲国产成人久久三区| 亚洲风情亚Aⅴ在线发布|