「java邮件app」java邮件api

博主:adminadmin 2023-01-26 12:42:07 309

今天给各位分享java邮件app的知识,其中也会对java邮件api进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

怎样在java project下使用swing写一个mail邮件收发软件,javax.mail在java工程下不能用。

package com.mail.test;

import java.util.Date;

import java.util.Properties;

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;

import javax.sql.DataSource;

import sun.misc.BASE64Encoder;

public class MailSender {

/**

* 发送单个邮件

* @throws Exception

*/

public void sendMail() throws Exception{

Properties props = new Properties();//创建属性对象

props.put("mail.smtp.host", getHost());//设置smtp服务器地址

props.put("mail.smtp.auth", "true");//设置服务器smtp需要验证

Session session = Session.getInstance(props, null);//创建新邮件并群发

//Session session = Session.getDefaultInstance(props);

//session.setDebug(true);

MimeMessage message = new MimeMessage(session);//创建过程对象

message.setFrom(new InternetAddress(getFromAddr()));

message.addRecipient(Message.RecipientType.TO,new InternetAddress(getToAddr()));

message.setSubject(getTitle());//设置主题

Multipart multipart = new MimeMultipart();

BodyPart contentPart = new MimeBodyPart();

contentPart.setContent(this.getSendtext(), "text/html;charset=GBK");//设置信件内容

multipart. addBodyPart(contentPart);

if(getAttachPath() != null getAttachName() != null){

BodyPart attachmentPart= new MimeBodyPart();

// DataSource source = new FileDataSource(getAttachPath());

// attachmentPart.setDataHandler(new DataHandler(source));

BASE64Encoder enc = new BASE64Encoder();

attachmentPart.setFileName("=?GBK?B?"+enc.encode(getAttachName().getBytes())+"?=");

multipart.addBodyPart(attachmentPart);

}

message.setContent(multipart);

message.saveChanges();

Transport transport = session.getTransport("smtp");

transport.connect(host, getUsername(), getPassword());

transport.sendMessage(message, message.getAllRecipients());

transport.close();

}

/**

* 群发邮件

* @throws Exception

*/

public void sendMails() throws Exception{

Properties props = new Properties();//创建属性对象

props.put("mail.smtp.host", getHost());//设置smtp服务器地址

props.put("mail.smtp.auth", "true");//设置服务器smtp需要验证

Session session = Session.getInstance(props, null);//创建新邮件并群发

//Session session = Session.getDefaultInstance(props);

//session.setDebug(true);

MimeMessage message = new MimeMessage(session);//创建过程对象

message.setFrom(new InternetAddress(getFromAddr()));//设置发送邮件地址

message.setSentDate(new Date());//设置时间

InternetAddress[] address = new InternetAddress[this.getMutliTo().length]; //群发地址

for(int i = 0; i this.getMutliTo().length; i++) { //循环发送

address[i] = new InternetAddress((this.getMutliTo())[i]);

}

message.setRecipients(Message.RecipientType.TO, address);

// message.addRecipient(Message.RecipientType.TO,new InternetAddress(getToAddr()));

message.setSubject(getTitle());//设置主题

Multipart multipart = new MimeMultipart();

BodyPart contentPart = new MimeBodyPart();

contentPart.setContent(this.getSendtext(), "text/html;charset=GBK");//设置信件内容

multipart. addBodyPart(contentPart);

if(getAttachPath() != null getAttachName() != null){

BodyPart attachmentPart= new MimeBodyPart();

// DataSource source = new FileDataSource(getAttachPath());

// attachmentPart.setDataHandler(new DataHandler(source));

BASE64Encoder enc = new BASE64Encoder();

attachmentPart.setFileName("=?GBK?B?"+enc.encode(getAttachName().getBytes())+"?=");

multipart.addBodyPart(attachmentPart);

}

message.setContent(multipart);

message.saveChanges();

Transport transport = session.getTransport("smtp");

transport.connect(host, getUsername(), getPassword());

transport.sendMessage(message, message.getAllRecipients());

transport.close();

}

private String host = null; //邮件服务器

private String fromAddr = null; //发送邮件地址

private String toAddr = null; //接收邮件地址

private String username = null; //发送邮件用户名

private String password = null; //发送邮件密码

private String title = null; //邮件标题

private String attachPath = null; //邮件附件路径

private String attachName = null; //邮件附件名

private String sendtext = null; //邮件内容

private String[] MutliTo = null; //群发用户

public String[] getMutliTo() {

return MutliTo;

}

public void setMutliTo(String[] mutliTo) {

MutliTo = mutliTo;

}

public String getSendtext() {

return sendtext;

}

public void setSendtext(String sendtext) {

this.sendtext = sendtext;

}

public String getHost() {

return host;

}

public void setHost(String host) {

this.host = host;

}

public String getFromAddr() {

return fromAddr;

}

public void setFromAddr(String fromAddr) {

this.fromAddr = fromAddr;

}

public String getToAddr() {

return toAddr;

}

public void setToAddr(String toAddr) {

this.toAddr = toAddr;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public String getTitle() {

return title;

}

public void setTitle(String title) {

this.title = title;

}

public String getAttachPath() {

return attachPath;

}

public void setAttachPath(String attachPath) {

this.attachPath = attachPath;

}

public String getAttachName() {

return attachName;

}

public void setAttachName(String attachName) {

this.attachName = attachName;

}

}

JAVA是什么意思?讲的详细一点~~~是手机软件吗?

Java名词解释

Abstract class 抽象类:抽象类是不允许实例化的类,因此一般它需要被进行扩展继承。

Abstract method 抽象方法:抽象方法即不包含任何功能代码的方法。

Access modifier 访问控制修饰符:访问控制修饰符用来修饰Java中类、以及类的方法和变量的访问控制属性。

Anonymous class 匿名类:当你需要创建和使用一个类,而又不需要给出它的名字或者再次使用的使用,就可以利用匿名类。

Anonymous inner classes 匿名内部类:匿名内部类是没有类名的局部内部类。

API 应用程序接口:提供特定功能的一组相关的类和方法的集合。

Array 数组:存储一个或者多个相同数据类型的数据结构,使用下标来访问。在Java中作为对象处理。

Automatic variables 自动变量:也称为方法局部变量method local variables,即声明在方法体中的变量。

AWT抽象窗口工具集:一个独立的API平台提供用户界面功能。

Base class 基类:即被扩展继承的类。

Blocked state 阻塞状态:当一个线程等待资源的时候即处于阻塞状态。阻塞状态不使用处理器资源

Call stack 调用堆栈:调用堆栈是一个方法列表,按调用顺序保存所有在运行期被调用的方法。

Casting 类型转换 :即一个类型到另一个类型的转换,可以是基本数据类型的转换,也可以是对象类型的转换。

char 字符:容纳单字符的一种基本数据类型。

Child class 子类:见继承类Derived class

Class 类:面向对象中的最基本、最重要的定义类型。

Class members 类成员:定义在类一级的变量,包括实例变量和静态变量。

Class methods 类方法:类方法通常是指的静态方法,即不需要实例化类就可以直接访问使用的方法。

Class variable 类变量:见静态变量Static variable

Collection 容器类:容器类可以看作是一种可以储存其他对象的对象,常见的容器类有Hashtables和Vectors。

Collection interface 容器类接口:容器类接口定义了一个对所有容器类的公共接口。

Collections framework 容器类构架:接口、实现和算法三个元素构成了容器类的架构。

Constructor 构造函数:在对象创建或者实例化时候被调用的方法。通常使用该方法来初始化数据成员和所需资源。

Containers容器:容器是一种特殊的组件,它可以容纳其他组件。

Declaration 声明:声明即是在源文件中描述类、接口、方法、包或者变量的语法。

Derived class 继承类:继承类是扩展继承某个类的类。

Encapsulation 封装性:封装性体现了面向对象程序设计的一个特性,将方法和数据组织在一起,隐藏其具体实现而对外体现出公共的接口。

Event classes 事件类:所有的事件类都定义在java.awt.event包中。

Event sources 事件源:产生事件的组件或对象称为事件源。事件源产生事件并把它传递给事件监听器event listeners。

Exception 异常:异常在Java中有两方面的意思。首先,异常是一种对象类型。其次,异常还指的是应用中发生的一种非标准流程情况,即异常状态。

Extensibility扩展性:扩展性指的是面向对象程序中,不需要重写代码和重新设计,能容易的增强源设计的功能。

Finalizer 收尾:每个类都有一个特殊的方法finalizer,它不能被直接调用,而被JVM在适当的时候调用,通常用来处理一些清理资源的工作,因此称为收尾机制。

Garbage collection 垃圾回收机制:当需要分配的内存空间不再使用的时候,JVM将调用垃圾回收机制来回收内存空间。

Guarded region 监控区域:一段用来监控错误产生的代码。

Heap堆:Java中管理内存的结构称作堆。

Identifiers 标识符:即指定类、方法、变量的名字。注意Java是大小写敏感的语言。

Import statement 引入语法:引入语法允许你可以不使用某个类的全名就可以参考这个类。

Inheritance 继承:继承是面向对象程序设计的重要特点,它是一种处理方法,通过这一方法,一个对象可以获得另一个对象的特征。

Inner classes 内部类:内部类与一般的类相似,只是它被声明在类的内部,或者甚至某个类方法体中。

Instance 实例:类实例化以后成为一个对象。

Instance variable 实例变量:实例变量定义在对象一级,它可以被类中的任何方法或者其他类的中方法访问,但是不能被静态方法访问。

Interface 接口:接口定义的是一组方法或者一个公共接口,它必须通过类来实现。

Java source file Java源文件:Java源程序包含的是Java程序语言计算机指令。

Java Virtual Machine (JVM) Java虚拟机:解释和执行Java字节码的程序,其中Java字节码由Java编译器生成。

javac Java编译器:Javac是Java编译程序的名称。

JVM Java虚拟机:见Java虚拟机

Keywords 关键字:即Java中的保留字,不能用作其他的标识符。

Layout managers 布局管理器:布局管理器是一些用来负责处理容器中的组件布局排列的类。

Local inner classes 局部内部类:在方法体中,或者甚至更小的语句块中定义的内部类。

Local variable 局部变量:在方法体中声明的变量

Member inner classes 成员内部类:定义在封装类中的没有指定static修饰符的内部类。

Members 成员:类中的元素,包括方法和变量。

Method 方法:完成特定功能的一段源代码,可以传递参数和返回结果,定义在类中。

Method local variables 方法局部变量:见自动变量Automatic variables

Modifier 修饰符:用来修饰类、方法或者变量行为的关键字。

Native methods 本地方法:本地方法是指使用依赖平台的语言编写的方法,它用来完成Java无法处理的某些依赖于平台的功能。

Object 对象:一旦类实例化之后就成为对象。

Overloaded methods 名称重载方法:方法的名称重载是指同一个类中具有多个方法,使用相同的名称而只是其参数列表不同。

Overridden methods 覆盖重载方法:方法的覆盖重载是指父类和子类使用的方法采用同样的名称、参数列表和返回类型。

Package 包:包即是将一些类聚集在一起的一个实体。

Parent class 父类:被其他类继承的类。也见基类。

Private members 私有成员:私有成员只能在当前类被访问,其他任何类都不可以访问之。

Public members 公共成员:公共成员可以被任何类访问,而不管该类属于那个包。

Runtime exceptions 运行时间异常:运行时间异常是一种不能被你自己的程序处理的异常。通常用来指示程序BUG。

Source file 源文件:源文件是包含你的Java代码的一个纯文本文件。

Stack trace 堆栈轨迹:如果你需要打印出某个时间的调用堆栈状态,你将产生一个堆栈轨迹。

Static inner classes 静态内部类:静态内部类是内部类最简单的形式,它于一般的类很相似,除了被定义在了某个类的内部。

Static methods 静态方法:静态方法声明一个方法属于整个类,即它可以不需要实例化一个类就可以通过类直接访问之。

Static variable 静态变量:也可以称作类变量。它类似于静态方法,也是可以不需要实例化类就可以通过类直接访问。

Superclass 超类:被一个或多个类继承的类。

Synchronized methods 同步方法:同步方法是指明某个方法在某个时刻只能由一个线程访问。

Thread 线程:线程是一个程序内部的顺序控制流。

Time-slicing 时间片:调度安排线程执行的一种方案。

Variable access 变量访问控制:变量访问控制是指某个类读或者改变一个其他类中的变量的能力。

Visibility 可见性: 可见性体现了方法和实例变量对其他类和包的访问控制。

容器:充当中间件的角色

WEB容器:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP,SERVLET直接更容器中的环境变量接口交互,不必关注其它系统问题。主要有WEB服务器来实现。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。该容器提供的接口严格遵守J2EE规范中的WEB APPLICATION 标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。

EJB容器:Enterprise java bean 容器。更具有行业领域特色。他提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容器,马上就会被容器进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。例如邮件服务、事务管理。

WEB容器和EJB容器在原理上是大体相同的,更多的区别是被隔离的外界环境。WEB容器更多的是跟基于HTTP的请求打交道。而EJB容器不是。它是更多的跟数据库、其它服务打交道。但他们都是把与外界的交互实现从而减轻应用程序的负担。例如SERVLET不用关心HTTP的细节,直接引用环境变量session,request,response就行、EJB不用关心数据库连接速度、各种事务控制,直接由容器来完成。

RMI/IIOP:远程方法调用/internet对象请求中介协议,他们主要用于通过远程调用服务。例如,远程有一台计算机上运行一个程序,它提供股票分析服务,我们可以在本地计算机上实现对其直接调用。当然这是要通过一定的规范才能在异构的系统之间进行通信。RMI是JAVA特有的。

JNDI:JAVA命名目录服务。主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。

JMS:JAVA消息服务。主要实现各个应用程序之间的通讯。包括点对点和广播。

JAVAMAIL:JAVA邮件服务。提供邮件的存储、传输功能。他是JAVA编程中实现邮件功能的核心。相当MS中的EXCHANGE开发包。

JTA:JAVA事务服务。提供各种分布式事务服务。应用程序只需调用其提供的接口即可。

JAF:JAVA安全认证框架。提供一些安全控制方面的框架。让开发者通过各种部署和自定义实现自己的个性安全控制策略。

EAI:企业应用集成。是一种概念,从而牵涉到好多技术。J2EE技术是一种很好的集成实现。

电脑java软件和手机java的区别

什么是J2EE、J2SE、J2ME

随着Internet网络的迅速发展,基于互联网的企业应用要求软 件平台具有开放性、分布性和平台无关性。于是就相继出现了RPC/COM/CORBA等技术,但这些技术在实际应用中存在着许多不足和局限。它们的特定协 议难以通过防火墙,因而不适于Web上的应用开发。为了进一步开发基于Web的应用,出现了Sun公司的Sun ONE(Open Net Environment 开发网络环境)和Microsoft公司的.net等Web 服务技术体系。

Sun ONE体系结构以Java语言为核心,包括J2SE/J2EE/J2ME和一系列的标准、技术及协议。它包括Sun独有的iPlanet软件系列,其中有 在市场上受欢迎的LDAP目录服务器软件,以及Forte for Java——便于在任何环境下书写Java 语言的软件工具。我们很容易就能从网上免费获得和使用包括Java 集成开发环境、Java数据库和中间件(Application Server)服务器等产品,以及它们的源代码。Sun ONE更接近或能满足互联网在智能化Web服务方面对分布性、开发性和平台无关性的要求。

随 着Java技术的不断发展,它根据市场进一步细分为:针对企业网应用的J2EE(Java 2 EntERPrise Edition)、针对普通PC应用的J2SE(Java 2 Standard Edition)和针对嵌入式设备及消费类电器的J2ME(Java 2 Micro Edition)三个版本。本文就Sun ONE的Java核心应用——J2SE/J2EE/J2ME作一些介绍。

J2EE技术应用

J2EE是Sun公司推出的一种全新概念的模型,比传统的互联网应用程序模型更有优势。

J2EE模型

J2EE的应用编程模型(J2EE Blueprints)提供了一种用于实施基于J2EE多层应用的文档和实例套件的体系模型,简化了这项复杂的工作。它被开发人员用作设计和优化组件,以便开发人员从策略上对开发工作进行分工。

J2EE应用编程模型要求开发者将自己的工作分成两类:商业逻辑和表示逻辑,其余则由系统资源自动处理,不必为中间层管道进行编码。这样,开发人员就能将更多的时间花在商业逻辑和表示逻辑上。对重视缩短项目周期的公司来说,这种转变深受欢迎。

J2EE平台

J2EE 平台是运行J2EE应用的标准环境,由J2EE部署规范(一套所有J2EE平台产品都必须支持的标准)、IETF标准集和CORBA标准组成。最新的 J2EE平台还添加了JavaBean组件模型。开发人员可以利用JavaBean组件模型来自定义Java类实例,并可通过已定义的事件访问Java 类。

J2EE支持EJB,因此开发人员可以执行多用户交易功能。当在J2EE服务器上运行时,Enterprise JavaBeans将应用逻辑分成可再利用和可扩展的代码段。Enterprise JavaBeans并不是新特征,但是通过定义标准客户端和服务API,J2EE增强了它的能力和可移植性。

EJB在服务器的一个容器内运行,提供所有典型的中间层服务,如事务管理、安全、远程客户连接、生存周期管理和数据库连接缓冲。为了让事务系统在存在EJB容器的情况下运行,开发人员只需在部署描述文件中定义Beans的事务属性即可。

J2EE通过定义一组标准的结构来实现它的优势,例如:

1.J2EE Application Programming Model,是一种用于开发多层次、瘦型客户用户程序的标准设计模型;

2. J2EE Platform,是一个标准的平台,用来整合J2EE的应用程序,并指定一系列的接口和方法;

3. J2EE Compatibility Test Suite,是一套兼容测试组件,用来检测产品是否同J2EE平台兼容;

4.J2EE Reference Implementation,用来示范J2EE的能力。

J2EE服务器

Sun 的J2EE服务器通过Java 命名和目录接口(JNDI)、认证、HTTP及与Enterprise JavaBeans兼容的能力,提供命名和目录服务。JNDI是Java平台的一种标准扩展版,向企业内的命名和目录服务提供具有Java功能的,带有统 一接口的应用,包括LDAP。

J2EE服务器还利用了Java Servlet技术。Java Servlet可以看作是运行在服务器上的一个小程序,它向开发人员提供以组件为基础创建基于Web应用的、独立于平台的方法。它不像利用CGI那样具有 性能局限。Java Servlet是一种扩展Web服务器功能的简单技巧。由于它是用Java编写的,因而能够访问整个Java API库,也包括用于访问企业数据库的JDBC API。

JSP是Java Servlet的一种扩展。Java Servlet提供开发和显示来自服务器的交互式Web页。如今JSP又有了进一步的改进,它使得创建和支持静态模板和动态内容相结合的HTML和XML页面更加容易。

安全性

J2EE 平台定义了一种标准的公开存取控制规则,当程序在企业平台上开发时就已被程序师定义和解释了。J2EE也需要提供一个标准的注册机制,以便应用程序不会将 这些注册机制和逻辑相混合,从而使相同的工作执行于大量的不同环境中时并不需要改变源代码。例如:J2EE应用程序开发人员可以指定几个安全级别,当用户 访问数据时,他们可写出代码来检查当前用户权限的级别。在开发阶段,开发人员赋予多组用户适当的安全级,使应用程序在执行限制操作之前能够容易的判断限制 级。

J2EE 平台是Java技术企业级应用的最佳平台,它可以让程序员迅速、快捷地开发和分布企业级应应用程序。以下便是它的相关技术:

1.Enterprise JavaBeans Architecture,企业级JavaBeans 定义了一个应用程序接口。它可以使程序员迅速开发、发布和管理跨平台的、基于组件的企业级应用程序。

2.JavaServer Pages,JSP 技术提供了一种简单、快速的方法来创建动态网页。通过它,可以快速地开发基于Web的应用程序,并且这些应用程序都是与平台无关的。因为JSP与ASP很相似,所以熟悉ASP的人学习它就很容易了。

3.Java Servlet,提供了应用程序接口。通过它可以简单快速地开发并扩展服务器功能。就发展趋势来看,它将来有可能取代CGI。

4.J2EE Connector,提供了一种标准结构来联接不同的企业信息平台。

5.Java Naming and Directory Interface(JNDI),在Java 平台与商业信息之间,JNDI提供了统一、无缝的标准化连接。通过使用JNDI,程序员可以在企业多命名与目录服务之间传送Java 应用程序。

6.Java Interface Definition Language(JIDL),通过使用CORBA,可以提供协同工作的能力。JIDL包括一个IDL-to-Java 编译器和支持IIOP(Internet Inter-Orb Protocol)的ORB。

7.JDBC,几乎是为所有的数据库提供了统一的接口,同时可以创建高级工具和接口。

8.Java Message Service(JMS),它几乎规范了所有企业级消息服务,如可靠查询、发布消息、订阅杂志等各种各样的PUSS/PULL技术的应用,并且为它们提供了一个标准接口。

9.Java Transaction API(JTA),为分布式系统中可处理的应用程序规定了一个高级的管理规范。

10.JavaMail,JavaMail应用程序接口提供了一整套模拟邮件系统的抽象类。通过JavaMail,可以创建邮件或消息应用程序。

11.RMI-IIOP,使用它就可以只用Java 技术和Java RMI接口开发客户机与服务器的远程接口。

J2EE 使用固定的文件格式捆绑某个模块:用.ear文件捆绑J2EE应用程序;用.jar捆绑Enterprise Bean。例如,一个.ear文件包含一个.xml文件作为其分布描述,还包含一个或多个.jar和.war文件;一个.jar文件除了包含它的分布描述 外,还包含了作为Enterprise bean的.class文件。

J2EE应用程序的开发阶段分为四步:1.Enterprise Bean创建;2.Web Component创建;3.J2EE应用程序装配;4.J2EE应用程序分布。以下是J2EE兼容产品部分列表:

BEA WebLogic Server 6.0、Borland App Server、HP Bluestone Total-e-Server、IBM WebSphere Application Server、IONA iPortal Application Server、iPlanet Application Server、Macromedia JRun Server、Oracle 9i Application Server、SilverStrean Application Server、Sybase EAServer、TogetherSoft ControlCenter、Java 2 SDK Enterprise Edition。

J2ME技术的应用

J2ME (Java 2 Platform Micro Edition)是为无线电子市场所设计的,包括JVM规范和API规范。其API规范是基于J2SE(Java 2 Standard Editon)的。J2ME 定义了一套合适的类库和虚拟机技术。这些技术可以使用户、服务提供商和设备制造商通过物理(有线)连接或无线连接,按照需要随时使用丰富的应用程序。

J2ME 又被称为Java 2 微型版,被使用在各种各样的消费电子产品上,例如智能卡、手机、PDA、电视机顶盒等方面。当然了,J2ME也提供了Java语言一贯的特性,那就是跨平 台和安全网络传输。它使用了一系列更小的包,而且Javax.microedition.io 为J2SE包的子集。J2ME可以升级到J2SE和J2EE。

在J2ME出现之前,我们更多接触到的是Java卡(Java Card)、嵌入式Java(Embedded Java)和实时Java(Real Time Java)等。其中Java卡是针对SIM卡、智能卡等设备而定制的最小Java子集,比J2ME还要小,移植性也不强。嵌入式Java则针对特殊用户自 行配置Java类库和VM(Virtual Machine,虚拟机)。它对资源需求极小,可运行在无图形用户接口和网络的设备上,可以添加用户专用的API,但是它就无法移植。实时Java是由 IBM领导的实时定制Java专家组负责实施的,现在还在不断完善中。不过,从严格意义上来说,它们都不是真正的J2ME。

像其它版本一样,J2ME具有很多Java技术特性,主要有:

1.可以在各种支持Java的设备上运行;

2.代码短小;

3.充分利用Java语言的优势;

4.安全性好;

5.用J2ME实现的应用可以方便地升级到J2SE、J2EE。

J2ME的配置和框架

为了支持用户和嵌入式市场提出的灵活性和可定制性要求,J2ME被设计得更加模块化和可缩放化。J2ME在设备原有的操作系统上建造了3层软件来实现这种要求:

1.JVM层,这层基于宿主操作系统,按照某一种J2ME的配置,实现了JVM。

2.配置层,这层对于用户可见度要低一些,但对框架层非常重要。它针对“水平”市场的需求,定义了Java虚拟机的最小功能集和Java类库的最小集合。在某种意义上,配置层定义了开发者在所有设备上都可以使用Java特性和类库的“最小公分母”。

3. 框架层,这层对于用户和应用程序提供者来说是最常见的。它针对“垂直”市场的需求,定义了Java虚拟机的最小功能集和Java类库的最小集合。其框架是 基于特定的配置层实现的。只要设备支持相同的框架层,针对特定框架层开发的应用程序就可以移植到其它设备上。一个设备可以支持多个框架层。

在J2ME 设备中,JVM与配置层紧密相连,它们体现了每一类设备的基本功能。框架层针对不同的设备,在配置层的基础上规定了附加的API。为了满足不断更新的应用 程序,框架层可以扩充新的Java库类。在不远的将来,随着新设备的不断出现,J2ME技术将提供范围广泛的框架层、配置层和VM。JCP(Java Community Process)可以为客户和开发商提供规范。根据JCP的定义,J2ME目前的一种配置层是“面向连接的设备配置”层(Connected Device Configuration),它采用典型的Java虚拟机技术。这种全功能的VM包含了基于台式机系统上的虚拟机的所有功能,适用于拥有至少几兆字节内 存的设备。对于无线设备和其它内存不足的设备,J2ME采用“面向连接的受限设备配置”(CLDC)技术。

KVM是J2ME的核心特 征。它是一个可移植性非常高的JVM,专用于内存小、资源有限、能上网的设备,例如蜂窝电话、寻呼机和个人组织器等。这些器件一般都含有16或32位的处 理器,最低128KB内存。KVM能够被灵活应用到各种行业、各种类型的设备上,并能够适应这些设备的多样化所带来的问题,比如处理器的耗电量、内存的大 小、设备和应用程序的特殊功能等问题。

CLDC技术

CLDC定义了目标Java平台,该平台基于小型的、资源较少的、内存仅有160~512K的设备。CLDC是由KVM和用在蜂窝电话、数字产品、双向寻呼机、个人组织器和家用电器等核心库类及接口组成。使用CLDC技术有很多优点:

1.跨平台,这点保留了Java一贯的特点,应用程序不会随着平台差异而产生变化。

2.动态性,这点也是很吸引人的,可以根据需要下载自己喜欢的应用程序和服务,并且可以和其它的CLDC设备通信。

3.安全性,Java 本身的特点造就了这一特性。

与 J2SE相比,CLDC缺少下列所说的特征:

1.AWT(抽象窗口开发包),Swing或其它图形库;

2.用户定义类装载器;

3.类实例的最终化;

4.弱的引用;

5.RMI;

6.Reflection(映射)。

CLDC 有四个包:java.lang、java.util、java.io和javax.microedition。除了javax.microedition 包以外,其它的几个包都是J2SE包的核心子集。CLDC采用这些J2SE类库,但是把其中一些在微型设备中用不到类、属性和方法去掉了。

J2ME定义两个配置:Connected Device Configuration(连接设备配置,CDC)和限制性更强的Connected Limited Device Configuration(有限连接设备配置,CLDC)。

J2SE技术的应用

Java 2标准版是一种开发和部署平台,提供了编写桌面、工作站应用程序所有必需的功能。J2SE软件是快速开发、部署关键任务和企业应用程序的首选解决方案。 J2SE 1.4版本是基于Java跨平台技术和强有力的安全模块而开发的,其最新的特征和功能极大地提高了Java语言的伸缩性、灵活性、适用性,以及可靠性。

J2SE 1.4 特点:

1.良好的计算性能和缩放能力。

J2SE 1.4版是一个快速开发和配置跨平台的企业级应用与服务的综合性平台。它提升了Java计算的性能与缩放能力,代表了Java技术的大跨步进展。有了 J2SE 1.4版,企业就可以通过更简易的步骤、花费更少的时间,采用Java技术开发与配置要求更高的应用了。J2SE 1.4版在Java客户机应用方面得到了重大性能提升。基于Swing的Java小程序和应用程序在图形用户界面(GUI)的响应速度上也大有提高。

2.跨平台。

J2SE 1.4版是一个具有综合性能的平台,能使一个完整的、可缩放的高性能应用配置在任何种类的平台上。

3.支持Web服务。

J2SE 1.4版与以前各J2SE版全面兼容。J2SE 1.4版对SSL、LDAP和CORBA等业界标准技术也给予支持,因此保证了在不同平台、系统和环境间的互操作能力。J2SE 1.4版支持XML技术和一整套安全服务,因此为基于各类标准的可互操作应用与服务的创建奠定了重要基础。有了J2SE 1.4版与Java Web Services Developer Pack的结合,开发商就能创建、测试和配置Web服务了。

4.完整性。J2SE 1.4版还是一个完整的开发环境。开发商可基于这一环境创建功能丰富的交互式应用。这些应用可以配置在任何平台上。J2SE 1.4具有新的GUI控制功能、快速的Java 2DT图形功能、支持国际化与本地化扩展和新的配置选项,并对Windows XP提供扩展支持。

总之,J2SE 1.4版是多种不同风格软件的开发基础,包括客户端Java小程序和应用程序,以及独立的服务器应用程序等。J2SE 1.4版还是J2ME的基础,是J2EE执行程序的推动力。

Java 之所以能够发展得很快,是因为互联网的发展非常快。Java可以和浏览器结合在一起,因而很自然地在桌面系统得到广泛应用。从计算的结构来看,Java主 要分三大类:第一是服务器端,这里就有了J2EE企业版;第二是桌面PC,这一类用的是J2SE标准版;第三就是掌上电脑、移动设备,用的都是J2ME。 但是,大部分非企业级软件还是在J2SE上开发的比较多。首先,这是因为很多的应用软件都是在J2SE上开发的;其次,J2SE是和J2EE兼容的,企业 版是在标准版上的扩充,在J2SE的版本上开发的软件,拿到企业的平台上是一样可以运行的;再次,一般开发还是在J2SE的环境上,只是说J2ME提供微 型版的一个环境。在J2SE上虚拟出一个环境,开发出来的应用软件是可以拿到微型版上运行的。

有比较好用的java快速开发平台么

1、ES2007介绍

方正飞鸿智能信息平台(Fix ES2007)是方正集团推出的国内领先企业基础架构中间件平台。Fix ES2007平台基于SOA架构体系,结合数据建模、业务建模、可视化流程引擎、动态表单设计等多种实现工具,其柔性的特点,保障了基于ES2007平台开发的系统可在.net平台与j2ee平台上无缝的切换运行,是企业应用开发的一个高效、强大、开放的开发工具。

2、ES2007技术特点

•高效的平台业务逻辑扩展

•组织机构设置和权限机制

•强大的工作流引擎和任务监控,协同机制

•应用部署以及模块运行,升级,管理机制

•强大的工作流引擎

•图形化工作流程设计

•所见即所得表单设计

•完善安全的权限分配体系

3、产品特性

•大并发海量数据的支撑

•即时通讯工具的外网通讯

•即时通讯工具的平台开发性

•全面的SOA 支持

•流程引擎标准化、性能更优

•全面的数据库支持(Oracle,Sqlserver,DB2,Sybase,Mysql)

•全面的WEB 服务器支持(iis,tomcat,websphere,weblogic,jboss,glassfish,apusic)

•全面的AJAX 技术的运用

•全面的浏览器支持(IE,FireFox,Chrome)

•富客户端技术的支持(Flex,silverlight)

•平台接口更标准,更易用

4、产品组件

•业务逻辑 建模工具 Studio

•流程引擎 Workflow

•表单设计 Formdesign

•数据库工具 DTS

•即时通讯 MSQ

•统一界面管理 Portal

•多种主题管理 Theme

•快速高效的代码开发框架 SDK

•企业应用集成EAI

•业务流程管理BPM

•面向服务架构 SOA

5、特色创新

• 快速开发性

开发效率提升高达70%、10 分钟可以完成一个流程全过程开发、1 天可以完成一个小型应用(如OA 办公系统)。

• 企业信息管理特征组件

封装了大量的企业信息管理不同行业的特征组件和业务模型,让使用者更关注于业务,从而使其从技术中解放出来,能迅速的构架用户的业务系统。

• 跨语言

可以无缝的在C#和JAVA 语言中切换,可以顺利的在.Net 和J2EE 平台上切换,是全球唯一款支持跨语言的中间件平台。大多数软件公司在为用户服务时往往会被用户左右,而用户很多情况会对需求发生变更,而对语言的变更也不在少数,而一旦发生,对与开发商来说将是致命的,因为语言是不互通的,换一门系统的开发语言,将会把系统的工作量放大两倍,而使用本平台,这些问题将不复存在。

• 多数据库

支持主流关系型数据库,如Oracle,Sqlserver,DB2,Sybase,Mysql。

• 跨平台

支持多操作系统,如WINDOWS,LINUX,UNIX,使用户部署时不用再关心终端服务器,只需要关注用户系统的业务开发即可。

6、案例

【支持的平台技术和产品】

FIX ES2007业务基础平台支持广泛的平台、系统和应用技术,构建在ES2007业务平台上的业务系统,具有最广泛的技术兼容性和可扩展性:

•操作系统支持

支持如下网络操作系统:NT,UNIX,Linux等。

支持如下客户端:WindowsXP及更高版本,浏览器IE6.0及更高版本。

•数据库支持

支持如下数据库接口:ODBC,JDBC,BADO。

支持Oracle 9i 及更高版本、SQL Server 2000及更高版本等数据库。

•组件和总线支持

支持如下组件和总线标准:COM,ActiveX,OLE,.Net。

•分布计算和服务支持

支持如下分布计算和服务技术:DCOM,EJB(J2EE)。

支持如下分布计算支撑环境:.Net、BEA WebLogic、IBM WebSphere等。

•Web服务支持

支持如下Web服务支持技术:Serverlet,ISAPI/NSAPI。

支持如下主流Web服务器产品:MS IIS、BEA WebLogic、IBM WebSphere等。

•网络和应用协议

支持多种应用协议,包括:

通讯协议:HTTP、TCP/IP

邮件协议:SMTP,POP3

应用协议:DCOM、EJBIIOP、EJBRMI

基于FastUnit平台实现快速开发:可视化、无代码、快速开发。

三、J-HI是一款JAVA WEB应用软件快速开发开源平台,

主要服务于软件企业和传统行业企事业单位信息中心的开发人员,为他们提供一套完整的一站式的JAVA WEB应用软件快速开发解决方案。

平台包括如下几个部分:

1、J-HI平台集成环境:J-HI团队开发了一个集成开发环境J-HI Studio,在此集成开发环境之上,开发人员能够快速搭建自己的开发环境,创建自己的模型,快速生成代码。

2、核心框架:平台为Java代码与JS代码之间提供了一套完整的面向对象的核心框架支撑系统,可以认为这是一个抽象层,无论是在页面表现上,还是 在 CURD的任意一层,平台均提供了最大限度的抽象。用以保证平台本身的可扩展性、稳定性及灵活性。J-HI平台中提供了大量的API(Java与JS),为用户在开发过程中随需调用,从而进一步加快开发速度,保证代码质量。

3、业务平台功能:包括权限管理、组织结构、枚举管理、国际化管理、任务管理、日志管理、Excel报表管理、消息管理等。

4、工作流:包括工作流引擎及流程编辑器等。

具体资料参考地址:

如何实现java推送消息到app

主要介绍其中的五种实现方式:短轮询、Comet、Flash XMLSocket、Server-sent、WebSocket

1、短轮询

指在特定的的时间间隔(如每10秒),由浏览器对服务器发出HTTP request,然后由服务器返回最新的数据给客户端的浏览器。浏览器做处理后进行显示。无论后端此时是否有新的消息产生,都会进行响应

2、Comet

包括了长轮询和长连接,长轮询是客户端向服务器发送Ajax请求,服务器接到请求后hold住连接,直到有新消息才返回响应信息并关闭连接,客户端处理完响应信息后再向服务器发送新的请求;长连接是在页面中的iframe发送请求到服务端,服务端hold住请求并不断将需要返回前端的数据封装成调用javascript函数的形式响应到前端,前端不断收到响应并处理

3、Flash XMLSocket

在 HTML 页面中内嵌入一个使用了 XMLSocket 类的 Flash 程序。JavaScript 通过调用此 Flash 程序提供的socket接口与服务器端的socket进行通信。JavaScript 在收到服务器端以 XML 格式传送的信息后可以很容易地控制 HTML 页面的内容显示

4、Server-sent

服务器推指的是HTML5规范中提供的服务端事件EventSource,浏览器在实现了该规范的前提下创建一个EventSource连接后,便可收到服务端的发送的消息,实现一个单向通信。客户端进行监听,并对响应的信息处理显示

5、WebSocket

WebSocket是HTML5下一种新的协议,是基于TCP的应用层协议,只需要一次连接,便可以实现全双工通信,客户端和服务端可以相互主动发送消息。客户端进行监听,并对响应的消息处理显示

针对自己系统的应用场景选择合适的推送方案才是合理的,因此最后简单说一下实现个性化推送的两种方式。第一种很简单,直接使用第三方实现的推送,无需复杂的开发运维,直接可以使用。第二种就是自己封装,可以选择如今较为火热的WebSocket来实现系统的推送。

关于第三方推送平台,极光推送,操作简单,稳定性高,送达率快

java邮件app的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java邮件api、java邮件app的信息别忘了在本站进行查找喔。