读书人

web服务器监控(2)

发布时间: 2012-10-30 16:13:36 作者: rapoo

web服务器监控(二)

接上文,工具类源码

?

ConsoleUtil

?

package com.gary.util;/** * 控制台工具 * @author gary */public class ConsoleUtil {    private static LimitQueue<String> queue = new LimitQueue<String>(35);        /**     * 获取控制台文本     * @return     */    public static String get(){    StringBuilder sb = new StringBuilder();    for (String str : queue) {            sb.append(str);            sb.append("\n");        }        return sb.toString();    }        /**     * 输出到控制台     * @param str     */    public static void write(String str){    queue.offer(TimeUtil.getCurrentTime() + ": " + str);    }        /**     * 清空控制台     */    public static void clear(){    queue.clear();    }}

?LimitQueue

?

package com.gary.util;import java.util.Collection;import java.util.Iterator;import java.util.LinkedList;import java.util.Queue;/** * 固定长度队列 * @author gary * */public class LimitQueue<E> implements Queue<E> {    //队列长度    private int limit;    Queue<E> queue = new LinkedList<E>();    public LimitQueue(int limit) {        this.limit = limit;    }    /**     * 入队     * @param e     */    @Override    public boolean offer(E e) {        if (queue.size() >= limit) {            //如果超出长度,入队时,先出队            queue.poll();        }        return queue.offer(e);    }    /**     * 出队     * @return     */    @Override    public E poll() {        return queue.poll();    }    /**     * 获取队列     * @return     */    public Queue<E> getQueue() {        return queue;    }    /**     * 获取限制大小     * @return     */    public int getLimit() {        return limit;    }    @Override    public boolean add(E e) {        return queue.add(e);    }    @Override    public E element() {        return queue.element();    }    @Override    public E peek() {        return queue.peek();    }    @Override    public boolean isEmpty() {        return queue.size() == 0 ? true : false;    }    @Override    public int size() {        return queue.size();    }    @Override    public E remove() {        return queue.remove();    }    @Override    public boolean addAll(Collection<? extends E> c) {        return queue.addAll(c);    }    @Override    public void clear() {        queue.clear();    }    @Override    public boolean contains(Object o) {        return queue.contains(o);    }    @Override    public boolean containsAll(Collection<?> c) {        return queue.containsAll(c);    }    @Override    public Iterator<E> iterator() {        return queue.iterator();    }    @Override    public boolean remove(Object o) {        return queue.remove(o);    }    @Override    public boolean removeAll(Collection<?> c) {        return queue.removeAll(c);    }    @Override    public boolean retainAll(Collection<?> c) {        return queue.retainAll(c);    }    @Override    public Object[] toArray() {        return queue.toArray();    }    @Override    public <T> T[] toArray(T[] a) {        return queue.toArray(a);    }}

?MailAutherticator

?

package com.gary.util;import javax.mail.Authenticator;import javax.mail.PasswordAuthentication;/** * javamail身份验证 * @author gary */public class MailAutherticator extends Authenticator {private String userName;private String password;    public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public MailAutherticator(String userName, String password) {super();this.userName = userName;this.password = password;}@Override    public PasswordAuthentication getPasswordAuthentication() {        return new PasswordAuthentication(userName, password);    }}

?MailUtil

?

package com.gary.util;import java.util.Date;import java.util.Properties;import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.mail.Authenticator;import javax.mail.Multipart;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMultipart;import javax.mail.internet.MimeUtility;/** * 发送E-mail * @author gary * @version 1.0 */public class MailUtil {    private String smtp = null;    private String userName = null;    private String password = null;    public MailUtil(String smtp, String userName, String password) {        this.smtp = smtp;        this.userName = userName;        this.password = password;    }        /**     * 发送简单邮件     * @param subject     * @param from     * @param to     * @param content     * @throws Exception      */    public void sendSimpleMail(String from, String[] to, String subject, String content) throws Exception {        sendMail(subject, from , to, content, null, "text/html;charset=utf-8");    }    /**     * 发送邮件     *      * @param subject     * 邮件主题     * @param from     * 邮件发送人     * "a@qq.com"     * @param to     * 邮件接收人(数组),可以有多个接收人即群发     *String sendTo[] = { "b@qq.com", "c@qq.com" };     * @param text     * 邮件内容     * @param fileNames     * 附件详细地址及重命名     * String fileNames[] = { "C:\\a.txt,a.txt", "C:\\b.txt,b.txt" };     * @param mimeType     * 文本类型,如:"text/html;charset=utf-8"     * @throws Exception     */    @SuppressWarnings("static-access")    public void sendMail(String subject, String from, String[] to, String text, String[] fileNames,            String mimeType) throws Exception {        //邮件会话对象        javax.mail.Session mailSession;        //MIME邮件对象         javax.mail.internet.MimeMessage mimeMsg;        //获得系统属性对象         Properties props = java.lang.System.getProperties();        //设置SMTP主机        props.put("mail.smtp.host", smtp);        //是否到服务器用户名和密码验证        props.put("mail.smtp.auth", "true");        //到服务器验证发送的用户名和密码是否正确         MailAutherticator myEmailAuther = new MailAutherticator(userName, password);        //设置邮件会话,将认证信息放进了Session的创建参数里        mailSession = javax.mail.Session.getInstance(props, (Authenticator) myEmailAuther);        //设置传输协议         javax.mail.Transport transport = mailSession.getTransport("smtp");        //设置from、to等信息         mimeMsg = new javax.mail.internet.MimeMessage(mailSession);        if (!(from == null || from.equals(""))) {            InternetAddress sentFrom = new InternetAddress(from);            //设置发送人地址             mimeMsg.setFrom(sentFrom);        }        InternetAddress[] sendTo = new InternetAddress[to.length];        for (int i = 0; i < to.length; i++) {            sendTo[i] = new InternetAddress(to[i]);        }        mimeMsg.setRecipients(javax.mail.internet.MimeMessage.RecipientType.TO, sendTo);        mimeMsg.setSubject(subject, "utf-8");        MimeBodyPart messageBodyPart1 = new MimeBodyPart();        messageBodyPart1.setContent(text, mimeType);        //附件传输格式         Multipart multipart = new MimeMultipart();        multipart.addBodyPart(messageBodyPart1);        if (fileNames != null) {            for (int i = 0; i < fileNames.length; i++) {                MimeBodyPart messageBodyPart2 = new MimeBodyPart();                //选择出每一个附件名                 String fileName = fileNames[i].split(",")[0];                String displayName = fileNames[i].split(",")[1];                //得到数据源                 FileDataSource fds = new FileDataSource(fileName);                //得到附件本身并至入BodyPart                 messageBodyPart2.setDataHandler(new DataHandler(fds));                //得到文件名同样至入BodyPart                 //messageBodyPart2.setFileName(displayname);                 // messageBodyPart2.setFileName(fds.getName());                 messageBodyPart2.setFileName(MimeUtility.encodeText(displayName));                multipart.addBodyPart(messageBodyPart2);            }        }        mimeMsg.setContent(multipart);        //设置信件头的发送日期         mimeMsg.setSentDate(new Date());        mimeMsg.saveChanges();        //发送邮件         transport.send(mimeMsg);        transport.close();    }}

?StringUtil

?

package com.gary.util;/** * 字符串工具 * @author gary */public class StringUtil {    /**     * 不为空     * @param string     */    public static boolean isNotBlank(String str) {        return !isBlank(str);    }    /**     * 为空     * @param string     */    public static boolean isBlank(String str) {        int strLen;        if ((str == null) || ((strLen = str.length()) == 0)) {            return true;        }        for (int i = 0; i < strLen; ++i) {            if (!Character.isWhitespace(str.charAt(i))) {                return false;            }        }        return true;    }}

?SwingUtil

?

package com.gary.util;import java.awt.Dimension;import java.awt.Toolkit;import javax.swing.JDialog;/** * Swing工具 * @author gary */public class SwingUtil {    /**     * 居中显示Dialog     */    public static void show(JDialog jd) {        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();        Dimension frameSize = jd.getSize();        if (frameSize.height > screenSize.height) {            frameSize.height = screenSize.height;        }        if (frameSize.width > screenSize.width) {            frameSize.width = screenSize.width;        }        jd.setLocation((screenSize.width - frameSize.width) / 2,                (screenSize.height - frameSize.height) / 2);        jd.setModal(true);        jd.setVisible(true);    }    }

?TimeUtil

?

package com.gary.util;import java.util.Calendar;/** * 时间工具 * @author gary * */public class TimeUtil {    /**     * 获取当前时间     * @return     */    public static String getCurrentTime(){    return new java.sql.Timestamp(new java.util.Date().getTime()).toString();    }            /**     * 返回星期几     * @author gary     * @return     * 1-星期日     * 2-星期一     * 3-星期二     * 4-星期三     * 5-星期四     * 6-星期五     * 7-星期六     */    public static int getDayOfWeek(){    Calendar cal = Calendar.getInstance();    return cal.get(Calendar.DAY_OF_WEEK);    }    }

?URLUtil

?

package com.gary.util;import java.io.IOException;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;/** * URL工具 * @author gary * */public class URLUtil {    /**     * 连接     * @param urlString     * @throws MalformedURLException     * @throws IOException      */    public void connect(String urlString) throws MalformedURLException, IOException {        URL url = new URL(urlString);        URLConnection c = url.openConnection();        c.connect();    }}

读书人网 >Web前端

热点推荐