eptione){
System.out.println(“Can’topentheURL“);
}
image=getImage(imgur);
前一种格式用“newURL(url)”生成URL对象,并直接作为getImage的参数,后一种格式先用“newURL(url)”生成一个URL对象,再传给getImage,两种格式本质上是一样的,下面是一个完整的实例(img.java):
importjava.applet.*;
importjava.net.*;
importjava.awt.*;
publicclassimgextendsApplet{
Imageimage;
publicvoidinit(){
Stringurl=“/Newspic/2007118/1429189039.gif”;
try{
image=getImage(newURL(url));
}catch(Exceptione){}
}
publicvoidpaint(Graphicsg){
g.drawImage(image,0,0,this);
}
}
将上程序以img.java存盘,执行javacimg.java,将得到编译后生成的img.class,最后创建调用这两个JavaApplet的HTML文档,并放在与img.class相同的目录,对应的HTML文档可如下(img.html):
以上仅是Java在客户端应用的一些方面,目前,Java更广泛的应用是在服务器端,这是本文的主要话题,下文提及的Servlet、JSP等技术都是Java在服务器端应用的具体形式。1-3JSP的基础——Servlet技术
JavaServlet是JSP技术的基础,JSP本身就是预先被编译成Servlet,然后再运行的,而且大型的Web程序的开发需要JavaServlet和JSP配合才能完成,Servlet这个名称大概源于Applet,现在国内的翻译方式很多,本文为了避免误会,本文直接采用Servlet这个名称而不做任何翻译,读者如果愿意,可以称之为“小服务程序”。Servlet其实和传统的CGI程序和ISAPI、NSAPI等Web程序开发工具的作用是相同的,在使用JavaServlet以后,用户不必再使用效率低下的CGI方式,也不必使用只能在某个固定Web服务器平台运行的API方式来动态生成Web页面。许多Web服务器都支持Servlet,即使不直接支持Servlet的Web服务器也可以通过附加的应用服务器和模块来支持Servlet。得益于Java的跨平台的特性,Servlet也是平台无关的,实际上,只要符合JavaServlet规范,Servlet是完全平台无关且是Web服务器无关的。由于JavaServlet内部是以线程方式提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此JavaServlet效率非常高。但JavaServlet也不是没有缺点,和传统的CGI、ISAPI、NSAPI方式相同,JavaServlet是利用输出HTML语句来实现动态网页的,如果用JavaServlet来开发整个网站,动态部分和静态页面的整合过程简直就是一场噩梦。这就是为什么SUN还要推出JavaServerPages的原因。
1-4JavaBeans技术
什么是JavaBeans?JavaBeans就是Java的可重用组件技术。ASP通过COM来扩充复杂的功能,如文件上载、发送email以及将业务处理或复杂分离出来成为独立可重复利用的模块。JSP通过JavaBeans实现了同样的功能扩充。JSP对于在Web应用中集成JavaBeans组件提供了完善的支持。这种支持不仅能缩短开发时间(可以直接利用经测试和可信任的已有组件,避免了重复开发),也为JSP应用带来了更多的可伸缩性。JavaBeans组件可以用来执行复杂的计算任务,或负责与数据库的交互以及数据提取等。在实际的JSP开发过程中,读者将会发现,和传统的ASP或PHP页面相比,JSP页面将会是非常简洁的,由于JavaBeans开发起来简单,又可以利用Java语言的强大功能,许多动态页面处理过程实际上被封装到了JavaBeans中。
第二章JSP技术简介
2-1在Windows平台下配置JSP运行环境
为了使系统能够正常运行JSP和相关程序,必须先配置好能够使用JSP的WEB服务器。各种能使用Servlet技术的WEB服务器中,运用得最多的是Tomcat服务器,如果仅是为了用于测试程序,Tomcat的配置则显得太复杂了,本文推荐使用Resin服务器,Resin据称是最快的Servlet运行平台,不过限于单站点,对传统的一些网关支持不是很好,因此对于商业网站而言,不是最好的选择,不过如果仅是为了测试Servlet,这个Resin的安装可谓有点傻瓜化。
Resin比较新的版本是3.x,但实际用的2.x版本的比较多,Resin可到官方站