• JAVA EE(简述)


    一、平台概述

    JavaEE的全称是Java Enterprise Edition,它是一个开发分布式企业级应用的规范和标准

    Java 平台三个版本:

    • Java ME(Java  Micro  Edition)Java微型版
    • Java SE(Java Standard Edition)Java 标准版
    • Java EE(Java Enterprise Edition) Java企业版

    二、架构概述

     

    Java EE服务器:

    Java EE服务器为符合标准的应用程序组件提供部署,管理和运行的支持

    根据所依赖 的Java EE服务器,应用程序组件可以分成3类。

    • 部署,管理和运行在Java EE服务器上的组件。(Web组件和Ejb组件)
    • 部署和管理在Java EE服务器上,但是被加载到客户机的运行的组件。(Html页面和嵌入页面的Applet的Web资源)
    • 部署和管理没有完全定义在Java EE规范中的组件。(应用程序客户端)

    三、容器概述

     容器为Java EE应用程序组件提供了运行环境。

    容器提供了一份从底层Java EE Api到应用程序组件的联合视图。

    在应用程序组件和Java EE服务之间增加一个容器,就可以让容器透明地为组件注入必须的服务。

    一个标准的Java EE产品会为每个应用程序组件类型,提供一个容器。

    容器概述:

    容器是用来管理组件行为的一个集合工具,组件的行为包括与外部环境的交互、组件的生命周期、组件之间的合作依赖关系等等

    Java EE容器:

    • 应用程序客户端容器:包含组件Application Client
    • Applet容器:包含组件Applet
    • Web组件容器:包含Jsp与Servlet组件
    • 企业Bean容器:也就是EJB容器,包含了EJB组件

    四、服务

     概述:服务是组件和容器之间,以及容器和Java EE服务器之间的接口

     

     

    五、常用服务

     

    JNDI获取数据源

     

    <Resource auth="Container" driverClassName="oracle.jdbc.OracleDriver"
            maxActive="100" maxIdle="30" maxWaite="10000" name="jdbc/jndi"
            password="accp" type="javax.sql.DataSource" url="jdbc:oracle:thin:@localhost:1521:orcl"
            username="accp" />
    /**
         * 通过JNDI获取连接
         */
        public Connection getConnection(){
            Connection conn=null;
            
            try {
                //声明上下文对象
                Context ct=new InitialContext();
                //声明数据源
                DataSource ds=(DataSource) ct.lookup("java:comp/env/jdbc/jndi");
                //得到连接
                conn=ds.getConnection();
            } catch (NamingException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return conn;
            
            
            
        }

     邮件

    package com;
    
    import java.util.Properties;
    
    import javax.mail.Address;
    import javax.mail.BodyPart;
    import javax.mail.Message;
    import javax.mail.Multipart;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeBodyPart;
    import javax.mail.internet.MimeMessage;
    import javax.mail.internet.MimeMultipart;
    
    /**
     * 发送邮件
     *
     */
    public class Mail {
    
        private MimeMessage mimeMsg;
        private Session session;
        private Properties props;
        private String username;
        private String password;
        private Multipart mp;
        
        public Mail(String smtp){
            setSmtpHost(smtp);
            createMimeMessage();
        }
        
        public void setSmtpHost(String hostName){
            System.out.println("设置系统属性:mail.smtp.host="+hostName);
            if(props==null){
                props = System.getProperties();
            }
            props.put("mail.smtp.host", hostName);
        }
        
        public boolean createMimeMessage(){
            try{
                System.out.println("准备获取邮件会话对象!");
                session = Session.getDefaultInstance(props,null);
            }catch(Exception e){
                System.out.println("获取邮件会话对象时发生错误!"+e);
                return false;
            }
            System.out.println("准备创建MIME邮件对象!");
            try{
                mimeMsg = new MimeMessage(session);
                mp = new MimeMultipart();
                
                return true;
            }catch(Exception e){
                System.out.println("创建MIME邮件对象失败!"+e);
                return false;
            }
        }
        /**  
         * 设置SMTP是否需要验证  
         */  
        public void setNeedAuth(boolean need) {    
            System.out.println("设置smtp身份认证:mail.smtp.auth = "+need);    
            if(props == null) props = System.getProperties();    
            if(need){    
                props.put("mail.smtp.auth","true");    
            }else{    
                props.put("mail.smtp.auth","false");    
            }    
        }    
    
        public void setNamePass(String name,String pass) {    
            username = name;
            password = pass;
        } 
    
        
        /**  
         * 设置邮件主题  
         */  
        public boolean setSubject(String mailSubject) {    
            System.out.println("设置邮件主题!");    
            try{    
                mimeMsg.setSubject(mailSubject);    
                return true;    
            }    
            catch(Exception e) {    
                System.err.println("设置邮件主题发生错误!");    
                return false;    
            }    
        }   
           
        /**   
         * 设置邮件正文  
         */    
        public boolean setBody(String mailBody) {    
            try{    
                BodyPart bp = new MimeBodyPart();    
                bp.setContent(""+mailBody,"text/html;charset=GBK");    
                mp.addBodyPart(bp);    
               
                return true;    
            } catch(Exception e){    
            System.err.println("设置邮件正文时发生错误!"+e);    
            return false;    
            }    
        }    
               
        /**   
         * 设置发信人  
         */    
        public boolean setFrom(String from) {    
            System.out.println("设置发信人!");    
            try{    
                mimeMsg.setFrom(new InternetAddress(from)); //设置发信人    
                return true;    
            } catch(Exception e) {    
                return false;    
            }    
        }    
        /**   
         * 设置收信人  
         */    
        public boolean setTo(String to){    
            if(to == null)return false;
            System.out.println("设置收信人!"); 
            try{    
                mimeMsg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));    
                return true;    
            } catch(Exception e) {    
                return false;    
            }      
        }    
           
        /**   
         * 设置抄送人  
         */    
        public boolean setCopyTo(String copyto)    
        {    
            if(copyto == null)return false;    
            try{    
            mimeMsg.setRecipients(Message.RecipientType.CC,(Address[])InternetAddress.parse(copyto));    
            return true;    
            }    
            catch(Exception e)    
            { return false; }    
        }    
           
        /**   
         * 发送邮件  
         */    
        public boolean sendOut()    
        {    
            try{    
                mimeMsg.setContent(mp);    
                mimeMsg.saveChanges();    
                System.out.println("正在发送邮件....");    
                   
                Session mailSession = Session.getInstance(props,null);   
                Transport transport = mailSession.getTransport("smtp");   
                transport.connect((String)props.get("mail.smtp.host"),username,password);    
                transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.TO));  
                   
                System.out.println("发送邮件成功!");    
                transport.close();    
                   
                return true;    
            } catch(Exception e) {    
                System.err.println("邮件发送失败!"+e);    
                return false;    
            }    
        }    
           
        /**  
         * 调用sendOut方法完成邮件发送  
         */  
        public static boolean sendAndCc(String smtp,String from,String to,String copyto,String subject,String content,String username,String password) {   
            Mail theMail = new Mail(smtp);   
            theMail.setNeedAuth(true); //需要验证   
               
            if(!theMail.setSubject(subject)) return false;   
            if(!theMail.setBody(content)) return false;   
            if(!theMail.setTo(to)) return false;   
            if(!theMail.setCopyTo(copyto)) return false;   
            if(!theMail.setFrom(from)) return false;   
            theMail.setNamePass(username,password);
               
            if(!theMail.sendOut()) return false;   
            return true;   
        }   
    }
  • 相关阅读:
    python之mysqldb模块安装
    消失的那3个月__怎么看代码的小结
    四年测试经验总结
    python学习笔记系列----(八)python常用的标准库
    业务逻辑中的测试总结(二)----业务与数据库交互需求的测试分解
    python学习笔记系列----(七)类
    【QUESTION】
    python学习笔记系列----(六)错误和异常
    python学习笔记系列----(五)输入和输出
    Android6.0.1 移植:显示系统(一)--测试framebuffer
  • 原文地址:https://www.cnblogs.com/liunanjava/p/4457420.html
Copyright © 2020-2023  润新知