一、平台概述

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

JAVA EE(简述)相关推荐

  1. 计算机毕业设计答辩慌?软工本科 Java EE 毕设项目答辩问题、答案汇总指南奉上

    文章目录 前言 一.关于数据库的问题 1.1.为什么采用 MySQL 数据库? 1.2.系统数据是如何跟数据库进行交互? 1.3.JDBC 连接数据库所需四要素? 1.4.JDBC 的操作步骤有几步? ...

  2. java ee面试题专家总结(必看),Java EE面试题专家总结(必看)

    Java EE面试题 第一部分:Servlet/JSP快速入门 1. 请列举至少6种javaEE技术,并简述其作用. 解析: javaEE是一系列的技术,主要包扩13种.对于开发人员来说,了解几种主要 ...

  3. Java EE:第10章初识Spring MVC框架 课后习题

    <Java EE企业级应用开发教程 第2版(Spring+Spring MVC+MyBatis)>黑马程序员编著 中国工信出版集团 人民邮电出版社 目录 1.请简述MyBatis与Spri ...

  4. JAVA EE框架课程考点复习(大题和判断题)

    JAVA EE框架课程考点复习 Spring框架技术简介.优点及体系结构:p19-22 Spring框架实例化Bean的几种方式:p54 Spring的作用域.声明周期及其装配方式:p58-68 Sp ...

  5. Java EE学习心得

    –Java EE学习心得   1.    称为编程专家的秘诀是: 思考-----编程--------思考------编程--.. 编程不能一步到位,不能一上来就编,必须先思考如何写,怎样写?然后再编程 ...

  6. [JAVA EE] JPA技术基础:完成数据列表的删除

    接上一篇:[JAVA EE] JPA技术基础:完成数据列表显示 本章完成数据列表的删除 修改 UserController.java package com.example.demo.controll ...

  7. [JAVA EE]Spring Boot 控制层:参数传递方法

    项目需要参照本人java ee系列前文建立,请读者自行前往本人主页查看. 当然,您自己创建一个项目也是可以的. bean包下的Student.java package com.example.demo ...

  8. [JAVA EE] Thymeleaf 高级用法:模板布局,带参数的引用片段,表单验证,常用校验注解

    模板布局 公共部分通常定义为模板布局:如页眉,页脚,公共导航栏.菜单等. 模板布局定义方法 布局页中用 th:fragment 定义模板片段,其他页面用 th:insert 引用片段 例如:foote ...

  9. java ee 6 sdk中文版,Java EE 6 SDK+Eclipse JEE+Android ADT-Fun言

    很多时候,为了生存,需要不断的了解,学习新东西,于是头脑塞满了便便- -|||- -----------------------.. 按照自己的理解: JDK = Java Develope Kit ...

最新文章

  1. php正则判断不规范字符串,php学习_第9章_字符串处理与正则表达式
  2. 全国计算机在线做题,2020全国一级计算机基础及MS Office应用考试在线自测试题库(不限设备,登陆即可做题)...
  3. 下方点击出项上方对应的插件_你的PPT里装了几个插件?我赌你不知道TA!
  4. Oracle数据库管理系统:大数据的备份
  5. linux和用户账户相关的系统文件
  6. oracle重启数据库一般要多久,优化Oracle停机时间及数据库恢复
  7. 逻辑漏洞——权限控制问题
  8. 升级ssl后ssh登录失效_centos7升级openssl、openssh常见问题及解决方法
  9. hadoop 学习
  10. 泛微oa连接mysql,泛微OA e-cology 数据库接口信息泄露学习
  11. 2019年1月1日起,电商法实施、电子证照“国标”正式发布
  12. Mybatis对Double类型的字符串进行范围查询
  13. linux下载测序数据,高速下载测序数据(SRA,Fastq等)
  14. 使用Nightwatch进行端到端测试
  15. 《CSDN Markdown简明教程》课程上线!
  16. php培训总结如何写,济南php培训学员的学习笔记总结
  17. 【算法竞赛学习笔记】Link-Cut-Tree基础-超好懂的数据结构
  18. 小区挤不挤?来看用ArcGIS计算小区的容积率(附练习数据下载)
  19. 如何抓住私域流量,让实体店“活”起来!
  20. Photo Gallery

热门文章

  1. Linux substring if
  2. 中国移动锁定数据业务新战略
  3. SqlConnection,SqlCommand,SqldataReader的用法总结
  4. NPM 修复两个严重漏洞但无法确认是否已遭在野利用,可触发开源软件供应链攻击...
  5. 学习网站的闪卡暴露了美军核机密
  6. PHP源代码后门事件后续:用户数据库遭泄露或是元凶
  7. Adobe 再次发布带外更新,修复影响10款产品的漏洞
  8. 推特警告称开发者 API 密钥或遭泄露
  9. 分享Java 中如何运行字符串表达式?
  10. mysql install and config