一、平台概述

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的几个版本以及jre,jdk等概念——【转载】JDK、Java SE、Java EE、Java ME我该选

    我们平时使用的一些软件,有一部分需要Java环境的支持,但是SUN那么多的产品,让人眼花缭乱的版本号,前看后看都差不多的缩写,让我们选择起来的时候常常望而却步,只好跟着感觉走.所以下面我要介绍的就是那 ...

  2. Eclipse for Java EE软件操作集锦(一)

    以下是我在Java网站开发过程中,关于软件操作Eclipse中,遇到的一些问题并提供了解决方案.一.java web开发使用的集成开发工具是eclipse for Java EE 官方下载地址:htt ...

  3. 【Java EE 学习 80 上】【WebService】

    一.WebService概述 什么是WebService,顾名思义,就是基于Web的服务,它使用Http方式接收和响应外部系统的某种请求,从而实现远程调用.WebService实际上就是依据某些标准, ...

  4. 【Java EE 学习 74 上】【数据采集系统第六天】【使用Jfreechart的统计图实现】【Jfreechart的基本使用方法】

    之前已经实现了数据的采集,现在已经有了基本的数据,下一步就需要使用这些数据实现统计图的绘制了.这里使用Jfreechart实现这些统计图的绘制.首先看一下Jfreechart的基本用法,只有知道了它的 ...

  5. 【Java EE 学习 69 中】【数据采集系统第一天】【SSH框架搭建】

    经过23天的艰苦斗争,终于搞定了数据采集系统~徐培成老师很厉害啊,明明只是用了10天就搞定的项目我却做了23天,还是模仿的...呵呵,算了,总之最后总算是完成了,现在该好好整理该项目了. 第一天的内容 ...

  6. 【Java EE 学习 67 下】【OA项目练习】【SSH整合JBPM工作流】【JBPM项目实战】

    一.SSH整合JBPM JBPM基础见http://www.cnblogs.com/kuangdaoyizhimei/p/4981551.html 现在将要实现SSH和JBPM的整合. 1.添加jar ...

  7. 轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)

    轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)(国家级奖项获奖作品升级版,四版累计印刷27次发行量超10万册的轻量级Jav ...

  8. MyEclipse的项目中把 java EE 5 Libraries 删掉后怎么重新导入

    myeclipse中鼠标右击项目->properties->java Build Path=>Libraries=>Add Library...=>选择MyEclipse ...

  9. 《Java EE 开发技术与案例教程》 这是一本好书啊:简洁精辟(相见恨晚)

    第一章:Java EE 概述 1.get:JPA:Java Persistence API, 数据持久化API: JPA是一种ORM规范,它的实现实例:Hibernate.mybatis 2.Web ...

随机推荐

  1. MVC过滤器中获取实体类属性值

    本文地址:http://www.cnblogs.com/outtamyhead/p/3616913.html,转载请保留本地址! 最近在项目遇到了这个问题:获取Action行参中实体类的属性值,主要的 ...

  2. apache 500错误

    一直以为开了error_log,没想没有加,于是折腾了好久. 开启error_log后,发现是xdebug的max_nesting_level值太小了. 还一个原因是.htaccess文件中的 < ...

  3. HTTP 错误 503.2 - Service Unavailable 正在超过 serverRuntime@appConcurrentRequestLimit 设置的值。

    HTTP 错误 503.2 - Service Unavailable 正在超过 serverRuntime@appConcurrentRequestLimit 设置的值. dudu的解决办法:htt ...

  4. 使用uploadify上传控件无法进入后台问题分析

    分别在.net mvc 和java struts2中使用到 uploadify上传 文件,遇到同样的问题,选中文件上传后,文件无法上传,打上断点后发现没有进入后台. 逐步断点发现 项目共同点是加入了 ...

  5. Unity3D 游戏开发之内存优化

    项目的性能优化主要围绕CPU.GPU和内存三大方面进行. 无论是游戏还是VR应用,内存管理都是其研发阶段的重中之重. 然而,在我们测评过的大量项目中,90%以上的项目都存在不同程度的内存使用问题.就目 ...

  6. 使用ELK(Elasticsearch + Logstash + Kibana) 搭建日志集中分析平台实践--转载

    原文地址:https://wsgzao.github.io/post/elk/ 另外可以参考:https://www.digitalocean.com/community/tutorials/how- ...

  7. 使用Eclipse调试PHP程序

    我安装的是PHP Version 5.3.26,按照网上提示在Eclipse中使用XDebug进行调试,不过配置了却使用不了,下面把解决方法简要说一下. XDebug老是加载不了 From PHP 5 ...

  8. 禁止苹果浏览器Safari将数字识别成电话号码的方法

    偶然发现用ipad访问我的网站时,发现网站上的一串数字变颜色了(原来是红色的),现在变成了蓝色.一开始以为网站出了什么问题,后来在PC端查看,发现颜色依旧是红色.在ipad上点击还会弹出菜单呼叫的选项 ...

  9. 模拟浏览器搜索功能(Ctrl + F)

    写的匆忙,示意一下,有待完善.把以下代码复制到文本文件中,把文件扩展名改为.html就可以运行了. <html> <head> <style type="tex ...

  10. URL 字符编码

    URL 编码会将字符转换为可通过因特网传输的格式. URL - 统一资源定位器 Web 浏览器通过 URL 从 web 服务器请求页面. URL 是网页的地址,比如http://www.cnblogs ...