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;
}
}
JAVA EE(简述)的更多相关文章
- java的几个版本以及jre,jdk等概念——【转载】JDK、Java SE、Java EE、Java ME我该选
我们平时使用的一些软件,有一部分需要Java环境的支持,但是SUN那么多的产品,让人眼花缭乱的版本号,前看后看都差不多的缩写,让我们选择起来的时候常常望而却步,只好跟着感觉走.所以下面我要介绍的就是那 ...
- Eclipse for Java EE软件操作集锦(一)
以下是我在Java网站开发过程中,关于软件操作Eclipse中,遇到的一些问题并提供了解决方案.一.java web开发使用的集成开发工具是eclipse for Java EE 官方下载地址:htt ...
- 【Java EE 学习 80 上】【WebService】
一.WebService概述 什么是WebService,顾名思义,就是基于Web的服务,它使用Http方式接收和响应外部系统的某种请求,从而实现远程调用.WebService实际上就是依据某些标准, ...
- 【Java EE 学习 74 上】【数据采集系统第六天】【使用Jfreechart的统计图实现】【Jfreechart的基本使用方法】
之前已经实现了数据的采集,现在已经有了基本的数据,下一步就需要使用这些数据实现统计图的绘制了.这里使用Jfreechart实现这些统计图的绘制.首先看一下Jfreechart的基本用法,只有知道了它的 ...
- 【Java EE 学习 69 中】【数据采集系统第一天】【SSH框架搭建】
经过23天的艰苦斗争,终于搞定了数据采集系统~徐培成老师很厉害啊,明明只是用了10天就搞定的项目我却做了23天,还是模仿的...呵呵,算了,总之最后总算是完成了,现在该好好整理该项目了. 第一天的内容 ...
- 【Java EE 学习 67 下】【OA项目练习】【SSH整合JBPM工作流】【JBPM项目实战】
一.SSH整合JBPM JBPM基础见http://www.cnblogs.com/kuangdaoyizhimei/p/4981551.html 现在将要实现SSH和JBPM的整合. 1.添加jar ...
- 轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)
轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)(国家级奖项获奖作品升级版,四版累计印刷27次发行量超10万册的轻量级Jav ...
- MyEclipse的项目中把 java EE 5 Libraries 删掉后怎么重新导入
myeclipse中鼠标右击项目->properties->java Build Path=>Libraries=>Add Library...=>选择MyEclipse ...
- 《Java EE 开发技术与案例教程》 这是一本好书啊:简洁精辟(相见恨晚)
第一章:Java EE 概述 1.get:JPA:Java Persistence API, 数据持久化API: JPA是一种ORM规范,它的实现实例:Hibernate.mybatis 2.Web ...
随机推荐
- Mac OS使用ll、la、l等ls的别名命令
在linux下习惯使用ll.la.l等ls别名的童鞋到mac os可就郁闷了-- 其实只要在用户目录下建立一个脚本“.bash_profile”,并输入以下内容即可: alias ll='ls -al ...
- WWDC2015 结束.新一波更新以及bug即将来袭.
WWDC结束.新一波更新以及bug即将来袭. HTTPS 将成为标准链接. http被报错. GamePlayKit 这是搞那样. 还有ReplayKit 那些什么录像分享什么的还有活路么? Mod ...
- 《编写高质量代码:改善C#程序的157个建议》源码下载
==== 目录 前 言第一部分 语言篇第1章 基本语言要素 / 2建议1:正确操作字符串 / 2建议2:使用默认转型方法 / 6建议3:区别对待强制转型与as和is / 9建议4:TryParse比P ...
- 关于4K Block Size的Device和 Aligned IO
背景:最近采购了一批新的服务器,底层的存储设备的默认physical sector size从原有的 512B 改为了 4K. 装完系统以后,在做数据库物理备份恢复时xtrabackup报了这么一个错 ...
- NPM install - killed error solution
在接手一个Node项目的时候,npm install.却出现了"killed"的错误.以为是Node版本的问题,熟练地切换了0.11与0.10版,同样无解. 由于新的npm版本吧, ...
- An Introduction to Garbage Collection(垃圾回收简介)
1. Introduction 2. Principles 3. Advantages 4. Disadvantages 5. 常见的垃圾回收技术 5.1. 跟踪式垃圾回收 5.1.1. 基本算法 5 ...
- CentOS6.5菜鸟之旅:安装ATI显卡驱动
一.前言 自从安装了CentOS,我的显卡就没消停过,一直在彪高温而且噪音特别大,于是决定上网搜索解决办法.下面记录下来以供日后查阅. 二.安装fglrx driver(ATI/AMD 显卡的linu ...
- C#引用C++代码
现在在Windows下的应用程序开发,VS.Net占据了绝大多数的份额.因此很多以前搞VC++开发的人都转向用更强大的VS.Net.在这种情况下,有很多开发人员就面临了如何在C#中使用C++开发好的类 ...
- 在uwp中复活常用的vb库函数
这个博文是纯原创的,转载一定要说明作者是 Nukepayload2!! 在.Net Core 中,很多地方被精简了,有个重灾区就是vb语言库.从当初的囊括vb6库函数并且附带后期绑定到现在的几个函数加 ...
- idea使用maven搭建springmvc
最近学着搭建springmvc,写此博客记录一下 idea版本:2016.3.1maven: apache-maven-3.3.9tomcat:apache-tomcat-8.5.8 1.New Pr ...