⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch12.htm

📁 JAVA Developing Professional JavaApplets
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<HTML><HEAD><TITLE>developer.com - Reference</TITLE><META NAME="Author" CONTENT="developer.com"><META NAME="Keywords" CONTENT="javascript, ActiveX, VRML, Push, channel,push channel, applet, directory, news, community, developer, internet,intranet, java, java applet, J++, javabeans, java products, tools, javatools, JDK, java development kit, java development environment, JIT,JavaPlan, enterprise tools, JVM, Java Virtual Machine, Java resources, API,browser, java documentation, CDF, Common Desktop Format, RDF, ResourceDescription Framework, Netcaster, Netcast, Castanet, meta-language, metadata,solaris, Solaris, SUN, CGI, Perl, Oracle, database, network, Netscape API,Apache, apache, SSL, mSQL, Netscape, Fasttrack, FastTrack,industry standard, ActiveX bridge, web, internet, site, sitedesign, microsoft, active server pages, asp, iis, nt, win95, 95, html, cgi,frontpage, business, corporate, vbscript, javascript, activex, isapi,database, access, sql, server, www, 3.0, 3.01, 3.02, 3.03, 3.04, 4.0,4.0b2, 4.01, 4.03, 4.04, connection, online, commerce, publisher,publishing, publish, webmaster, dynamic html, dhtml, windows 98, netscape,netscape software, shareware, magazines, jobs, japan, free, freeware, freestuff"><META NAME="description" CONTENT="Developer.com is the leading onlineservice for developers. It includes Gamelan, the official directory for Java, as wellas news, information, tutorials, and directories for other Internet technologiesincluding ActiveX, JavaScript, perl, VRML, Java Beans, push technologies, andother Internet and intranet technologies. Developer.com is also the home ofDeveloper Direct, the Professional Developer's Store, where developers canpurchase and download thousands of Web, authoring and other developmentproducts at some of today's lowest prices."><META NAME="distribution" CONTENT="global"><META NAME="resource-type" CONTENT="document"><META NAME="language" CONTENT="en"></HEAD><BODY BACKGROUND="/images/curve_r-wide.gif" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#DD0000" VLINK="#999999" ALINK="#FF0000"><TABLE><TR><TD VALIGN=TOP WIDTH=120><A HREF="/" ><IMG SRC="/images/masthead_r.gif" WIDTH="100" HEIGHT="78" BORDER="0"ALT="Developer.com Logo"></a></TD><TD><a target="resource window" href="http://adserver.developer.com/cgi-bin/accipiter/adclick.exe/AREA=DCBAN.REF/DT=null"><img src="http://adserver.developer.com/cgi-bin/accipiter/adserver.exe/AREA=DCBAN.REF/DT=null" HEIGHT="60" WIDTH="468" ALT="Click here to support our advertisers"><BR><CENTER>Click here to support our advertisers</CENTER></a></TD></TR></TABLE><!--outer table--><TABLE><!--outer table--><TR><!--outer table--><TD VALIGN="TOP"><!--navbar info --><table><tr><td><A HREF="http://www.developerdirect.com/" ><IMG SRC="/images/button_s.gif" width="15" height="11" BORDER="0"><FONT FACE="Arial, Helvetica" SIZE="-1" color="#000000"><b>SHOPPING</b></font></a></td></tr><tr><td><A HREF="/community/jobs/c_jobs.html"><IMG SRC="/images/button_d.gif" width="15" height="11" BORDER="0"><FONT FACE="Arial, Helvetica" SIZE="-1" color="#000000"><B>JOB BANK</B></font></a></td></tr><tr><td><A HREF="http://www.classifieds2000.com/cgi-cls/display.exe?Developer+computer+searchcomputercategories"><IMG SRC="/images/button_d.gif" width="15" height="11" BORDER="0"><FONT FACE="Arial, Helvetica" SIZE="-1" color="#000000"><B>CLASSIFIEDS</B></font></a></td></tr><tr><td><A HREF="/directories/directories.html"><IMG SRC="/images/button_d.gif" width="15" height="11" BORDER="0"><FONT FACE="Arial, Helvetica" SIZE="-1" color="#000000"><B>DIRECTORIES</B></font></a></td></tr><tr><td><A HREF="/reference/"><IMG SRC="/images/button_r.gif" width="15" height="11" BORDER="0"><FONT FACE="Arial, Helvetica" SIZE="-1" color="#000000"><B>REFERENCE</B></font></a><br><a href="/reference/r_library.html"><FONT FACE="Arial, Helvetica" SIZE="-1" color="#000000">Online Library</a></font></td></tr><tr><td><A HREF="/classroom/"><IMG SRC="/images/button_r.gif" width="15" height="11" BORDER="0"><FONT FACE="Arial, Helvetica" SIZE="-1" color="#000000"><B>LEARNING CENTER</B></font></a></td></tr><tr><td><A HREF="/journal/"><IMG SRC="/images/button_n.gif" width="15" height="11" BORDER="0"><B><FONT FACE="Arial, Helvetica" SIZE="-1" color="#000000">JOURNAL</font></B></a></td></tr><tr><td><A HREF="/news/"><IMG SRC="/images/button_d.gif" width="15" height="11" BORDER="0"><FONT FACE="Arial, Helvetica" SIZE="-1" color="#000000"><b>NEWS CENTRAL</b></font></a></td></tr><tr><td><A HREF="/downloads/"><IMG SRC="/images/button_d.gif" width="15" height="11" BORDER="0"><FONT FACE="Arial, Helvetica" SIZE="-1" color="#000000"><b>DOWNLOADS</b></font></a></td></tr><tr><td><A HREF="/community/" ><IMG SRC="/images/button_c.gif" width="15" height="11" BORDER="0"><FONT FACE="Arial, Helvetica" SIZE="-1" color="#000000"><B>COMMUNITY</B></font></a></td></tr><tr><td><A HREF="/calendar/"><IMG SRC="/images/button_d.gif" width="15" height="11" BORDER="0"><FONT FACE="Arial, Helvetica" SIZE="-1" color="#000000"><b>CALENDAR</b></font></a></td></tr><tr><td><A HREF="/about/"><IMG SRC="/images/button_a.gif" width="15" height="11" BORDER="0"><FONT FACE="Arial, Helvetica" SIZE="-1" color="#000000"><b>ABOUT US</b></a></font></td></tr></table><table><tr><td><form action="/subscribe/list.cgi" method=post ><img src="/images/rule.gif" width="100" height="2"><br><B><FONT FACE="Arial, Helvetica" SIZE="-1">Journal:</b></font><br><input name='email' value='your e-mail' size="11"><input type='hidden'  name='state' value='Subscribe'></td></tr><tr><td><input type='submit' value='Subscribe'><br><font size="-1">Get the weekly email highlights from the most popular journal for developers!<br><a href="http://www.developer.com/subscribe.html">Current issue</a><img src="/images/rule.gif" width="100" height="2"><input type='hidden' name='name' value='New Subscriber'></FORM></td></tr></table><!--/navbar--><font size="-1"><A HREF="http://www.developer.com">developer.com</a><BR><A HREF="http://www.developerdirect.com">developerdirect.com</a><BR><A HREF="http://www.htmlgoodies.com">htmlgoodies.com</a><BR><A HREF="http://www.javagoodies.com">javagoodies.com</a><br><A HREF="http://www.jars.com">jars.com</a><BR><a href="http://www.intranetjournal.com">intranetjournal.com</a><br><a href="http://www.javascripts.com">javascripts.com</a><br></font><!--outer table--></TD><!--outer table--><TD VALIGN="TOP"><BLOCKQUOTE><P><img src="/images/header_r.gif" width="440" height="50"><P><MAP NAME ="header_r2.gif.map"><AREA SHAPE ="RECT"      HREF ="/reference/author.html"      COORDS ="361,0,440,29"><AREA SHAPE ="RECT"      HREF ="/reference/basic.html"      COORDS ="254,0,360,29"><AREA SHAPE ="RECT"      HREF ="/reference/help.html"      COORDS ="183,0,251,29"><AREA SHAPE ="RECT"      HREF ="/reference/cool.html"      COORDS ="100,0,181,29"><AREA SHAPE ="RECT"      HREF ="/reference/mybook.html"      COORDS ="0,0,100,29"></MAP><MAP NAME ="header_r1.gif.map"><AREA SHAPE ="RECT"      HREF ="/reference/personalize.html"      COORDS ="339,0,439,29"></MAP><p><font face="Arial,Helvetica" size="-1" color="#006666"><A HREF="/reference/r_library.html"><B>All Categories</A> :</B><b><A HREF="/reference/r_java.html">Java</A></b></font><p>   <META NAME="GENERATOR" CONTENT="Mozilla/3.0b5aGold (WinNT; I) [Netscape]"><H1><FONT COLOR=#FF0000>Chapter 12</FONT></H1><H1><B><FONT SIZE=5 COLOR=#FF0000>Handling Dynamic Content</FONT></B></H1><P><HR WIDTH="100%"></P><P><H3 ALIGN=CENTER><FONT COLOR="#000000"><FONT SIZE=+2>CONTENTS<A NAME="CONTENTS"></A></FONT></FONT></H3><UL><LI><A HREF="#IntroducingtheHotJavaBrowser" >Introducing the HotJava Browser</A><UL><LI><A HREF="#DynamicContent" >Dynamic Content</A><LI><A HREF="#SecurityModel" >Security Model</A><LI><A HREF="#Alpha3DistributionDifferences" >Alpha3 Distribution Differences</A></UL><LI><A HREF="#AlteringtheHotJavaSource" >Altering the HotJava Source</A><UL><LI><A HREF="#BufferedStreamsPrimer" >Buffered Streams Primer</A><LI><A HREF="#MakingtheChanges" >Making the Changes</A><LI><A HREF="#CompilingUnderHotJava" >Compiling Under HotJava</A></UL><LI><A HREF="#TowardaMorePerfectServer" >Toward a More Perfect Server</A><UL><LI><A HREF="#AddingaConfigurationFile" >Adding a Configuration File</A><LI><A HREF="#AddingStandardLogging" >Adding Standard Logging</A><LI><A HREF="#BuildingLogInformation" >Building Log Information</A><LI><A HREF="#AlteringtheSendRoutines" >Altering the Send Routines</A></UL><LI><A HREF="#CreatingNewContentTypes" >Creating New Content Types</A><UL><LI><A HREF="#WritingContentHandlers" >Writing Content Handlers</A></UL><LI><A HREF="#Summary" >Summary</A></UL><HR><P>This chapter introduces the HotJava browser and explains why itis so groundbreaking, then introduces the HotJava source release,used to modify HotJava itself. The HTTP server from previous chaptersgets a needed face-lift before being used to serve dynamic contentto HotJava. At the end of the chapter, you will actually writeand test two HotJava content handlers.<H2><A NAME="IntroducingtheHotJavaBrowser"><FONT SIZE=5 COLOR=#FF0000>Introducingthe HotJava Browser</FONT></A></H2><P>The developers at Sun had a problem; they had a new language,Java, envisioned as dominating the World Wide Web (WWW), but theydidn't have a way to reach the public. People need to see demonstrationsbefore they can fully appreciate a new technology, and they needto work with things before they will adopt them. How could Sunconvince people to use their distributed language without a demonstrationvehicle? The answer is: They couldn't. A Web browser that couldexecute Java was needed, so the HotJava browser was developed.<P>HotJava is completely implemented in the Java language itself!It was started to demonstrate interactive content (Java applets)and to prove that Java was a viable language for advanced applications(the browser).<H3><A NAME="DynamicContent">Dynamic Content</A></H3><P>Traditional Web browsers are a monolithic collection of protocolhandlers and display routines. Typically, the manufacturer equipsthem to respond to a certain subset of the huge number of protocolsand data formats that make up the Internet. HotJava essentiallyunderstands none of the protocols or data formats on the Internet.This distinction is important. HotJava was not conceived to speakany specific protocol; it was developed to speak them all.<P>HotJava implements a concept called <I>dynamic content</I>. Whenyou point HotJava at a URL, the browser searches for the codeto converse in whatever protocol is being used. If you entered<BLOCKQUOTE><TT><A TARGET="resource window" HREF="http://www.javasoft.com/">http://www.javasoft.com/</A></TT></BLOCKQUOTE><P>HotJava would load its HTTP protocol handler. If you entered<BLOCKQUOTE><TT>ftp://ftp.some.host/</TT></BLOCKQUOTE><P>HotJava would load its FTP protocol handler. What if it didn'thave an FTP handler? Well, it would ask the host whether it hadan FTP handler. If the host had one, HotJava would download it,then use the new handler to fetch the original URL. HotJava upgradesitself on the fly!<H4>Protocol Handlers</H4><P>HotJava actually does come with a great many protocol handlersalready installed-that is, already present on the local computer.When a new protocol is needed, HotJava searches locally first;only then does it resort to asking the remote host.<P>The distinction is that it makes no difference to HotJava whetherthe handler is locally available or gotten from halfway aroundthe world. This dynamic behavior extends to display content aswell.<H4>Content Handlers</H4><P>Traditional Web browsers understand a small subset of displayformats. Most common are GIF, JPEG, and X11 bitmap. The contenttype comes encoded in a Multipurpose Internet Mail Extension (MIME)header. You experienced MIME content types when you worked with

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -