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;   
    }   
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM