摘要: JVM是我们每个java程序员的功底了。也许有很多程序员不清楚JVM的工作原理,今天,在这里带着大家一起深入研究一下我们可爱的JVM。废话少说我们切入正题。 要了解JVM首先必须了解类加载的过程 上图表示的就是我们的类的初始化过程。下面我们对每个阶段进行深入的探索。类的加载:不要被“加载”唬掉,所谓类的加载其实就是将.class文件读入到内存中。这时候有朋友要问了,我们写程序的时候没有加载过类啊,类是怎么进入内存的呢。这就牵扯到类的加载器了。在java中可分为四类加载器引导类加载器BootstrapLoader用来加载%java_home%lib下的核心类库像String、Date等等扩展类加 阅读全文
posted @ 2011-01-23 23:52 琥珀光 阅读(661) 评论(0) 推荐(1) 编辑
摘要: 由于Java编程中的中文问题是一个老生常谈的问题,在阅读了许多关于Java中文问题解决方法之后,结合作者的编程实践,我发现过去谈的许多方法都不能清晰地说明问题及解决问题,尤其是跨平台时的中文问题。于是我给出此篇文章,内容包括对控制台运行的class、Servelets、JSP及EJB类中的中文问题我剖析和建议解决办法。希望大家指教。   Abstract:本文深入分析了Java程序设计中Java编译器对java源文件和JVM对class类文件的编码/解码过程,通过此过程的解析透视出了Java编程中中文问题产生的根本原因,最后给出了建议的最优化的解决Java中文问题的方法。   1、中文问题的来 阅读全文
posted @ 2011-01-23 23:46 琥珀光 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 摘要  这篇文章介绍创建基于Java的email应用程序入门知识。假如你想创建你自己的email客户端应用程序来代替Microsoft Outlook,或者创建一个基于Web的email系统来跟Hotmail叫板,那么你可以从这里开始。从JavaMail的一个不同角度出发,该文给出了一个谈话email客户端应用程序。  在JavaMail中,你可以找到API以及其实现部分,从而用它开发功能全面的email客户端应用程序。“email客户端应用程序”引用了Microsoft Outlook的思想;然而,你可以写你自己的Outlook来取而代之。但是,一个email客户端程序不一定要驻留在一个客户 阅读全文
posted @ 2011-01-23 23:44 琥珀光 阅读(192) 评论(0) 推荐(0) 编辑
摘要: //该程序用来接受带有html信息的邮件 void jButton7_actionPerformed(ActionEvent e) { try {Properties props = System.getProperties(); Authenticator auth = new Email_Autherticator(); props.put("mail.smtp.host",host); props.put("mail.smtp.auth","true"); Session session = Session.getDefaultInstance(props,auth); Store st 阅读全文
posted @ 2011-01-23 23:43 琥珀光 阅读(122) 评论(0) 推荐(0) 编辑
摘要: //此段代码用来发送带有html信息的邮件 void jButton8_actionPerformed(ActionEvent e) { try {Properties props = new Properties(); Authenticator auth = new Email_Autherticator(); props.put("mail.smtp.host",host); props.put("mail.smtp.auth","true"); Session session = Session.getDefaultInstance(props,auth); MimeMessage m 阅读全文
posted @ 2011-01-23 23:43 琥珀光 阅读(242) 评论(0) 推荐(0) 编辑
摘要: //原理:可以将邮件看成有多个部分组成的,如正文是一个部分,附件也是一个部分,所以用BodyPart来设置邮件的格式 message.addRecipient(Message.RecipientType.TO,new InternetAddress(mail_to)); BodyPart messageBodyPart = new MimeBodyPart(); messageBodyPart.setText("Pardon Ideas"); Multipart multipart = new MimeMultipart(); multipart.addBodyPart(messageBody 阅读全文
posted @ 2011-01-23 23:42 琥珀光 阅读(193) 评论(0) 推荐(0) 编辑
摘要: //此段代码用来进行服务器对用户的认证public class Email_Autherticator extends Authenticator { public Email_Autherticator() { super(); } public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username,password); } } //该程序为接收邮件 void jButton2_actionPerformed(ActionEvent e) { try {P 阅读全文
posted @ 2011-01-23 23:42 琥珀光 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 在整理网友的文章的时候,发现一个javamail的总结,特此谢谢the_east_key,并且公布给大家,希望对大家有做帮助,全文如下:本文章对: 发送普通邮件,接受普通邮件 发送带有附件的邮件,接收带有附件的邮件 发送html形式的邮件,接受html形式的邮件 [b[发送带有图片的邮件[/b]等做了一个总结。 import java.awt.*; import java.awt.event.*; import javax.swing.*; import com.borland.jbcl.layout.*; import javax.mail.*; import java.util.*; im 阅读全文
posted @ 2011-01-23 23:41 琥珀光 阅读(277) 评论(0) 推荐(0) 编辑
摘要: Java提供了数种持有对象的方式,包括语言内置的Array,还有就是utilities中提供的容器类(container classes),又称群集类(collection classes)。集合在java中非常重要,在讨论之前,先来看几个面试中的经典问题。1 Collection 和 Collections的区别。2 List, Set, Map是否继承自Collection接口。3 ArrayList和Vector的区别。4 HashMap和Hashtable的区别。篇尾有答案,我们开始正题。集合Collection接口--Collection 是任何对象组,元素各自独立,通常拥有相同的套 阅读全文
posted @ 2011-01-23 23:39 琥珀光 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 在编写JSP/Servlet应用时常常需要从传入的链接中提取一些信息。HttpServletRequest提供了多个方法,这些方法之间容易混淆。总结并举例如下,希望能对大家有所帮助。举例:http://localhost:7001/myservlet/somepath/test?someparam=somevaluerequest.getPathInfo():返回/somepath/testrequest.getRequestURL():返回http://localhost:7001/myservlet/somepath/testrequest.getRequestURI():返回/myser 阅读全文
posted @ 2011-01-23 23:34 琥珀光 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 1。支持el表达式:importorg.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager;privateObjectvalue=null;this.value=ExpressionEvaluatorManager.evaluate("value",value.toString(),Object.class,this,pageContext);2.用BeanUtil取属性值importorg.apache.commons.beanutils.PropertyUtils;privateStringproperty=nul 阅读全文
posted @ 2011-01-23 23:32 琥珀光 阅读(475) 评论(0) 推荐(0) 编辑
摘要: 1。问题:你想和jstl共同工作。比如,在用自己的标签处理一些逻辑之后,让jstl处理余下的工作。2。看这个jsp例子:....%Stringname="diego";request.setAttribute("name",name);%c:outvalue="${name}"/......许多jstl标签支持El表达式,所以,只要你在自己的标签内部把值塞进request,其他jstl标签就能使用它们3。下面这个例子,从request里面取得对象,找到它属性的值,塞到request里去。packagediegoyun;importjavax.servlet.jsp.JspExcepti 阅读全文
posted @ 2011-01-23 23:32 琥珀光 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 1。问题:在request里的People对象,有个属性叫men,men是一个Collection,有许多个man。现在,把collection里的man的名字都显示出来显然,这是一个嵌套Tag的问题。有三个Tag互相作用:最外层的Tag找到People对象,中间的Tag取得Collection,子Tag负责打印。例如:diego:withObjectvalue="${people}"diego:withCollectionproperty="men"diego:elementoutproperty="name"//diego:withCollection/diego:wit 阅读全文
posted @ 2011-01-23 23:31 琥珀光 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 1。问题:在request里有一个Man对象,它有两个属性:name和age。现在,我们想用一个嵌套的tag,父tag取得对象,子tag取得name属性并显示在页面上。例如,它的形式如下:diego:withobject="${Man}"diego:outputproperty="name"//diego:withobject支持el表达式,表示取得Man对象。output的property表示从该对象取得名为name的属性。2。如何支持tag之间的嵌套在子tag里调用getParent方法,可以得到父tag对象。用findAncestorWithClass方法,则可以通过递归找到 阅读全文
posted @ 2011-01-23 23:31 琥珀光 阅读(378) 评论(1) 推荐(1) 编辑
摘要: 摘要:标准的JSP标记可以调用JavaBeans组件或者执行客户的请求,这大大降低了JSP开发的复杂度和维护量。JSP技术也允许你自定义taglib,其实换句话说,taglib可以看成是对JSP标记的一种扩展,正如xml是对html的一种扩展一样。taglib通常定义在tag标签库中,这种标签库存放着你自己定义的tag标签。简而言之,如果使用taglib,那么你可以设计自己的JSP标记!一般来说,自定义tag标签主要用于操作隐藏对象、处理html提交表单、访问数据库或其它企业级的服务,诸如邮件和目录操作等等。自定义tag标签的使用者一般都是那些对java编程语言非常精通,而且对数据访问和企业级 阅读全文
posted @ 2011-01-23 23:30 琥珀光 阅读(921) 评论(0) 推荐(0) 编辑
摘要: 1。问题:Tag究竟是什么?如何实现一个Tag?一个tag就是一个普通的java类,它唯一特别之处是它必须继承TagSupport或者BodyTagSupport类。这两个类提供了一些方法,负责jsp页面和你编写的类之间的交互,例如输入,输出。而这两个类是由jsp容器提供的,无须开发人员自己实现。换句话说,你只需把实现了业务逻辑的类继承TagSupport或者BodyTagSupport,再做一些特别的工作,你的类就是一个Tag。并且它自己负责和jsp页面的交互,不用你多操心。“特别的工作”通常有以下几个步骤:1)提供属性的set方法,此后这个属性就可以在jsp页面设置。以jstl标签为例c 阅读全文
posted @ 2011-01-23 23:29 琥珀光 阅读(939) 评论(1) 推荐(1) 编辑
摘要: 原创: 王思龙 JSP/SERVLET中关于文件上传的讨论已经很久了,网上的例程也很多,但大多都不系统,且限制很多,不能作为一个通用组件拿来既用,所以对大多数人来讲,仍然是一个很头疼的问题,究其原因,关键是JSP/SERVLET中并没有给出一个实现文件上传的标准方法,本文拟从原理的角度来系统阐述JSP/SERVLET的上传原理,并给出一个标准实现方法。 JSP/SERVLET上载的难点 1、支持任意格式、任意数量的文件上载;2、上载控制的实现;3、表单信息的取得;4、“即插即用”的应用方法;我个人认为,制约通用 上载组件的实现主要是这四个难点。  JSP/SERVLET上传的原理 JS 阅读全文
posted @ 2011-01-23 23:13 琥珀光 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 现在有好多初学jsp的网友经常会问数据库怎么连接啊,怎么老出错啊?所以我集中的在这写篇文章供大家参考,其实这种把数据库逻辑全部放在jsp里未必是 好的做法,但是有利于初学者学习,所以我就这样做了,当大家学到一定程度的时候,可以考虑用MVC的模式开发。在练习这些代码的时候,你一定将jdbc的 驱动程序放到服务器的类路径里,然后要在数据库里建一个表test,有两个字段比如为test1,test2,可以用下面SQL建 create table test(test1 varchar(20),test2 varchar(20) 然后向这个表写入一条测试纪录 那么现在开始我们的jsp和数据库之旅吧。 一、 阅读全文
posted @ 2011-01-23 23:11 琥珀光 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 概要2003.3.7SUN发布了Servlet2.4的PFD2,在本文中JasonHunter介绍了2.4和2.3版本的一些区别,并解释了这样改变的一些原因,同时还介绍利用和使用这些新的特性...作者JasonHunter英文原文2003年3月7日SunMicrosystems发布了Servlet2.4标准的"ProposedFinalDraft2"。由于它仍然处于ProposedFinalDraft阶段,规范还没有完全完成,某些技术细节可能会改变。甚至有可能会制订ProposedFinalDraft3。然而,在这个标准的最终发布之前将不会再出现重大的改变,事实上,serv 阅读全文
posted @ 2011-01-23 23:02 琥珀光 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 题注:目前servlet和jsp是用来开发web应用程序最流行的工具之一,本文由权威的servlet专家JasonHunter撰写,全面的而准 确的介绍了从ServletAPI2.2到2.3(目前)的变化和原因,并展示了在servlets中如何使用filter的激动人心的新技术。翻译者加:虽然Servlet2.4的规范即将出台,但相信此篇文章对于那些刚刚开始运用Servlet的爱好者们还会有所帮助。(鉴于此篇文章是在Servlet2.3规范正式出台之后转译,故有关Filter的部分未按原文,而是按照2.3最终规范中的修改的部分所翻译)英文原文改变:·需要JDK1.2或更高版本 阅读全文
posted @ 2011-01-23 23:01 琥珀光 阅读(520) 评论(0) 推荐(0) 编辑