你的位置:首页 > Java教程

[Java教程]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;    }  }