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 EE 毕设项目答辩问题、答案汇总指南奉上
文章目录 前言 一.关于数据库的问题 1.1.为什么采用 MySQL 数据库? 1.2.系统数据是如何跟数据库进行交互? 1.3.JDBC 连接数据库所需四要素? 1.4.JDBC 的操作步骤有几步? ...
- java ee面试题专家总结(必看),Java EE面试题专家总结(必看)
Java EE面试题 第一部分:Servlet/JSP快速入门 1. 请列举至少6种javaEE技术,并简述其作用. 解析: javaEE是一系列的技术,主要包扩13种.对于开发人员来说,了解几种主要 ...
- Java EE:第10章初识Spring MVC框架 课后习题
<Java EE企业级应用开发教程 第2版(Spring+Spring MVC+MyBatis)>黑马程序员编著 中国工信出版集团 人民邮电出版社 目录 1.请简述MyBatis与Spri ...
- JAVA EE框架课程考点复习(大题和判断题)
JAVA EE框架课程考点复习 Spring框架技术简介.优点及体系结构:p19-22 Spring框架实例化Bean的几种方式:p54 Spring的作用域.声明周期及其装配方式:p58-68 Sp ...
- Java EE学习心得
–Java EE学习心得 1. 称为编程专家的秘诀是: 思考-----编程--------思考------编程--.. 编程不能一步到位,不能一上来就编,必须先思考如何写,怎样写?然后再编程 ...
- [JAVA EE] JPA技术基础:完成数据列表的删除
接上一篇:[JAVA EE] JPA技术基础:完成数据列表显示 本章完成数据列表的删除 修改 UserController.java package com.example.demo.controll ...
- [JAVA EE]Spring Boot 控制层:参数传递方法
项目需要参照本人java ee系列前文建立,请读者自行前往本人主页查看. 当然,您自己创建一个项目也是可以的. bean包下的Student.java package com.example.demo ...
- [JAVA EE] Thymeleaf 高级用法:模板布局,带参数的引用片段,表单验证,常用校验注解
模板布局 公共部分通常定义为模板布局:如页眉,页脚,公共导航栏.菜单等. 模板布局定义方法 布局页中用 th:fragment 定义模板片段,其他页面用 th:insert 引用片段 例如:foote ...
- java ee 6 sdk中文版,Java EE 6 SDK+Eclipse JEE+Android ADT-Fun言
很多时候,为了生存,需要不断的了解,学习新东西,于是头脑塞满了便便- -|||- -----------------------.. 按照自己的理解: JDK = Java Develope Kit ...
最新文章
- php正则判断不规范字符串,php学习_第9章_字符串处理与正则表达式
- 全国计算机在线做题,2020全国一级计算机基础及MS Office应用考试在线自测试题库(不限设备,登陆即可做题)...
- 下方点击出项上方对应的插件_你的PPT里装了几个插件?我赌你不知道TA!
- Oracle数据库管理系统:大数据的备份
- linux和用户账户相关的系统文件
- oracle重启数据库一般要多久,优化Oracle停机时间及数据库恢复
- 逻辑漏洞——权限控制问题
- 升级ssl后ssh登录失效_centos7升级openssl、openssh常见问题及解决方法
- hadoop 学习
- 泛微oa连接mysql,泛微OA e-cology 数据库接口信息泄露学习
- 2019年1月1日起,电商法实施、电子证照“国标”正式发布
- Mybatis对Double类型的字符串进行范围查询
- linux下载测序数据,高速下载测序数据(SRA,Fastq等)
- 使用Nightwatch进行端到端测试
- 《CSDN Markdown简明教程》课程上线!
- php培训总结如何写,济南php培训学员的学习笔记总结
- 【算法竞赛学习笔记】Link-Cut-Tree基础-超好懂的数据结构
- 小区挤不挤?来看用ArcGIS计算小区的容积率(附练习数据下载)
- 如何抓住私域流量,让实体店“活”起来!
- Photo Gallery