锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲一卡二卡三卡,亚洲人成在线观看,亚洲妇熟XXXX妇色黄http://www.tkk7.com/keweibo/category/44236.htmlAs long as you are there to lead me ,I won't lose my way zh-cnTue, 09 Mar 2010 19:14:12 GMTTue, 09 Mar 2010 19:14:12 GMT60ServletContext Properties 鎿嶄綔鏂囦歡http://www.tkk7.com/keweibo/articles/314996.htmlKEKETue, 09 Mar 2010 14:19:00 GMThttp://www.tkk7.com/keweibo/articles/314996.htmlhttp://www.tkk7.com/keweibo/comments/314996.htmlhttp://www.tkk7.com/keweibo/articles/314996.html#Feedback0http://www.tkk7.com/keweibo/comments/commentRss/314996.htmlhttp://www.tkk7.com/keweibo/services/trackbacks/314996.htmlpackage 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.



KE 2010-03-09 22:19 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 亚洲天堂视频在线观看| 日韩亚洲一区二区三区| 亚洲综合伊人制服丝袜美腿| 99久久99热精品免费观看国产| 精品亚洲视频在线观看| 国产人成网在线播放VA免费| 亚洲色一色噜一噜噜噜| 国产区在线免费观看| 国产国拍亚洲精品mv在线观看| 中文字幕免费不卡二区| 亚洲AV成人一区二区三区AV| 久久午夜夜伦鲁鲁片无码免费| 亚洲综合小说久久另类区| 一个人在线观看视频免费| 亚洲heyzo专区无码综合| va亚洲va日韩不卡在线观看| 一个人看的www在线免费视频| 国产gv天堂亚洲国产gv刚刚碰| 无码精品人妻一区二区三区免费看| 亚洲国产精品第一区二区| 91香蕉成人免费网站| 亚洲人av高清无码| 亚洲免费一区二区| 99久9在线|免费| 亚洲av永久无码一区二区三区| 亚洲成a人片在线观看国产| 韩国免费a级作爱片无码| 亚洲毛片无码专区亚洲乱| 午夜高清免费在线观看| 男女一边摸一边做爽的免费视频| 亚洲一区二区成人| 日本高清免费不卡视频| 四虎影视无码永久免费| 国产成人亚洲综合网站不卡| 久久精品国产亚洲5555| 国产成人精品久久免费动漫| 亚洲国产高清国产拍精品| 亚洲AV无码专区电影在线观看 | 成人免费视频一区二区| 久久久无码精品亚洲日韩按摩| 日韩免费高清视频|