﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-程序手记</title><link>http://www.blogjava.net/cclang/</link><description>程序是我毕生的追求......</description><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 05:59:10 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 05:59:10 GMT</pubDate><ttl>60</ttl><item><title>JSP基础 （文件上传） 第二十二天</title><link>http://www.blogjava.net/cclang/archive/2008/08/22/223629.html</link><dc:creator>程序手记</dc:creator><author>程序手记</author><pubDate>Thu, 21 Aug 2008 16:29:00 GMT</pubDate><guid>http://www.blogjava.net/cclang/archive/2008/08/22/223629.html</guid><wfw:comment>http://www.blogjava.net/cclang/comments/223629.html</wfw:comment><comments>http://www.blogjava.net/cclang/archive/2008/08/22/223629.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cclang/comments/commentRss/223629.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cclang/services/trackbacks/223629.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;把一个指定的文件上传到服务器，通常依靠JSP技术完成，需要使用到两个JSP页面。第一个JSP页面是选择要上传的文件，第二个JSP页面是从客户端获取该文件里面的信息，并把这些信息以客户端相同的格式保存在服务器端，该页面主要为功能处理页面。<br />
&nbsp;&nbsp;&nbsp;&nbsp;第一个页面的实现必须含有FILE类型的表单，并且表单的enctype的属性必须为"muldtipart/form-data"。<br />
&nbsp;&nbsp;&nbsp;&nbsp;第二个页面要使用内置对象request调用方法getInputStream()获得一个输入流，通过这个输入流读取客户上传的全部信息，如上传文件的 名字，文件的大小，文件的类型。根据request所获得的信息创建一个数据输出流对象，把信息写到一个指定的文件内<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;第一个文件内容如下：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;body&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;form method="post" action="file_14.jsp" enctype="multipart/form-data"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type="file" name="file1" size="50" /&gt;&lt;br&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type="submit" value="上传" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/form&gt;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;第二个文件内容如下：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;%@ page contentType="text/html; charset='utf-8'" %&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;%@ page import="java.io.*" %&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;%@ page import ="java.util.*"%&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;%@ page import="javax.servlet.*"%&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;%@ page import = "javax.servlet.http.*" %&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;body&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;%<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int MAX_SIZE = 102400 * 102400;&nbsp;&nbsp;&nbsp;&nbsp;//定义上传文件的最大字节<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String rootPath;&nbsp;&nbsp;&nbsp;&nbsp;//创建跟路径的保存变量<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataInputStream in = null;&nbsp;&nbsp;&nbsp;&nbsp;//声明文件读入类<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileOutpubStream fileOut = null;&nbsp;&nbsp;&nbsp;&nbsp;//<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String remoteAddr = request.getRemoteAddr();&nbsp;&nbsp;&nbsp;&nbsp;//取得客户端的网络地址<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String servName = request.getServerName();&nbsp;&nbsp;&nbsp;&nbsp;//获得服务器的名字<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.print("serverName=" + serverName + "&lt;br&gt;");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.print("request.getServletPath() = " + request.getServletPath() + "&lt;br&gt;")
<img src ="http://www.blogjava.net/cclang/aggbug/223629.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cclang/" target="_blank">程序手记</a> 2008-08-22 00:29 <a href="http://www.blogjava.net/cclang/archive/2008/08/22/223629.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaBean基础 （javabean简介） 第二十一天</title><link>http://www.blogjava.net/cclang/archive/2008/08/21/223622.html</link><dc:creator>程序手记</dc:creator><author>程序手记</author><pubDate>Thu, 21 Aug 2008 15:09:00 GMT</pubDate><guid>http://www.blogjava.net/cclang/archive/2008/08/21/223622.html</guid><wfw:comment>http://www.blogjava.net/cclang/comments/223622.html</wfw:comment><comments>http://www.blogjava.net/cclang/archive/2008/08/21/223622.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cclang/comments/commentRss/223622.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cclang/services/trackbacks/223622.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;JavaBean是一个可重复使用、且跨平台的软件组件(SoftWare Component)，它可以在软件开发工具如：Borland JBuilder \ Oracle JDeveloper 或是 Sun ONE Studio 等等里，以可视化的开发方式来开发。<br />
&nbsp;&nbsp;&nbsp;&nbsp;首先，你可以将JAVABEAN视为一个黑盒子(Black Box)，虽然知道这个软件组件所具备的功能，却不知其内部是如何运作的。笔者提供给读者一个假象的情况：有一个黑盒子，只知道它上面有一个按钮，你只要按下去经过十分钟，就会掉下一张一千元的钞票，不过你看不见其内部任何的构造，而这就是JAVABEAN最重要的特性，它将许多的信息都封装了起来，用户无需知道黑盒子如何产生出钞票，只需知道按下那个按钮，然后等十分钟，超片就会自动产生出来。<br />
&nbsp;&nbsp;&nbsp;&nbsp;一般而言，JAVABEAN可分为：有用户接口(user interface)的javabean和没有用户接口的javabean，通常JSP是搭配没有UI的JAVABEAN，因此后面所提到的JAVABEAN都知识单纯处理一些食物，如：数据运算，连接数据库和数据处理，等等，至于有用户接口的JAVABEAN部分，请读者自己参考JAVABEAN的相关书籍。<br />
&nbsp;&nbsp;&nbsp;&nbsp;通常一个标准的JAVABEAN有如下几项特性：<br />
&nbsp;&nbsp;&nbsp;&nbsp;(1)javabean是一个公开的(public)类；<br />
&nbsp;&nbsp;&nbsp;&nbsp;(2)javabean类必须有一个无传入参数(zero-argument)的构造函数(constructor)；<br />
&nbsp;&nbsp;&nbsp;&nbsp;(3)取得或设置属性时，必须使用getXXX方法或setXXX方法。<br />
<br />
例子：<br />
&nbsp;&nbsp;&nbsp;&nbsp;package tw.com.javaworld.CH8;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;import java.io.*;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;public class SimpleBean{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public SimpleBean(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private String name;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private String number;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public void&nbsp;setNumber(String number){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.number = number;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public String getName(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return name;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}
<img src ="http://www.blogjava.net/cclang/aggbug/223622.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cclang/" target="_blank">程序手记</a> 2008-08-21 23:09 <a href="http://www.blogjava.net/cclang/archive/2008/08/21/223622.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP基础 （JSP动作元素） 第二十一天</title><link>http://www.blogjava.net/cclang/archive/2008/08/21/223368.html</link><dc:creator>程序手记</dc:creator><author>程序手记</author><pubDate>Wed, 20 Aug 2008 21:20:00 GMT</pubDate><guid>http://www.blogjava.net/cclang/archive/2008/08/21/223368.html</guid><wfw:comment>http://www.blogjava.net/cclang/comments/223368.html</wfw:comment><comments>http://www.blogjava.net/cclang/archive/2008/08/21/223368.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cclang/comments/commentRss/223368.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cclang/services/trackbacks/223368.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;与JSP指令元素不同的是，JSP动作元素在请求处理阶段起作用。JSP动作元素是试用XML语法写成的，它可以采用以下两种格式：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;prefix:tag attribute = value attribute-list.../&gt;<br />
或者<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;prefix:tag attribute = value attribute-list.../&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;...<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/prefix.tag&gt;<br />
SERVLET容器在处理JSP时，每当遇到这种动作元素，都根据它的标记进行特殊处理。<br />
JSP规范定义了一系列的标准动作，它用JSP作为前缀。这些标准的动作不去惯容器是如何实现的，但是每个WEB容器都必须提供这些操作类型。标准动作为网页设计者提供了基本的功能，其他的厂商可以自由提供其他的非标准动作以增强功能。<br />
&nbsp;&nbsp;&nbsp;&nbsp;标准动作有：<br />
&lt;jsp:useBean&gt;<br />
&lt;jsp:setProperty&gt;<br />
&lt;jsp:getProperty&gt;<br />
&lt;jsp:param&gt;<br />
&lt;jsp:include&gt;<br />
&lt;jsp:forward&gt;<br />
&lt;jsp:plugin&gt;<br />
&lt;jsp:fallback&gt;<br />
&lt;jsp:attribute&gt;<br />
&lt;jsp:body&gt;<br />
&lt;jsp:invoke&gt;<br />
&lt;jsp:doBody&gt;<br />
&lt;jsp:element&gt;<br />
&lt;jsp:output&gt;<br />
&lt;jsp:scriptelet&gt;<br />
&lt;jsp:declaration&gt;等<br />
在标准动作中，有许多是XML语法的动作元素，比如&lt;jsp:scriptelet&gt; &lt;jsp:declaration&gt;但他们的使用并不广泛，下面介绍JSP中主要的动作元素。<br />
<br />
文件导入标记&lt;jsp:include&gt;<br />
include用于允许在请求时间内在县城的JSP页面里包含静态或者动态资源。被包含的对象只有对JSPWRITER对象的访问权，并且它不能设置头或者COOKIE，如果页面输出是缓冲的，那么缓冲区的刷新要有限于包含的刷新。此指令在运行的效率上比&lt;%@ page include %&gt;指令的效率低，但是可以动态增加内容。用户可以通过一下的格式来使用文件导入标记<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;jsp:include page="{relativeURL | &lt;%=expression%&gt;}" flush="true" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;jsp:include page="{relativeURL | &lt;%=expression%&gt;}" flush = "true" &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;jsp:param name="parameterName" value="{parameterValue | &lt;%=expression%&gt;}"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/jsp:include&gt;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;例如:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;jsp:include page="admin/login.jsp" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;jsp:include page="copyright.html" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;jsp:include page="admin/login.jsp"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;jsp:parame name = "username" value="JackLong" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/jsp:include&gt;<br />
<br />
页面转向标记&lt;jsp:forward /&gt;<br />
实例：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;jsp:forword page="showinfo.jsp" &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;jsp:param name = "username" value = "&lt;%=request.getParameter("username")%&gt;"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;jsp:param name = "telephone" value = "&lt;%=request.getParameter("telephone")%&gt;"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/jsp:forword&gt; 
<img src ="http://www.blogjava.net/cclang/aggbug/223368.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cclang/" target="_blank">程序手记</a> 2008-08-21 05:20 <a href="http://www.blogjava.net/cclang/archive/2008/08/21/223368.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP基础 (获取当前时间) 第二十一天</title><link>http://www.blogjava.net/cclang/archive/2008/08/21/223367.html</link><dc:creator>程序手记</dc:creator><author>程序手记</author><pubDate>Wed, 20 Aug 2008 20:23:00 GMT</pubDate><guid>http://www.blogjava.net/cclang/archive/2008/08/21/223367.html</guid><wfw:comment>http://www.blogjava.net/cclang/comments/223367.html</wfw:comment><comments>http://www.blogjava.net/cclang/archive/2008/08/21/223367.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cclang/comments/commentRss/223367.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cclang/services/trackbacks/223367.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;下面的代码用于显示当前时间，并根据当前是几点输出相应的提示信息，其中，使用java.util.Date thisday=new java.util.Date();语句来取得当前时间，然后通过相应的方法取得年，月，日，时和分的信息并输出：<br />
<br />
&lt;% page contentType="text/html; charset=utf-8" import="java.util.*" %&gt;<br />
&lt;body&gt;<br />
&lt;%<br />
//获取当前的时间<br />
java.util.Date thisday = new java.util.Date();<br />
%&gt;<br />
当前时间：<br />
&lt;%=thisday.getYear()+1900%&gt;年<br />
&lt;%=thisday.getMonth()+1%&gt;月<br />
&lt;%=thisday.getDate()%&gt;日<br />
&lt;%=thisday.getHours()%&gt;时<br />
&lt;%=thisday.getMinutes()%&gt;分<br />
&lt;%<br />
String str = "欢迎访问："<br />
int num = this.getHours();<br />
switch(num){<br />
&nbsp;&nbsp;&nbsp;&nbsp;case 8:<br />
&nbsp;&nbsp;&nbsp;&nbsp;case 9:<br />
&nbsp;&nbsp;&nbsp;&nbsp;case 10:<br />
&nbsp;&nbsp;&nbsp;&nbsp;case 11:<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.print("欢迎你的访问，上午好！");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;case 12:<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.print("中午好!");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;case 13:<br />
&nbsp;&nbsp;&nbsp;&nbsp;case 14:<br />
&nbsp;&nbsp;&nbsp;&nbsp;case 15:<br />
&nbsp;&nbsp;&nbsp;&nbsp;case 16:<br />
&nbsp;&nbsp;&nbsp;&nbsp;case 17:<br />
&nbsp;&nbsp;&nbsp;&nbsp;case 18:<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.print("下午好!");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&lt;/body&gt;
<img src ="http://www.blogjava.net/cclang/aggbug/223367.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cclang/" target="_blank">程序手记</a> 2008-08-21 04:23 <a href="http://www.blogjava.net/cclang/archive/2008/08/21/223367.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP基础 (高级计数器实例) 第二十天</title><link>http://www.blogjava.net/cclang/archive/2008/08/20/223144.html</link><dc:creator>程序手记</dc:creator><author>程序手记</author><pubDate>Tue, 19 Aug 2008 21:19:00 GMT</pubDate><guid>http://www.blogjava.net/cclang/archive/2008/08/20/223144.html</guid><wfw:comment>http://www.blogjava.net/cclang/comments/223144.html</wfw:comment><comments>http://www.blogjava.net/cclang/archive/2008/08/20/223144.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cclang/comments/commentRss/223144.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cclang/services/trackbacks/223144.html</trackback:ping><description><![CDATA[<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; countFile.java<br />
public class countFile{<br />
&nbsp;&nbsp;&nbsp;&nbsp;public static void writeFile(String filename,long count){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintWriter out = new PrintWriter(new FileWriter(filename));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(count);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;public static void readFile(String filename){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File f = new File(filename);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!f.exists()){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;writeFile(filename,0);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedReader in = new BufferedReader(new FileReader(f));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;long count = Long.parseLong(in.readline());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;count;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;public static String tranform(long count){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String countNumber =&nbsp;""+count;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String newstring = "";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;countNumber.length;i++){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newstring+="&lt;img src='images/"+countNumber.charAT(i)+".gif' &gt;";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return newstring;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}</p>
<img src ="http://www.blogjava.net/cclang/aggbug/223144.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cclang/" target="_blank">程序手记</a> 2008-08-20 05:19 <a href="http://www.blogjava.net/cclang/archive/2008/08/20/223144.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TOMCAT基础 (设定站点) 第十三天</title><link>http://www.blogjava.net/cclang/archive/2008/08/13/221784.html</link><dc:creator>程序手记</dc:creator><author>程序手记</author><pubDate>Wed, 13 Aug 2008 09:36:00 GMT</pubDate><guid>http://www.blogjava.net/cclang/archive/2008/08/13/221784.html</guid><wfw:comment>http://www.blogjava.net/cclang/comments/221784.html</wfw:comment><comments>http://www.blogjava.net/cclang/archive/2008/08/13/221784.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cclang/comments/commentRss/221784.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cclang/services/trackbacks/221784.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;在Tomcat&nbsp;上建立一个 JSPBook站点时，我们需要修改Tomcat的server.xml文件，server.xml位于{Tomcat_Install}\conf\server.xml（例如：e:\apache software foundation\tomcat 5.0\conf\server.xml）。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;server.xml<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;......<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--Tomcat Root Context--&gt;</p>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Context path="" docBase="ROOT" debug="0"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;--&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;Context path="/JSPBook" docBase="JSPBook" debug="0"&nbsp;crosscontext = "true" reloadable="true" &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/Context&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/Host&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/Engine&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/Service&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/server&gt;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;这部分主要是设定JSPBOOK站点，其中 path="/jspbook"代表网站名称，即 http://ip_domainName/jspbook;<br />
docBase = "jspbook" 代表站点的目录位置，debug则是设定debug lerel,0表示提供最少的信息，9表示提供最多的信息； reloadable则表示tomcat在执行时，当class ,web.xml被更新过时，都会自动重新加载，不需要重新启动tomcat。<br />
<br />
<img src ="http://www.blogjava.net/cclang/aggbug/221784.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cclang/" target="_blank">程序手记</a> 2008-08-13 17:36 <a href="http://www.blogjava.net/cclang/archive/2008/08/13/221784.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA基础   （JAVA中的STATIC块） 第十三天（对浪费的前10天表示悔恨）</title><link>http://www.blogjava.net/cclang/archive/2008/08/13/221751.html</link><dc:creator>程序手记</dc:creator><author>程序手记</author><pubDate>Wed, 13 Aug 2008 08:22:00 GMT</pubDate><guid>http://www.blogjava.net/cclang/archive/2008/08/13/221751.html</guid><wfw:comment>http://www.blogjava.net/cclang/comments/221751.html</wfw:comment><comments>http://www.blogjava.net/cclang/archive/2008/08/13/221751.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cclang/comments/commentRss/221751.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cclang/services/trackbacks/221751.html</trackback:ping><description><![CDATA[Java 程序中时常用些 static{}这样的结构。<br />
这样的结构叫 static块，一般是一个类初始化时运行的代码。注意，是类的初始化，不是对象的初始化。<br />
也就是你在定义对象时，他运行的初始化代码，并且只有第一次定义时才运行。之后就不再运行初始化了。<br />
一个类中可以有很多static块。static块按顺序执行。<br />
<br />
看以下代码：<br />
public class TestStatic{<br />
&nbsp;&nbsp;&nbsp;&nbsp;static{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;static {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(2);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;static {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stystem.out.println(3);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;public static void main(String args[]){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(5);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;static {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(4);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
执行结果是：<br />
1<br />
2<br />
3<br />
4<br />
5<br />
一目了然，首先调用的是static静态块的代码，然后调用启动方法，而STATIC块的执行顺序是由代码的编写顺序执行的过程，STATIC块大家用的比较少，其实就是在对象生成之际产生的一系列的STATIC变量。
<img src ="http://www.blogjava.net/cclang/aggbug/221751.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cclang/" target="_blank">程序手记</a> 2008-08-13 16:22 <a href="http://www.blogjava.net/cclang/archive/2008/08/13/221751.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA WEB开发 （First Servlet Samlet Code） 第四天</title><link>http://www.blogjava.net/cclang/archive/2008/08/04/220010.html</link><dc:creator>程序手记</dc:creator><author>程序手记</author><pubDate>Mon, 04 Aug 2008 10:15:00 GMT</pubDate><guid>http://www.blogjava.net/cclang/archive/2008/08/04/220010.html</guid><wfw:comment>http://www.blogjava.net/cclang/comments/220010.html</wfw:comment><comments>http://www.blogjava.net/cclang/archive/2008/08/04/220010.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cclang/comments/commentRss/220010.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cclang/services/trackbacks/220010.html</trackback:ping><description><![CDATA[HelloServlet.java<br />
<br />
package tw.com.javaworld.CH2;<br />
<br />
import javax.servlet.*;<br />
import javax.servlet.http.*;<br />
import java.io.*;<br />
<br />
public class HelloServlet extends HttpServlet{<br />
&nbsp;&nbsp;&nbsp;&nbsp;//Initialize global variables<br />
&nbsp;&nbsp;&nbsp;&nbsp;public void init(ServletConfig config) throws ServletException{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;super.init(config);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;//Process the HTTP Get request<br />
&nbsp;&nbsp;&nbsp;&nbsp;public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setContentType("text/html;charset=GB2312");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintWrite out = response.getWrite();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println("&lt;html&gt;");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println("&lt;body&gt;");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println("Hello World&lt;br&gt;");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println("大家好");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println("&lt;/body&gt;");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println("&lt;/html&gt;");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;//Get Servlet information<br />
&nbsp;&nbsp;&nbsp;&nbsp;public String getServletInfo(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return "tw.com.javaworld.CH2.HelloServlet Information";<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
<br />
<img src ="http://www.blogjava.net/cclang/aggbug/220010.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cclang/" target="_blank">程序手记</a> 2008-08-04 18:15 <a href="http://www.blogjava.net/cclang/archive/2008/08/04/220010.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java WEB开发 （TomCat配置） 第四天</title><link>http://www.blogjava.net/cclang/archive/2008/08/04/219980.html</link><dc:creator>程序手记</dc:creator><author>程序手记</author><pubDate>Mon, 04 Aug 2008 08:39:00 GMT</pubDate><guid>http://www.blogjava.net/cclang/archive/2008/08/04/219980.html</guid><wfw:comment>http://www.blogjava.net/cclang/comments/219980.html</wfw:comment><comments>http://www.blogjava.net/cclang/archive/2008/08/04/219980.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cclang/comments/commentRss/219980.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cclang/services/trackbacks/219980.html</trackback:ping><description><![CDATA[<p>Tomacat是一个WEB容器，所有的J2EE WEB程序可以在此处运行。常见的WEB容器还有WebLogic、WebSphere。</p>
<p>Tomcat的默认端口号是8080，这个数值可以在安装过程中修改也可以在conf/server.xml中修改。</p>
<p>Tomcat是根据系统的%JAVA_HOME%变量值选择系统中的JDK。</p>
<p>Tomcat目录主要文件夹作用</p>
<ul>
    <li>bin目录：存放启动和关闭Tomcat的脚本
    <li>conf目录：存放不同配置文件，其中比较重要的是server.xml（Tomcat的主要配置文件）和web.xml
    <li>work目录：存放JSP编译后的.class文件
    <li>webapps目录：存放WEB应用程序
    <li>lib目录：存放所有需要的各种jar包 </li>
</ul>
<p>配置Tomcat方式有两种：手工配置--修改conf/server.xml文件、管理控制台配置</p>
<ul>
    <li>注意：修改server.xml之后要重新启动Tomcat服务器才能使配置生效 </li>
</ul>
<p>配置虚拟目录的要求</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<ul>
    <li>修改server.xml文件
    <li>虚拟目录的结构要符合要求
    <ul>
        <li><strong>WebRoot</strong>
        <ul>
            <li><strong>WEB-INF</strong>
            <ul>
                <li><strong>web.xml</strong> </li>
            </ul>
            </li>
        </ul>
        <li>其中web.xml的内容一般为： <coolcode lang="xml"><?xml version="1.0" encoding="ISO-8859-1"  ?><br />
        <!--<br />
Licensed to the Apache Software Foundation (ASF) under one or more<br />
   contributor license agreements.   See the NOTICE file distributed with<br />
   this work for additional information regarding copyright ownership.<br />
   The ASF licenses this file to You under the Apache License, Version 2.0<br />
   (the "License"); you may not use this file except in compliance with<br />
   the License.   You may obtain a copy of the License at
<p>http://www.apache.org/licenses/LICENSE-2.0</p>
<p>Unless required by applicable law or agreed to in writing, software<br />
   distributed under the License is distributed on an "AS IS" BASIS,<br />
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<br />
   See the License for the specific language governing permissions and<br />
   limitations under the License.<br />
-->
        <p>&nbsp;</p>
        <p><web-app xmlns="http://java.sun.com/xml/ns/j2ee"><br />
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br />
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"<br />
        version="2.4"&gt;</p>
        <p><display-name>Welcome to Tomcat</display-name><br />
        <description><br />
        Welcome to Tomcat<br />
        </description></p>
        <p><!-- JSPC servlet mappings start --></p>
        <p><!-- JSPC servlet mappings end --></p>
        <p></web-app></p>
        <p></coolcode></p>
        </li>
    </ul>
    <li>创建好虚拟目录之后要在server.xml中<strong></host>之前</strong>添加一句<strong><context path="/映射名" docbase="/本机绝对地址"  /></strong> (大小写敏感，修改完之后应该重新启动Tomcat服务器使配置生效) </li>
</ul>
<p><strong>若设置虚拟目录后访问目录提示404错误而可以运行目录下的jsp文件则说明是目录权限被禁用，可以修改conf/web.xml文件找到<temp_param-name></param-name>
将下面一行中的false改成true</strong></p>
<p>jsp文件的运行过程： <strong>*.jsp&nbsp; --&gt;&nbsp; *.java&nbsp; --&gt;&nbsp; *.class&nbsp; --&gt;&nbsp; 运行显示</strong>&nbsp;</p>
<ul>
    <li>*.class是第一次运行生成后存放在work目录下的，所以jsp文件第一次或者修改后首次运行比较慢而后来再运行的速度很快 </li>
</ul>
<img src ="http://www.blogjava.net/cclang/aggbug/219980.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cclang/" target="_blank">程序手记</a> 2008-08-04 16:39 <a href="http://www.blogjava.net/cclang/archive/2008/08/04/219980.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA基础 （嵌套类） 第四天</title><link>http://www.blogjava.net/cclang/archive/2008/08/04/219943.html</link><dc:creator>程序手记</dc:creator><author>程序手记</author><pubDate>Mon, 04 Aug 2008 07:21:00 GMT</pubDate><guid>http://www.blogjava.net/cclang/archive/2008/08/04/219943.html</guid><wfw:comment>http://www.blogjava.net/cclang/comments/219943.html</wfw:comment><comments>http://www.blogjava.net/cclang/archive/2008/08/04/219943.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cclang/comments/commentRss/219943.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cclang/services/trackbacks/219943.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;Java允许将类的定义方在其他类的内部，形成嵌套类。嵌套类使逻辑关系紧密的类组成一个整体，嵌套类可以用于访问其所在的类的作用域。<br />
<br />
嵌套类可以访问外部类似有成员。<br />
&nbsp;&nbsp;&nbsp;&nbsp;// OuterNested1.java<br />
public class OuterNested1{<br />
&nbsp;&nbsp;&nbsp;&nbsp;private int size;<br />
&nbsp;&nbsp;&nbsp;&nbsp;public class Nested{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public int doStuff(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//嵌套类可以访问OuterNested1类的似有成员 size 变量<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(size++);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;public int testTheNested(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nested i = new Nested();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(i.doStuff());<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
<br />
//TestOuterNested1.java<br />
public class TestOuterNested1 {<br />
&nbsp;&nbsp;&nbsp;&nbsp;public static void main(String[] args){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outerNested1 outer = new&nbsp;OuterNested1();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(outer.testTheNested());<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}
<img src ="http://www.blogjava.net/cclang/aggbug/219943.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cclang/" target="_blank">程序手记</a> 2008-08-04 15:21 <a href="http://www.blogjava.net/cclang/archive/2008/08/04/219943.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>