JAVA EE(简述)

时间:2023-03-08 16:00:04
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服务器:

Java EE服务器为符合标准的应用程序组件提供部署,管理和运行的支持

根据所依赖 的Java EE服务器,应用程序组件可以分成3类。

  • 部署,管理和运行在Java EE服务器上的组件。(Web组件和Ejb组件)
  • 部署和管理在Java EE服务器上,但是被加载到客户机的运行的组件。(Html页面和嵌入页面的Applet的Web资源)
  • 部署和管理没有完全定义在Java EE规范中的组件。(应用程序客户端)

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服务器之间的接口

JAVA EE(简述)

JAVA EE(简述)

JAVA EE(简述)

JAVA EE(简述)

JAVA EE(简述)

JAVA EE(简述)

JAVA EE(简述)

JAVA EE(简述)

JAVA EE(简述)

JAVA EE(简述)

JAVA EE(简述)

JAVA EE(简述)

五、常用服务

JAVA EE(简述)

JAVA EE(简述)

JNDI获取数据源

JAVA EE(简述)

JAVA EE(简述)

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