﻿<?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>IT博客-真才实料才是最真-文章分类-JAVA</title><link>http://www.cnitblog.com/gavinkin555/category/6034.html</link><description>Dream have no limit</description><language>zh-cn</language><lastBuildDate>Wed, 28 Sep 2011 03:29:41 GMT</lastBuildDate><pubDate>Wed, 28 Sep 2011 03:29:41 GMT</pubDate><ttl>60</ttl><item><title>用MyEclipse开发Spring入门</title><link>http://www.cnitblog.com/gavinkin555/articles/35973.html</link><dc:creator>gavinkin555</dc:creator><author>gavinkin555</author><pubDate>Wed, 07 Nov 2007 05:03:00 GMT</pubDate><guid>http://www.cnitblog.com/gavinkin555/articles/35973.html</guid><wfw:comment>http://www.cnitblog.com/gavinkin555/comments/35973.html</wfw:comment><comments>http://www.cnitblog.com/gavinkin555/articles/35973.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/gavinkin555/comments/commentRss/35973.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/gavinkin555/services/trackbacks/35973.html</trackback:ping><description><![CDATA[<p><strong>1 新建一个项目</strong></p>
<p>&nbsp;&nbsp; File-----&gt;New -----&gt;Project&nbsp; 在出现的对话框中选择 MyEclipse 下的 Web Project，在Project Name 输入mySpring1，其他的选项默认，再点Finish完成；</p>
<p><strong>2 加入Spring 包</strong> </p>
<p>&nbsp;&nbsp; 在myspring1 项目上点右键，选MyEclipse ---&gt; Add Spring Capabities，再点Finish完成；</p>
<p><strong>3 加入Log4j 包</strong></p>
<p>&nbsp;&nbsp; 菜单---&gt;Project --&gt;Properties-----Java Build Path&nbsp;点Libraries 选项卡，再选Add External Jars 加入log4j 的jar 包 (可从网上下)<a href="http://archive.apache.org/dist/logging/log4j/1.2.8/"><u><font color=#0000ff>http://archive.apache.org/dist/logging/log4j/1.2.8/</font></u></a></p>
<p><strong>4 新建Action接口文件</strong> </p>
<p>&nbsp;&nbsp;&nbsp;右键点src ----&gt;New ----&gt;Interface (包名net.xiaxin.spring.qs) </p>
<p>&nbsp;&nbsp; Action.java代码</p>
<p>package net.xiaxin.spring.qs;</p>
<p>public interface Action {<br>&nbsp;public String execute(String str); </p>
<p>}<br><strong>5 建立Action接口的两个实现UpperAction、LowerAction</strong></p>
<p>LowerAction.java</p>
<p>package net.xiaxin.spring.qs;</p>
<p>public class LowerAction implements Action { <br>&nbsp; <br>&nbsp;&nbsp; private String message; <br>&nbsp;&nbsp; public String getMessage() { <br>&nbsp;&nbsp;&nbsp;&nbsp; return message; <br>&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; public void setMessage(String string) { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message = string; <br>&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; public String execute(String str) { <br>&nbsp;&nbsp;&nbsp;&nbsp; return (getMessage()+str).toLowerCase(); <br>&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;} </p>
<p>/////<br>UpperAction.java</p>
<p>package net.xiaxin.spring.qs;</p>
<p>public class UpperAction implements Action { <br>&nbsp;&nbsp; <br>&nbsp;&nbsp; private String message; <br>&nbsp;&nbsp; <br>&nbsp;&nbsp; public String getMessage() { <br>&nbsp;&nbsp;&nbsp; return message; <br>&nbsp;&nbsp; } <br>&nbsp; <br>&nbsp;&nbsp; public void setMessage(String string) { <br>&nbsp;&nbsp;&nbsp;&nbsp; message = string; <br>&nbsp;&nbsp; } <br>&nbsp; <br>&nbsp;&nbsp; public String execute(String str) { <br>&nbsp;&nbsp;&nbsp; return (getMessage() + str).toUpperCase(); <br>&nbsp;&nbsp; } <br>&nbsp;} </p>
<p>6&nbsp; 新建log4j.properties配置文件，内容如下： </p>
<p>log4j.rootLogger=DEBUG, stdout <br>&nbsp;<br>log4j.appender.stdout=org.apache.log4j.ConsoleAppender <br>log4j.appender.stdout.layout=org.apache.log4j.PatternLayout <br>log4j.appender.stdout.layout.ConversionPattern=%c{1} - %m%n </p>
<p>7&nbsp; Spring配置文件（bean.xml） </p>
<p>在myspring 上右击 ---&gt;New---&gt;File&nbsp; 文件名 bean.xml </p>
<p>bean.xml 内容如下</p>
<p>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br>&lt;!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "<a href="http://www.springframework.org/dtd/spring-beans.dtd"><u><font color=#0000ff>http://www.springframework.org/dtd/spring-beans.dtd</font></u></a>"&gt;<br>&lt;beans&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;description&gt;Spring Quick Start&lt;/description&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;bean id="TheAction" <br>&nbsp;class="net.xiaxin.spring.qs.UpperAction"&gt;<br>&nbsp;&nbsp;&nbsp; &lt;property name="message"&gt; <br>&lt;value&gt;HeLLo&lt;/value&gt; <br>&lt;/property&gt; <br>&nbsp; &lt;/bean&gt;&nbsp; <br>&nbsp;&lt;bean id="action2" class="net.xiaxin.spring.qs.LowerAction"&gt;<br>&lt;property name="message"&gt; <br>&lt;value&gt;HeLLo&lt;/value&gt; <br>&lt;/property&gt; <br>&nbsp; &lt;/bean&gt; <br>&lt;/beans&gt; </p>
<p><br>8 &nbsp;建立测试文件SimpleTest.java</p>
<p>package test;</p>
<p>import net.xiaxin.spring.qs.Action;</p>
<p>import org.springframework.context.ApplicationContext;<br>import org.springframework.context.support.FileSystemXmlApplicationContext;</p>
<p>public class SimpleTest {<br>&nbsp;public static void main(String args[])<br>&nbsp;{<br>&nbsp;&nbsp;SimpleTest test=new SimpleTest();<br>&nbsp;&nbsp;test.testQuickStart();<br>&nbsp;&nbsp;<br>&nbsp;}<br>&nbsp;public void testQuickStart() { <br>&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; ApplicationContext ctx=new&nbsp; FileSystemXmlApplicationContext("bean.xml"); <br>&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; Action action = (Action) ctx.getBean("TheAction"); <br>&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(action.execute("Rod Johnson"));<br>&nbsp;&nbsp;&nbsp;&nbsp; action = (Action) ctx.getBean("action2");<br>&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(action.execute("jecKj"));<br>&nbsp; <br>&nbsp; } </p>
<p>}</p>
<p>9 把SimpleTeat.java 设置成主类就可以运行了，运行结果 (红色部分是想要的结果)</p>
<p>FileSystemXmlApplicationContext - Publishing event in context [org.springframework.context.support.FileSystemXmlApplicationContext;hashCode=12694833]: org.springframework.context.event.ContextRefreshedEvent[source=org.springframework.context.support.FileSystemXmlApplicationContext: display name [org.springframework.context.support.FileSystemXmlApplicationContext;hashCode=12694833]; startup date [Wed May 31 13:30:25 CST 2006]; root of context hierarchy]<br>&nbsp;DefaultListableBeanFactory - Returning cached instance of singleton bean 'TheAction'<br>&nbsp;<font color=#ff0000>HELLOROD JOHNSON</font><br>DefaultListableBeanFactory - Returning cached instance of singleton bean 'action2'<br><font color=#f73809>&nbsp;hellojeckj</font>&nbsp;</p>
<img src ="http://www.cnitblog.com/gavinkin555/aggbug/35973.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/gavinkin555/" target="_blank">gavinkin555</a> 2007-11-07 13:03 <a href="http://www.cnitblog.com/gavinkin555/articles/35973.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA中int、String的类型转换</title><link>http://www.cnitblog.com/gavinkin555/articles/33260.html</link><dc:creator>gavinkin555</dc:creator><author>gavinkin555</author><pubDate>Wed, 12 Sep 2007 03:08:00 GMT</pubDate><guid>http://www.cnitblog.com/gavinkin555/articles/33260.html</guid><wfw:comment>http://www.cnitblog.com/gavinkin555/comments/33260.html</wfw:comment><comments>http://www.cnitblog.com/gavinkin555/articles/33260.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/gavinkin555/comments/commentRss/33260.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/gavinkin555/services/trackbacks/33260.html</trackback:ping><description><![CDATA[如何将字串 String 转换成整数 int?<br /><br />A. 有两个方法:<br /><br />1). int i = Integer.parseInt([String]); 或<br />i = Integer.parseInt([String],[int radix]);<br /><br />2). int i = Integer.valueOf(my_str).intValue();<br /><br />注: 字串转成 Double, Float, Long 的方法大同小异.<br /><div style="BACKGROUND: #f9f3ed">2 如何将整数 int 转换成字串 String ?<br /></div><div style="BACKGROUND: #f9f3ed">A. 有叁种方法:<br /><br />1.) String s = String.valueOf(i);<br /><br />2.) String s = Integer.toString(i);<br /><br />3.) String s = "" + i;<br /><br />注: Double, Float, Long 转成字串的方法大同小异.<br /></div><img src ="http://www.cnitblog.com/gavinkin555/aggbug/33260.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/gavinkin555/" target="_blank">gavinkin555</a> 2007-09-12 11:08 <a href="http://www.cnitblog.com/gavinkin555/articles/33260.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>类型转换</title><link>http://www.cnitblog.com/gavinkin555/articles/32869.html</link><dc:creator>gavinkin555</dc:creator><author>gavinkin555</author><pubDate>Mon, 03 Sep 2007 07:12:00 GMT</pubDate><guid>http://www.cnitblog.com/gavinkin555/articles/32869.html</guid><wfw:comment>http://www.cnitblog.com/gavinkin555/comments/32869.html</wfw:comment><comments>http://www.cnitblog.com/gavinkin555/articles/32869.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/gavinkin555/comments/commentRss/32869.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/gavinkin555/services/trackbacks/32869.html</trackback:ping><description><![CDATA[<div class="g_t_left c07 content" id=blogtext__fks_dEQEnP_0mVOwQDWU7jG05u6xmMdEAe4G>
<table>
    <tbody>
        <tr>
            <td><strong>Tags</strong>: -</td>
        </tr>
    </tbody>
</table>
<br>
<p><font size=4>integer to String : int i = 42;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String str = Integer.toString(i);&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String str = "" + i&nbsp;&nbsp; <br>--------------------------------------------------------------<br>double to String : String str = Double.toString(i);&nbsp;&nbsp; <br>--------------------------------------------------------------<br>long to String : String str = Long.toString(l); <br>float to String : String str = Float.toString(f);&nbsp;&nbsp; <br>--------------------------------------------------------------<br>String to integer : str = "25";&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i = Integer.valueOf(str).intValue();&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i = Integer.parseInt(str);<br>--------------------------------------------------------------<br>String&nbsp;&nbsp; to&nbsp;&nbsp; double&nbsp;&nbsp; :&nbsp;&nbsp; double d = Double.valueOf(str).doubleValue(); <br>--------------------------------------------------------------<br>String&nbsp;&nbsp; to&nbsp;&nbsp; long&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; long l = Long.valueOf(str).longValue();&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; long&nbsp;&nbsp; l&nbsp;&nbsp; =&nbsp;&nbsp; Long.parseLong(str);<br>--------------------------------------------------------------<br>String&nbsp;&nbsp; to&nbsp;&nbsp; float&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp; float f = Float.valueOf(str).floatValue();&nbsp;&nbsp; <br>--------------------------------------------------------------<br>decimal&nbsp;&nbsp; to&nbsp;&nbsp; binary&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int&nbsp;&nbsp; i&nbsp;&nbsp; =&nbsp;&nbsp; 42;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String&nbsp;&nbsp; binstr&nbsp;&nbsp; =&nbsp;&nbsp; Integer.toBinaryString(i);&nbsp;&nbsp; </font></p>
<p><font size=4>decimal&nbsp;&nbsp; to&nbsp;&nbsp; hexadecimal&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int&nbsp;&nbsp; i&nbsp;&nbsp; =&nbsp;&nbsp; 42;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String&nbsp;&nbsp; hexstr&nbsp;&nbsp; =&nbsp;&nbsp; Integer.toString(i,&nbsp;&nbsp; 16);&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String&nbsp;&nbsp; hexstr&nbsp;&nbsp; =&nbsp;&nbsp; Integer.toHexString(i);&nbsp;&nbsp; </font></p>
<p><font size=4>hexadecimal&nbsp; (String)&nbsp; to&nbsp; integer&nbsp;&nbsp; :&nbsp; int i = Integer.valueOf("B8DA3", 16).intValue();&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int&nbsp;&nbsp; i&nbsp;&nbsp; =&nbsp;&nbsp; Integer.parseInt("B8DA3",&nbsp;&nbsp; 16);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></p>
<p><font size=4>--------------------------------------------------------------<br>ASCII&nbsp;&nbsp; code&nbsp;&nbsp; to&nbsp;&nbsp; String&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int&nbsp;&nbsp; i&nbsp;&nbsp; =&nbsp;&nbsp; 64;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String&nbsp;&nbsp; aChar&nbsp;&nbsp; =&nbsp;&nbsp; new&nbsp;&nbsp; Character((char)i).toString();&nbsp;&nbsp; <br>--------------------------------------------------------------<br>integer&nbsp;&nbsp; to&nbsp;&nbsp; ASCII&nbsp;&nbsp; code&nbsp;&nbsp; (byte)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char&nbsp;&nbsp; c&nbsp;&nbsp; =&nbsp;&nbsp; 'A';&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int&nbsp;&nbsp; i&nbsp;&nbsp; =&nbsp;&nbsp; (int)&nbsp;&nbsp; c;&nbsp;&nbsp; //&nbsp; i&nbsp; will&nbsp; have&nbsp; the&nbsp; value&nbsp; 65&nbsp; decimal&nbsp;&nbsp; <br>--------------------------------------------------------------</font></p>
<p><font size=4>To extract Ascii codes from a String&nbsp;&nbsp;&nbsp;&nbsp; String test = "ABCD";&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for ( int i = 0; i &lt; test.length(); ++i ) {&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char c = test.charAt( i );&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i = (int) c;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(i);&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br>--------------------------------------------------------------&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></p>
<p><font size=4>integer to boolean&nbsp;&nbsp;&nbsp;&nbsp; b = (i != 0);&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; <br>boolean to integer&nbsp;&nbsp;&nbsp;&nbsp; i = (b)?1:0;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>--------------------------------------------------------------<br>--------------------------------------------------------------<br>--------------------------------------------------------------<br>note :To&nbsp;&nbsp; catch&nbsp;&nbsp; illegal&nbsp;&nbsp; number&nbsp;&nbsp; conversion,&nbsp;&nbsp; try&nbsp;&nbsp; using&nbsp;&nbsp; the&nbsp;&nbsp; try/catch&nbsp;&nbsp; mechanism.&nbsp;&nbsp; try{&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i&nbsp;&nbsp; =&nbsp;&nbsp; Integer.parseInt(aString);&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br>&nbsp; catch(NumberFormatException&nbsp;&nbsp; e)&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>--------------------------------------------------------------<br>--------------------------------------------------------------<br>--------------------------------------------------------------</font></p>
</div>
<img src ="http://www.cnitblog.com/gavinkin555/aggbug/32869.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/gavinkin555/" target="_blank">gavinkin555</a> 2007-09-03 15:12 <a href="http://www.cnitblog.com/gavinkin555/articles/32869.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp中的事件处理</title><link>http://www.cnitblog.com/gavinkin555/articles/32870.html</link><dc:creator>gavinkin555</dc:creator><author>gavinkin555</author><pubDate>Mon, 03 Sep 2007 07:12:00 GMT</pubDate><guid>http://www.cnitblog.com/gavinkin555/articles/32870.html</guid><wfw:comment>http://www.cnitblog.com/gavinkin555/comments/32870.html</wfw:comment><comments>http://www.cnitblog.com/gavinkin555/articles/32870.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/gavinkin555/comments/commentRss/32870.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/gavinkin555/services/trackbacks/32870.html</trackback:ping><description><![CDATA[<p>&lt;script &nbsp; language="javascript1.2" &nbsp; type="text/javascript"&gt; &nbsp; <br>&nbsp; function &nbsp; popwin(strurl, &nbsp; winname, &nbsp; width, &nbsp; height) &nbsp; { &nbsp; <br>&nbsp; var &nbsp; left &nbsp; = &nbsp; (screen.width &nbsp; - &nbsp; width)/2; &nbsp; <br>&nbsp; var &nbsp; top &nbsp; = &nbsp; (screen.height &nbsp; - &nbsp; height)/2; &nbsp; <br>&nbsp; var &nbsp; str &nbsp; = &nbsp; left=+left+, &nbsp; top=+top+, &nbsp; width=+width+,height=+height; &nbsp; <br>&nbsp; window.open(strurl, &nbsp; winname, &nbsp; str); &nbsp; <br>&nbsp; } &nbsp; <br>&nbsp; &lt;/script&gt; &nbsp; <br>&nbsp; &nbsp; <br>&nbsp; &lt;input &nbsp; type="submit" &nbsp; name="add" &nbsp; value="添加" &nbsp; onclick="javascript:popwin(reply.asp?id=&lt;%=id%&gt;, &nbsp; reply, &nbsp; 500, &nbsp; 300)"&gt;</p>
<p>&lt;input &nbsp; type="button" &nbsp; name="add" &nbsp; value="添加" &nbsp; onclick="window.location.href=add.jsp"&gt; &nbsp; <br>&nbsp; &lt;input &nbsp; type="button" &nbsp; name="delete" &nbsp; value="删除" &nbsp; onclick="window.location.href=del.jsp"&gt; &nbsp; <br>&nbsp; &lt;input &nbsp; type="button" &nbsp; name="search" &nbsp; value="查询" &nbsp; onclick="window.location.href=dit.jsp"&gt;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p style="TEXT-INDENT: 2em">
<table cellSpacing=3 cellPadding=3 width="100%" border=0>
    <tbody>
        <tr>
            <td align=left>JavaScript实现页面跳转的几种方式</td>
        </tr>
        <tr>
            <td height=15></td>
        </tr>
        <tr>
            <td align=left>
            <p>&#160;</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp; 在开发Web应用服务时，经常会遇到页面的跳转问题，不论是ASP还JSP本身都提供了一些实现页面跳转的方法，但是，这些方法往往都要求页面上不能有输出（即使有输出也不能正常输出）。我们往往需要先给出提示信息然后再进行跳转，这时就要用JavaScript来实现。通常有以下几种方法：</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; 第一种：</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&lt;script language="javascript" type="text/javascript"&gt;</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.location.href="login.jsp?backurl="+window.location.href;</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&lt;/script&gt;</p>
            <p style="TEXT-INDENT: 2em">第二种：</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&lt;script language="javascript"&gt;</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("返回");</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window.history.back(-1);</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp; &lt;/script&gt;</p>
            <p style="TEXT-INDENT: 2em">第三种：</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp; &lt;script language="javascript"&gt;</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window.navigate("top.jsp");</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&lt;/script&gt;</p>
            <p style="TEXT-INDENT: 2em">第四种：</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp; &lt;script language="JavaScript"&gt;</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.location='top.htm';</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp; &lt;/script&gt;</p>
            <p style="TEXT-INDENT: 2em">第五种：</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp; &lt;script language="javascript"&gt;</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("非法访问！");</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;top.location='xx.jsp';</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp; &lt;/script&gt;</p>
            <p style="TEXT-INDENT: 2em">&nbsp;</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;另外，这些东东也很有用：</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp; 按钮式：</p>
            <p style="TEXT-INDENT: 2em">　　&lt;INPUT name="pclog" type="button" value="GO" onClick="location.href='http://9ba.cn/'"&gt;</p>
            <p style="TEXT-INDENT: 2em">　　链接式：</p>
            <p style="TEXT-INDENT: 2em">　　&lt;a href="javascript:history.go(-1)"&gt;返回上一步&lt;/a&gt;</p>
            <p style="TEXT-INDENT: 2em">　　&lt;a href="&lt;%=Request.ServerVariables("HTTP_REFERER")%&gt;"&gt;返回上一步&lt;/a&gt;</p>
            <p style="TEXT-INDENT: 2em">　　直接跳转式：</p>
            <p style="TEXT-INDENT: 2em">　　&lt;script&gt;window.location.href='http://www.9ba.cn';&lt;/script&gt;</p>
            <p style="TEXT-INDENT: 2em">　　开新窗口：</p>
            <p style="TEXT-INDENT: 2em">　　&lt;a href="javascript:" onClick="window.open('http://www.9ba.cn/post/235.html','','height=500,width=611,scrollbars=yes,status=yes')"&gt;云上的日子&lt;/a&gt;</p>
            <p style="TEXT-INDENT: 2em">&nbsp;</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp; 这里还有些有用的东东：</p>
            <p style="TEXT-INDENT: 2em">&nbsp;</p>
            <p style="TEXT-INDENT: 2em">&nbsp; ＝＝＝＝＝javascript中弹出选择框跳转到其他页面＝＝＝＝＝</p>
            <p style="TEXT-INDENT: 2em">&lt;script&nbsp;language="javascript"&gt;</p>
            <p style="TEXT-INDENT: 2em">&lt;!--</p>
            <p style="TEXT-INDENT: 2em">function&nbsp;logout(){</p>
            <p style="TEXT-INDENT: 2em">if&nbsp;(confirm("你确定要注销身份吗？\n是－选择确定，否-选择取消")){</p>
            <p style="TEXT-INDENT: 2em">window.location.href="logout.asp?act=logout"</p>
            <p style="TEXT-INDENT: 2em">}</p>
            <p style="TEXT-INDENT: 2em">}</p>
            <p style="TEXT-INDENT: 2em">--&gt;</p>
            <p style="TEXT-INDENT: 2em">&lt;/script&gt;</p>
            <p style="TEXT-INDENT: 2em">＝＝＝＝＝javascript中弹出提示框跳转到其他页面＝＝＝＝＝</p>
            <p style="TEXT-INDENT: 2em">&lt;script&nbsp;language="javascript"&gt;</p>
            <p style="TEXT-INDENT: 2em">&lt;!--</p>
            <p style="TEXT-INDENT: 2em">function&nbsp;logout(){</p>
            <p style="TEXT-INDENT: 2em">alert("你确定要注销身份吗？");</p>
            <p style="TEXT-INDENT: 2em">window.location.href="logout.asp?act=logout"</p>
            <p style="TEXT-INDENT: 2em">}</p>
            <p style="TEXT-INDENT: 2em">--&gt;</p>
            <p style="TEXT-INDENT: 2em">&lt;/script&gt;</p>
            <p style="TEXT-INDENT: 2em">＝＝＝＝＝ASP中直接跳转到其他页面＝＝＝＝＝＝＝＝＝＝＝</p>
            <p style="TEXT-INDENT: 2em">&lt;%</p>
            <p style="TEXT-INDENT: 2em">response.redirect&nbsp;"logont.asp"</p>
            <p style="TEXT-INDENT: 2em">%&gt;</p>
            <p style="TEXT-INDENT: 2em">＝＝＝＝＝Html中确认后弹出新页面＝＝＝＝＝＝＝＝＝＝＝</p>
            <p style="TEXT-INDENT: 2em">function&nbsp;Del(id)</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp;{</p>
            <p style="TEXT-INDENT: 2em">if&nbsp;(confirm("你确定要删除吗？"))</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp;{</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp;window.open("otherfile.asp?ID="+id+"&amp;act=del","top","width=640,height=400")</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp;}</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp;}</p>
            <p style="TEXT-INDENT: 2em">＝＝＝＝＝Html中确认后跳转到其他页面＝＝＝＝＝＝＝＝＝</p>
            <p style="TEXT-INDENT: 2em">function&nbsp;Del(URL)</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp;{</p>
            <p style="TEXT-INDENT: 2em">if&nbsp;(confirm("你确定要删除吗？"))</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp;{</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp;//URL="otherfile.htm"</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp;window.location.href=URL</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp;}</p>
            <p style="TEXT-INDENT: 2em">&nbsp;&nbsp;}</p>
            </td>
        </tr>
    </tbody>
</table>
</p>
<img src ="http://www.cnitblog.com/gavinkin555/aggbug/32870.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/gavinkin555/" target="_blank">gavinkin555</a> 2007-09-03 15:12 <a href="http://www.cnitblog.com/gavinkin555/articles/32870.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Serializable接口</title><link>http://www.cnitblog.com/gavinkin555/articles/32868.html</link><dc:creator>gavinkin555</dc:creator><author>gavinkin555</author><pubDate>Mon, 03 Sep 2007 07:11:00 GMT</pubDate><guid>http://www.cnitblog.com/gavinkin555/articles/32868.html</guid><wfw:comment>http://www.cnitblog.com/gavinkin555/comments/32868.html</wfw:comment><comments>http://www.cnitblog.com/gavinkin555/articles/32868.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/gavinkin555/comments/commentRss/32868.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/gavinkin555/services/trackbacks/32868.html</trackback:ping><description><![CDATA[<div class="g_t_left c07 content" id=blogtext__fks_wAKMf9Um69pnTQxJW16S3RQwmNMTMVez>
<p style="TEXT-INDENT: 2em">序列化是把一个对象的状态写入一个字节流的过程，它执行RMI，RMI允许一台机器上的JAVA对象调用不同机器上的JAVA对象方法，对象可以作为参数提供给那个远程方法，发送机序列化该对象并传送它，接收机执行反序列化。 序列化和反序列化的关系图表可形成包含循环引用的顺序图表。这是整个序列化的总体思想。 </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 而Serializable接口属于支持序列化的一个接口，只有一个实现它的对象可以被序列化工具存储和回复，Serializable接口没有定义任何成员，只用来表示一个累可以被序列化，若该类可以序列化，那么它的所有子类都可以。 </p>
<p style="TEXT-INDENT: 2em">下面是关于序列化的一个实例： </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp; 程序名称：SerializationDemo.java </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp; 程序主题：实现对象的序列化和反序列化 </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp; 程序说明：该程序由实例化一个MyClass类的对象开始，该对象有三个实例变量，类型分别为String、int、double，是希望存储和恢复的信息。</p>
<p style="TEXT-INDENT: 2em">import java.io.*; </p>
<p style="TEXT-INDENT: 2em">public class SerializationDemo{ </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static void main(String args[]){ </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Object serialization </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try{ </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MyClass object1=new MyClass("serial test", 11);&nbsp;&nbsp;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("object serial:"+object1); </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileOutputStream fos=new FileOutputStream("serial.txt"); </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ObjectOutputStream oos=new ObjectOutputStream(fos); </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oos.writeObject(object1); </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oos.flush(); </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oos.close(); </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch(Exception e){ </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("Exception during serialization:"+e); </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.exit(0); </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Object deserialization </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try{ </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MyClass object2; </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileInputStream fis=new FileInputStream("serial.txt"); </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ObjectInputStream ois=new ObjectInputStream(fis); </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; object2=(MyClass)ois.readObject(); </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ois.close(); </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("object deserial:"+object2); </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch(Exception e){ </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("Exception during deserialization:"+e); </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.exit(0); </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </p>
<p style="TEXT-INDENT: 2em">} </p>
<p style="TEXT-INDENT: 2em">class MyClass implements Serializable{ </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String s; </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i;&nbsp;&nbsp;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public MyClass(String s,int i){ </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.s=s; </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.i=i; </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public String toString(){ </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return "s="+s+"; i="+i; </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </p>
<p style="TEXT-INDENT: 2em">} </p>
<p style="TEXT-INDENT: 2em">程序运行结果：object1和object2的实例变量是一样的，</p>
<p style="TEXT-INDENT: 2em">输出如下:</p>
<p style="TEXT-INDENT: 2em">object serial:s=serial test; i=11</p>
<p style="TEXT-INDENT: 2em">object deserial:s=serial test; i=11</p>
<p style="TEXT-INDENT: 2em">Object serialization主要用来支持2种主要的特性： </p>
<p style="TEXT-INDENT: 2em">1。Java的RMI(remote method invocation).RMI允许象在本机上一样操作远程机器上的对象。当发送消息给远程对象时，就需要用到serializaiton机制来发送参数和接收返回直。 </p>
<p style="TEXT-INDENT: 2em">2。Java的JavaBeans. Bean的状态信息通常是在设计时配置的。Bean的状态信息必须被存起来，以便当程序运行时能恢复这些状态信息。这也需要serializaiton机制。 </p>
<p style="TEXT-INDENT: 2em">关于持久化应该是英文里的persistence.但是Java语言里现在只支持lightweight persistence,就是轻量级持久化，这是通过serialization机制来实现的。 </p>
<p style="TEXT-INDENT: 2em">persistence是指一个对象的生命周期不由程序是否执行来决定，即使是在程序终止时这个对象也存在。它把一个serializable的对象写到磁盘（本机或其他机器上的非RAM存储器），并在程序重新调用时再读取对象到通常的RAM存储器。 </p>
<p style="TEXT-INDENT: 2em">为什么说Java的serialization机制实现的是lightweight persistence?因为你必须显式的序列化和反序列化程序里的对象；而不是直接由一个关键词来定义一个对象是序列化的然后由系统做相应的处理。 </p>
<p style="TEXT-INDENT: 2em">1.4版本后,JavaBeans的持久化采用基于XML的机制,不再需要Serializable 设计用来被继承的类时,尽量不实现Serializable,用来被继承的interface也不要 继承Serializable。</p>
<p style="TEXT-INDENT: 2em"></p>
</div>
<img src ="http://www.cnitblog.com/gavinkin555/aggbug/32868.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/gavinkin555/" target="_blank">gavinkin555</a> 2007-09-03 15:11 <a href="http://www.cnitblog.com/gavinkin555/articles/32868.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>config</title><link>http://www.cnitblog.com/gavinkin555/articles/32866.html</link><dc:creator>gavinkin555</dc:creator><author>gavinkin555</author><pubDate>Mon, 03 Sep 2007 07:10:00 GMT</pubDate><guid>http://www.cnitblog.com/gavinkin555/articles/32866.html</guid><wfw:comment>http://www.cnitblog.com/gavinkin555/comments/32866.html</wfw:comment><comments>http://www.cnitblog.com/gavinkin555/articles/32866.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/gavinkin555/comments/commentRss/32866.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/gavinkin555/services/trackbacks/32866.html</trackback:ping><description><![CDATA[<div class="g_t_left c07 content" id=blogtext__fks_K47X5KS7-nLE9tidheRQmTmNRM67efgo>
<p>config 对象 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; config 对象里存放着一些Servlet 初始的数据结构。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; config 对象实现于javax.servlet.ServletConfig 接口，它共有下列四种方法： <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public String getInitParameter(name) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public java.util.Enumeration getInitParameterNames( ) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public ServletContext getServletContext( ) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public Sring getServletName( ) </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&lt;%@ page language="java" import="java.util.*" pageEncoding="utf-8"%&gt;</p>
<p>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;<br>&lt;html&gt;<br>&nbsp; &lt;head&gt;<br>&nbsp;&nbsp;&nbsp; &lt;title&gt;My JSP 'config.jsp' starting page&lt;/title&gt;</p>
<p>&nbsp;&lt;meta http-equiv="pragma" content="no-cache"&gt;<br>&nbsp;&lt;meta http-equiv="cache-control" content="no-cache"&gt;<br>&nbsp;&lt;meta http-equiv="expires" content="0"&gt;&nbsp;&nbsp;&nbsp; <br>&nbsp;&lt;meta http-equiv="keywords" content="keyword1,keyword2,keyword3"&gt;<br>&nbsp;&lt;meta http-equiv="description" content="This is my page"&gt;<br>&nbsp;&lt;!--<br>&nbsp;&lt;link rel="stylesheet" type="text/css" href="styles.css"&gt;<br>&nbsp;--&gt;</p>
<p>&nbsp; &lt;/head&gt;<br>&nbsp; <br>&nbsp; &lt;body&gt;<br>&nbsp;&nbsp;&nbsp; &lt;body&nbsp;&nbsp; bgcolor="#ffffff"&gt;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;%&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int&nbsp;&nbsp; org&nbsp;&nbsp; =&nbsp;&nbsp; 0;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int&nbsp;&nbsp; count&nbsp;&nbsp; =&nbsp;&nbsp; 0;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; org&nbsp;&nbsp; =&nbsp;&nbsp; Integer.parseInt(config.getInitParameter("count").toString());&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch(Exception&nbsp;&nbsp; e)&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println("org:"+e);&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; count&nbsp;&nbsp; =&nbsp;&nbsp; Integer.parseInt(application.getAttribute("config_counter").toString());&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch(Exception&nbsp;&nbsp; e)&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println("config_counter"+e);&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(count&lt;org)&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; count&nbsp;&nbsp; =&nbsp;&nbsp; org;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println("&lt;br&gt;");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println("count is " + count);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println("&lt;br&gt;");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println("org is "+ org);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println("&lt;br&gt;");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println("这页面已经访问了"+count+"次");&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; count++;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; application.setAttribute("config_counter",new&nbsp;&nbsp; Integer(count));&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %&gt;&nbsp;&nbsp; <br>&nbsp; &lt;/body&gt;&nbsp;&nbsp; </p>
<p>&nbsp; &lt;/body&gt;<br>&lt;/html&gt;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The result :</p>
<p>org:java.lang.NullPointerException <br>count is 14 <br>org is 0 <br>这页面已经访问了14次 <br></p>
</div>
<img src ="http://www.cnitblog.com/gavinkin555/aggbug/32866.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/gavinkin555/" target="_blank">gavinkin555</a> 2007-09-03 15:10 <a href="http://www.cnitblog.com/gavinkin555/articles/32866.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>exception对象的简单应用</title><link>http://www.cnitblog.com/gavinkin555/articles/32865.html</link><dc:creator>gavinkin555</dc:creator><author>gavinkin555</author><pubDate>Mon, 03 Sep 2007 07:09:00 GMT</pubDate><guid>http://www.cnitblog.com/gavinkin555/articles/32865.html</guid><wfw:comment>http://www.cnitblog.com/gavinkin555/comments/32865.html</wfw:comment><comments>http://www.cnitblog.com/gavinkin555/articles/32865.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/gavinkin555/comments/commentRss/32865.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/gavinkin555/services/trackbacks/32865.html</trackback:ping><description><![CDATA[<div class="g_t_left c07 content" id=blogtext__fks_wsCOf8dAT11xpk6jUqR06gztoze6JAiu>exception对象的相关应用，以下是空指针异常的捕获<br>syntax_error.jsp页面<br>&lt;%@ page contentType="text/html;charset=gb2312" %&gt;<br>&lt;%--导入JAVA的util包，使用包中的Calendar类；错误连接到exception.jsp--%&gt;<br>&lt;%@ page import="java.util.*"&nbsp;&nbsp;errorPage="exception.jsp"%&gt;<br>&lt;%<br>Calendar rightNow=null ;//将rightNow设空<br>rightNow.getTime(); //此行代码会抛出空指针异常<br>%&gt;<br><br>exception.jsp页面（异常捕获）<br>&lt;%--isErrorPage设置是否使用exception--%&gt;<br>&lt;%@ page contentType="text/html;charset=gb2312"&nbsp;&nbsp;isErrorPage="true"%&gt;<br>&lt;%--导入io包，后面要使用StringWrite和PrintWrite类--%&gt;<br>&lt;%@ page import="java.io.*"%&gt;<br>&lt;html&gt;<br>&lt;head&gt;<br>&lt;title&gt;错误页面&lt;/title&gt;<br>&lt;/head&gt;<br>&lt;body&gt;<br>&lt;p&gt;&lt;b&gt;exception使用示例&lt;/b&gt;&lt;/p&gt;<br>&lt;hr size="0"&gt;<br>&lt;font size="-1"&gt;<br>&nbsp;&nbsp;下面有错误发生，请将错误报告到:liuypo@sei.buaa.edu.cn<br>&lt;/font&gt;<br>&lt;%&nbsp;&nbsp;//以下是异常错误轨迹的捕获<br>&nbsp;&nbsp;&nbsp;&nbsp;exception.printStackTrace();<br>&nbsp;&nbsp;&nbsp;&nbsp;StringWriter sout = new StringWriter();<br>&nbsp;&nbsp;&nbsp;&nbsp;PrintWriter pout = new PrintWriter(sout);<br>&nbsp;&nbsp;&nbsp;&nbsp;exception.printStackTrace(pout);<br>%&gt;<br>&lt;pre&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;%--显示异常的相关信息--%&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;%= sout.toString() %&gt;<br>&lt;/pre&gt;<br>&lt;/body&gt;<br>&lt;/html&gt;<br></div>
<img src ="http://www.cnitblog.com/gavinkin555/aggbug/32865.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/gavinkin555/" target="_blank">gavinkin555</a> 2007-09-03 15:09 <a href="http://www.cnitblog.com/gavinkin555/articles/32865.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IO,Zip package</title><link>http://www.cnitblog.com/gavinkin555/articles/32864.html</link><dc:creator>gavinkin555</dc:creator><author>gavinkin555</author><pubDate>Mon, 03 Sep 2007 07:08:00 GMT</pubDate><guid>http://www.cnitblog.com/gavinkin555/articles/32864.html</guid><wfw:comment>http://www.cnitblog.com/gavinkin555/comments/32864.html</wfw:comment><comments>http://www.cnitblog.com/gavinkin555/articles/32864.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/gavinkin555/comments/commentRss/32864.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/gavinkin555/services/trackbacks/32864.html</trackback:ping><description><![CDATA[<p>package logic;</p>
<p>import java.io.*;<br>import java.util.zip.*;</p>
<p>public class javaIOTest {</p>
<p>&nbsp;static final int BUFFER = 2048;</p>
<p>&nbsp;public static void main(String [] args) throws IOException<br>&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp; //格式化输入输出<br>&nbsp;&nbsp;/*<br>&nbsp;&nbsp; * 为了加强IO操作的性能，这里使用BufferedOutputStream/BufferedInputStream来进行缓冲，<br>&nbsp;&nbsp; * 其中必须有close()方法(当然，调用flush()方法也行)，否则缓冲区内容不能刷新清空<br>&nbsp;&nbsp; */<br>&nbsp;&nbsp;System.out.println("------------------------DataOutputStream,DataInputStream,FileOutputStream,FileInputStream----------------------------------");<br>&nbsp;&nbsp;&nbsp;&nbsp; DataOutputStream d = new DataOutputStream(new BufferedOutputStream(new FileOutputStream("a.txt")));<br>&nbsp;&nbsp;&nbsp;&nbsp; d.writeDouble(3.414);<br>&nbsp;&nbsp;&nbsp;&nbsp; d.writeBoolean(false);<br>&nbsp;&nbsp;&nbsp;&nbsp; d.writeByte('1');<br>&nbsp;&nbsp;&nbsp;&nbsp; d.writeFloat((float) 2.22323);<br>&nbsp;&nbsp;&nbsp;&nbsp; d.writeUTF("That was PI");<br>&nbsp;&nbsp;&nbsp;&nbsp; d.close();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; DataInputStream d2 = new DataInputStream (new BufferedInputStream(new FileInputStream("a.txt")));<br>&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(d2.readDouble());<br>&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(d2.readBoolean());<br>&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(d2.readByte());<br>&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(d2.readFloat());<br>&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(d2.readUTF());<br>&nbsp;&nbsp;&nbsp;&nbsp; /*<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * PrintStream是字节流，它有处理raw byte的方法<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * PrintWriter是字符流，它没有处理raw byte的方法<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("------------------------printStream----------------------------------");<br>&nbsp;&nbsp;&nbsp;&nbsp; PrintStream printStream = new PrintStream(new FileOutputStream(new File("pi.txt")));<br>&nbsp;&nbsp;&nbsp;&nbsp; printStream.print("PI = ");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; printStream.println(Math.PI);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; printStream.close();<br>&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("------------------------PrintWriter----------------------------------");<br>&nbsp;&nbsp;&nbsp;&nbsp; PrintWriter printWriter=null;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //初始化对象<br>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; printWriter=new PrintWriter(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new FileOutputStream("m.txt"));<br>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; printWriter.println("字符类型");//添加内容<br>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; printWriter.println(1.22);<br>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; printWriter.print("PI = ");<br>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; printWriter.println(Math.PI);<br>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; printWriter.flush();//刷新内存<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }catch(Exception e){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();//用trycatch捕捉异常如有则输出产生异常错误所作<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(printWriter!=null)<br>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; try{<br>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; printWriter.close();<br>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }catch(Exception e){}//判断对象不为空关闭<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; /*<br>&nbsp;&nbsp;&nbsp;&nbsp; * InputStreamReader 是字节流通向字符流的桥梁<br>&nbsp;&nbsp;&nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("------------------------InputStreamReader----------------------------------");<br>&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("Pls input :");<br>&nbsp;&nbsp;&nbsp;&nbsp; InputStreamReader isr = new InputStreamReader(System.in);<br>&nbsp;&nbsp;&nbsp;&nbsp; BufferedReader br = new BufferedReader(isr);<br>&nbsp;&nbsp;&nbsp; try<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String inputLine = br.readLine();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(inputLine);<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; catch(IOException ioe)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("Error: "+ioe);<br>&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("------------------------InputStreamReader,OutputStreamWriter----------------------------------"); <br>&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("按回车后再按Ctrl+z结束输入，可输入中文");<br>&nbsp;&nbsp;&nbsp; try<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp; InputStreamReader isr1 = new InputStreamReader (new FileInputStream (FileDescriptor.in));<br>&nbsp;&nbsp;&nbsp;&nbsp; OutputStreamWriter osw = new OutputStreamWriter (new FileOutputStream ("output.log"));<br>&nbsp;&nbsp;&nbsp;&nbsp; int is;<br>&nbsp;&nbsp;&nbsp;&nbsp; while ((is=isr1.read()) != -1)osw.write(is);<br>&nbsp;&nbsp;&nbsp;&nbsp; isr1.close();<br>&nbsp;&nbsp;&nbsp;&nbsp; osw.close();<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; catch(FileNotFoundException e)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(e);<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; catch(IOException e)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(e);<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; catch(Exception e)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(e);<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; System.out.println("------------------------StreamTokenizer----------------------------------");<br>&nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileReader fr = new FileReader("simple.txt");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StreamTokenizer st = new StreamTokenizer(fr);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; st.ordinaryChar('/');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (st.nextToken() != StreamTokenizer.TT_EOF) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (st.ttype == StreamTokenizer.TT_NUMBER) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("數字:" + Double.toString(st.nval));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if (st.ttype == StreamTokenizer.TT_WORD) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("字串:" + st.sval);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("其他:" + (char) st.ttype);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fr.close();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (Exception e) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("發生了" + e + "例外");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("------------------------StringReader----------------------------------");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(getUnicodeFromChar('我')); //将字符转换成unicode编码，测试&#8220;我&#8221;&lt;-&gt;25105<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("------------------------StringWriter----------------------------------");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(getCharFromUnicode(25105)); //将unicode编码转换成字符，测试25105&lt;-&gt;&#8220;我&#8221;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("------------------------zip----------------------------------");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BufferedInputStream origin = null;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileOutputStream dest = new <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileOutputStream("myfigs.zip");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ZipOutputStream out = new ZipOutputStream(new <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BufferedOutputStream(dest));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //out.setMethod(ZipOutputStream.DEFLATED);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte data[] = new byte[BUFFER];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // get a list of files from current directory<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File f = new File(".");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String files[] = f.list();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i=0; i &lt; files.length; i++) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("Adding: "+files[i]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("aaa" + files.length);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileInputStream fi = new <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileInputStream(files[i]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; origin = new <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BufferedInputStream(fi, BUFFER);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ZipEntry entry = new ZipEntry(files[i]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.putNextEntry(entry);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int count;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while((count = origin.read(data, 0, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BUFFER)) != -1) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.write(data, 0, count);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; origin.close();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.close();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch(Exception e) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;}</p>
<p>//&nbsp;将unicode编码转换成字符<br>&nbsp;&nbsp; public static char getCharFromUnicode(int unicode) {<br>&nbsp;&nbsp;&nbsp;&nbsp; StringWriter sw = new StringWriter();<br>&nbsp;&nbsp;&nbsp;&nbsp; sw.write(unicode);<br>&nbsp;&nbsp;&nbsp;&nbsp; return sw.getBuffer().charAt(0);<br>&nbsp;&nbsp; }</p>
<p>//&nbsp;将字符转换成unicode编码<br>&nbsp;&nbsp; public static int getUnicodeFromChar(char ch) {<br>&nbsp;&nbsp;&nbsp;&nbsp; StringReader sr = new StringReader(new String(new char[] {ch}));<br>&nbsp;&nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return sr.read();<br>&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp; catch (Exception ex) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(ex.toString());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return -1;<br>&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp; }&nbsp;</p>
<p>}</p>
<img src ="http://www.cnitblog.com/gavinkin555/aggbug/32864.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/gavinkin555/" target="_blank">gavinkin555</a> 2007-09-03 15:08 <a href="http://www.cnitblog.com/gavinkin555/articles/32864.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ServletContext and HttpSession</title><link>http://www.cnitblog.com/gavinkin555/articles/32861.html</link><dc:creator>gavinkin555</dc:creator><author>gavinkin555</author><pubDate>Mon, 03 Sep 2007 07:07:00 GMT</pubDate><guid>http://www.cnitblog.com/gavinkin555/articles/32861.html</guid><wfw:comment>http://www.cnitblog.com/gavinkin555/comments/32861.html</wfw:comment><comments>http://www.cnitblog.com/gavinkin555/articles/32861.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/gavinkin555/comments/commentRss/32861.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/gavinkin555/services/trackbacks/32861.html</trackback:ping><description><![CDATA[<div class="g_t_left c07 content" id=blogtext__fks_OmENfOG-1DN5rBY8A2NwZoV11Df-zBV3>
<p>package bean;</p>
<p>import javax.servlet.*;<br>import javax.servlet.http.*;</p>
<p>import java.io.*;<br>import java.util.*; </p>
<p>public class CounterServlet extends HttpServlet {<br>&nbsp;<br>&nbsp;public static final String CONTENT_TYPE="text/html;charset=GB2312"; </p>
<p>&nbsp;/**<br>&nbsp; * Constructor of the object.<br>&nbsp; */<br>&nbsp;public CounterServlet() {<br>&nbsp;&nbsp;super();<br>&nbsp;}</p>
<p>&nbsp;/**<br>&nbsp; * Destruction of the servlet. &lt;br&gt;<br>&nbsp; */<br>&nbsp;public void destroy() {<br>&nbsp;&nbsp;super.destroy(); // Just puts "destroy" string in log<br>&nbsp;&nbsp;// Put your code here<br>&nbsp;}</p>
<p>&nbsp;/**<br>&nbsp; * The doGet method of the servlet. &lt;br&gt;<br>&nbsp; *<br>&nbsp; * This method is called when a form has its tag value method equals to get.<br>&nbsp; * <br>&nbsp; * @param request the request send by the client to the server<br>&nbsp; * @param response the response send by the server to the client<br>&nbsp; * @throws ServletException if an error occurred<br>&nbsp; * @throws IOException if an error occurred<br>&nbsp; */<br>&nbsp;public void doGet(HttpServletRequest request, HttpServletResponse response)<br>&nbsp;&nbsp;&nbsp;throws ServletException, IOException {</p>
<p>&nbsp;&nbsp;doPost(request,response);</p>
<p>&nbsp;}</p>
<p>&nbsp;/**<br>&nbsp; * The doPost method of the servlet. &lt;br&gt;<br>&nbsp; *<br>&nbsp; * This method is called when a form has its tag value method equals to post.<br>&nbsp; * <br>&nbsp; * @param request the request send by the client to the server<br>&nbsp; * @param response the response send by the server to the client<br>&nbsp; * @throws ServletException if an error occurred<br>&nbsp; * @throws IOException if an error occurred<br>&nbsp; */<br>&nbsp;public void doPost(HttpServletRequest request, HttpServletResponse response)<br>&nbsp;&nbsp;&nbsp;throws ServletException, IOException {</p>
<p>&nbsp;&nbsp; ServletContext context=getServletContext();&nbsp;<br>&nbsp;&nbsp; <font color=#ff0000>HttpSession&nbsp;&nbsp; session=request.getSession(true);&nbsp;&nbsp; <br></font>&nbsp;&nbsp; Integer count=(Integer)context.getAttribute("count");<br>&nbsp;&nbsp; Integer count1 = (Integer)session.getAttribute("count1");<br>&nbsp;&nbsp; if(count==null){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; count=new Integer(0);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; context.setAttribute("count",new Integer(0));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp; if(count1== null)<br>&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; count1=new Integer(0);<br>&nbsp;&nbsp;&nbsp; session.setAttribute("count1", new Integer(0));<br>&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; response.setContentType(CONTENT_TYPE);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; PrintWriter out=response.getWriter();<br>&nbsp;&nbsp;&nbsp;&nbsp; out.println("&lt;HTML&gt;");<br>&nbsp;&nbsp;&nbsp;&nbsp; out.println("&lt;HEAD&gt;&lt;TITLE&gt;count click times&lt;/TITLE&gt;&lt;/HEAD&gt;");<br>&nbsp;&nbsp;&nbsp;&nbsp; out.println("&lt;BODY&gt;");<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; out.println("&lt;P&gt;Use ServletContext. now click times ："+count+"&lt;/P&gt;");&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; out.println("&lt;P&gt;Use HttpSession.&nbsp;&nbsp;&nbsp; now click times ："+ count1+"&lt;/P&gt;");&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; out.println("&lt;/BODY&gt;&lt;/HTML&gt;"); <br>&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; count=new Integer(count.intValue()+1);&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; count1 = new Integer(count1.intValue()+1);<br>&nbsp;&nbsp;&nbsp;&nbsp; context.setAttribute("count",count);<br>&nbsp;&nbsp;&nbsp;&nbsp; session.setAttribute("count1", count1);<br>&nbsp;&nbsp;<br>&nbsp;}</p>
<p>&nbsp;/**<br>&nbsp; * Initialization of the servlet. &lt;br&gt;<br>&nbsp; *<br>&nbsp; * @throws ServletException if an error occure<br>&nbsp; */<br>&nbsp;public void init(ServletConfig config) throws ServletException {<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;super.init(config);</p>
<p>&nbsp;&nbsp;// Put your code here<br>&nbsp;}</p>
<p>}<br></p>
</div>
<img src ="http://www.cnitblog.com/gavinkin555/aggbug/32861.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/gavinkin555/" target="_blank">gavinkin555</a> 2007-09-03 15:07 <a href="http://www.cnitblog.com/gavinkin555/articles/32861.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>util, text package</title><link>http://www.cnitblog.com/gavinkin555/articles/32862.html</link><dc:creator>gavinkin555</dc:creator><author>gavinkin555</author><pubDate>Mon, 03 Sep 2007 07:07:00 GMT</pubDate><guid>http://www.cnitblog.com/gavinkin555/articles/32862.html</guid><wfw:comment>http://www.cnitblog.com/gavinkin555/comments/32862.html</wfw:comment><comments>http://www.cnitblog.com/gavinkin555/articles/32862.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/gavinkin555/comments/commentRss/32862.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/gavinkin555/services/trackbacks/32862.html</trackback:ping><description><![CDATA[<div class="g_t_left c07 content" id=blogtext__fks_KrYOtfCRo33ltDUF1xjIIoRhyYa_dNtF>
<p>package com;<br>import java.util.*;<br>import java.text.*;</p>
<p><br>public class JavaTraining {<br>&nbsp;<br>&nbsp;public static void main(String[] arguments)<br>&nbsp;{<br>&nbsp;&nbsp;System.out.println("-------------java.util.*----------------");<br>&nbsp;&nbsp;System.out.println("-------------Bitset----------------");<br>&nbsp;&nbsp;luckynumber call = new luckynumber();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (arguments.length &gt; 0) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int whichDay = Integer.parseInt(arguments[0]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (call.isHoliday(whichDay)) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("The number " + whichDay +<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " is my lucky number.");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("Day number " + whichDay +<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " is not my lucky number.");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (NumberFormatException nfe) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("Error: " + nfe.getMessage());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;System.out.println("-------------Array----------------");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double array[] = new double[10];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int n = 0; n &lt; 10; n++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; array[n] = .94F * n;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int j = 0; j &lt; array.length; j++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;System.out.println(array[j] + " ");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;Fruit apple = new Fruit("apple", 5, .81F);<br>&nbsp;&nbsp;Fruit orange = new Fruit("orange", 4, .93F);<br>&nbsp;&nbsp;Fruit banana = new Fruit("banana", 3, .66F);<br>&nbsp;&nbsp;System.out.println("-------------Vector----------------");<br>&nbsp;&nbsp;Vector cart = new Vector();<br>&nbsp;&nbsp;cart.add(apple);<br>&nbsp;&nbsp;cart.add(orange);<br>&nbsp;&nbsp;cart.add(banana);<br>&nbsp;&nbsp;Iterator it = cart.iterator();<br>&nbsp;&nbsp;while(it.hasNext())<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;Fruit fr = (Fruit)it.next();<br>&nbsp;&nbsp;&nbsp;System.out.println(fr.name + "," + (fr.quantity*fr.price));<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;System.out.println("-------------ArrayList----------------");<br>&nbsp;&nbsp;ArrayList myAL = new ArrayList(); <br>&nbsp;&nbsp;myAL.add(apple);<br>&nbsp;&nbsp;myAL.add(orange);<br>&nbsp;&nbsp;myAL.add(banana);<br>&nbsp;&nbsp;Iterator IT = cart.iterator();<br>&nbsp;&nbsp;while(IT.hasNext())<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;Fruit fk = (Fruit)IT.next();<br>&nbsp;&nbsp;&nbsp;System.out.println(fk.name + "," +(fk.quantity*fk.price));<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;System.out.println("-------------Hashtable----------------");<br>&nbsp;&nbsp;Hashtable quality = new Hashtable();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Float price0 = new Float(5.00F);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; quality.put("pristine mint", price0);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Float price1 = new Float(3.00F);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; quality.put("mint", price1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Float price2 = new Float(2.00F);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; quality.put("near mint", price2);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Float price3 = new Float(1.50F);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; quality.put("very fine", price3);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Float price4 = new Float(1.00F);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; quality.put("fine", price4);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Float price5 = new Float(0.50F);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; quality.put("good", price5);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Float price6 = new Float(0.25F);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; quality.put("poor", price6);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Float price7 = new Float(0.10F);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; quality.put("coverless", price7);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // set up collection<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Comic[] comix = new Comic[5];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; comix[0] = new Comic("Amazing Spider-Man", "1A", "very fine",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5400.00F);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; comix[0].setPrice( (Float)quality.get(comix[0].condition) );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; comix[1] = new Comic("Incredible Hulk", "181", "near mint",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 770.00F);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; comix[1].setPrice( (Float)quality.get(comix[1].condition) );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; comix[2] = new Comic("Cerebus", "1A", "good", 260.00F);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; comix[2].setPrice( (Float)quality.get(comix[2].condition) );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; comix[3] = new Comic("Prez", "1", "pristine mint", 30.00F);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; comix[3].setPrice( (Float)quality.get(comix[3].condition) );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; comix[4] = new Comic("Night Nurse", "1", "coverless", 22.00F);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; comix[4].setPrice( (Float)quality.get(comix[4].condition) );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; comix.length; i++) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("Title: " + comix[i].title);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("Issue: " + comix[i].issueNumber);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("Condition: " + comix[i].condition);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("Price: $" + comix[i].price + "\n");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HashMap<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("-------------HashMap----------------");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Map m = new HashMap();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m.put("Jeddy Hawk", new Double(20.31));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m.put("John Doe", new Double(3654.23));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m.put("Martin Luther King", new Double(123.43));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m.put("Jessica York", new Double(1243.32));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m.put("Naron Mask", new Double(-99.32));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set s = m.entrySet(); //use public&nbsp;&nbsp; Set&nbsp;&nbsp; entrySet() function<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Iterator iter = s.iterator();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while(iter.hasNext()){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Map.Entry me = (Map.Entry)iter.next();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.print(me.getKey() + " : ");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(me.getValue());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double balance = ((Double)m.get("John Doe")).doubleValue();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object ob = m.put("John Doe", new Double(balance + 1000));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //put() will return the original object as follows<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(ob);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("John Doe's new balance is : " + m.get("John Doe"));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("-------------StringTokenizer----------------");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringTokenizerDemo demo = new StringTokenizerDemo();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; demo.StringTokenizerDemo1(); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; demo.StringTokenizerDemo2(); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; demo.StringTokenizerDemo3(); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("-------------Calendar----------------");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Calendar cal = Calendar.getInstance();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cal.set(2007,6,12);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i = 0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int j=0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int k=1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int lastd =0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int row =0 ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int w = 0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int y = cal.get(Calendar.YEAR);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int M = cal.get(Calendar.MONTH);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int d = cal.get(Calendar.DATE);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // cal.set(y,m,d);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; w = cal.get(Calendar.DAY_OF_WEEK)-1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cal.set(y,M,1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lastd = cal.getActualMaximum(Calendar.DATE);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(y+"年"+(M+1)+"月最後一天"+lastd);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cal.set(y,M,d);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int lastd1 = cal.getActualMaximum(Calendar.DATE);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(y+"年"+(M+1)+"月"+d+"號");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int a=0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if((lastd+w)%7 == 0){ row = (lastd+w)/7; }else{row = (lastd+w)/7+1;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println((M+1)+"月有"+row+"周");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Calendar[][] date = new Calendar[row][7];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //set<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(w==0){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int c=0;c&lt;row;c++){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int g=0;g&lt;7;g++){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(k&lt;=lastd) {date[c][g] = Calendar.getInstance();date[c][g].set(y,M,k++);}else{date[c][g] = Calendar.getInstance();date[c][g].set(y,M+1,g);} ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(a=0 ;a&lt;w;a++){//第一列空格<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; date[0][a] = Calendar.getInstance();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; date[0][a].set(y,M-1,lastd1-w+1);//lastd1-w ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lastd1++;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int b=w;b&lt;7;++b){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; date[0][b] = Calendar.getInstance();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; date[0][b].set(y,M,k++);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int f =0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int c=1;c&lt;row;c++){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int g=0;g&lt;7;g++){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(k&lt;=lastd) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; date[c][g] = Calendar.getInstance();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; date[c][g].set(y,M,k++);f=g;}else{date[c][g] = Calendar.getInstance();date[c][g].set(y,M+1,g-f);} ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(" ");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0 ;i&lt;row;i++){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(j=0;j&lt;7;j++){</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.print(" "+(date [i][j].get(Calendar.MONTH)+1)+"/"+date [i][j].get(Calendar.DATE)+" ");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("-------------Random----------------");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int max = 1000; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int min = 500; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int num = (int)((max-min)*Math.random()+min); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("The number is from 500 to 1000 : " + num);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Random rand = new Random( ); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int[ ] trio = new int[ 3 ]; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println( "Three random integers in the range of [67, 295):" ); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for( int p = 0; p &lt; 3; ++p ) { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; trio[ p ] = rand.nextInt( 295 - 67 ) + 67; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println( trio[ p ] ); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Arrays.sort( trio ); </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println( "\nMedian:\n" + trio[ 1 ] ); </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("-------------java.text.*----------------");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * Format 是 DateFormat, MessageFormat, NumberFormat 的父类<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("-------------DateFormat----------------");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Date dd = new Date();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String ss;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /** Date类的格式: Sat Apr 16 13:17:29 CST 2005 */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(dd);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /** getDateInstance() */ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /** 输出格式: 2005-4-16 */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ss = DateFormat.getDateInstance().format(dd);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(ss);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /** 输出格式: 2005-4-16 */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ss = DateFormat.getDateInstance(DateFormat.DEFAULT).format(dd);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(ss);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /** 输出格式: 2005年4月16日 星期六 */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ss = DateFormat.getDateInstance(DateFormat.FULL).format(dd);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(ss);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /** 输出格式: 2005-4-16 */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ss = DateFormat.getDateInstance(DateFormat.MEDIUM).format(dd);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(ss);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /** 输出格式: 05-4-16 */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ss = DateFormat.getDateInstance(DateFormat.SHORT).format(dd);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(ss);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("-------------NumberFormat----------------");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int amount = 54321;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NumberFormat myformat = NumberFormat.getInstance();//system format<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(myformat.format(amount));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NumberFormat usformat = NumberFormat.getIntegerInstance(Locale.US);//usa format<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(usformat.format(amount));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NumberFormat germanformat = NumberFormat.getInstance(Locale.CHINA);//china&nbsp; format<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(germanformat.format(amount));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("-------------MessageFormat----------------");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * MessageFormat类 用来辅助信息的格式化，MessageFormat接受一个字符串模式指定<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * 对于文字信息中可能变动的部分，可以使用参数索引先占住文字位置，参数索引是{0}~{9}的非负整数，<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * 之后在使用MessageFormat的静态方法format()时，可以提供真正的参数来填充参数索引处的信息.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MessageFormat format = new MessageFormat("欢迎各位{0}来参加{1}，{2}欢迎您");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String result = format.format(new Object[]{"朋友","奥运会","北京"});<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(result);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("-------------SimpleDateFormat----------------");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * SimpleDateFormat 允许格式化 (date -&gt; text)、语法分析 (text -&gt; date)和标准化。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * SimpleDateFormat 允许以为日期-时间格式化选择任何用户指定的方式启动。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * 但是，希望用 DateFormat 中的 getTimeInstance、 getDateInstance 或 getDateTimeInstance<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp; 创建一个日期-时间格式化程序。 每个类方法返回一个以缺省格式化方式初始化的日期／时间格式化程序。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp; 可以根据需要用 applyPattern 方法修改格式化方式。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SimpleDateFormat myFmt1=new SimpleDateFormat("yy/MM/dd HH:mm"); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SimpleDateFormat myFmt2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//等价于now.toLocaleString()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SimpleDateFormat myFmt3=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SimpleDateFormat myFmt4=new SimpleDateFormat(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "一年中的第 D 天 一年中第w个星期 一月中第W个星期 在一天中k时 z时区");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Date now=new Date();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(myFmt.format(now));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(myFmt1.format(now));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(myFmt2.format(now));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(myFmt3.format(now));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(myFmt4.format(now));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(now.toGMTString());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(now.toLocaleString());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(now.toString());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("-------------DecimalFormat----------------");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp; DecimalFormat是NumberFormat的一个子类,其实例被指定为特定的地区。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double&nbsp;&nbsp; value=1234567.893d;&nbsp;&nbsp; // use double<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; long number = 32322355744L;&nbsp;&nbsp;&nbsp; //use long<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DecimalFormat&nbsp;&nbsp; df&nbsp;&nbsp; =&nbsp;&nbsp; new&nbsp;&nbsp; DecimalFormat("###,###.##");&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(df.format(value)); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(df.format(number));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String&nbsp;&nbsp; data="1,234,567.89";&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DecimalFormat form = new&nbsp;&nbsp; DecimalFormat("#,##0.0");&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Number&nbsp;&nbsp; no = form.parse(data);&nbsp;&nbsp;&nbsp; //use number<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("result&nbsp;&nbsp; is&nbsp;&nbsp; "+no.doubleValue());&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch&nbsp;&nbsp; (ParseException&nbsp;&nbsp; ex)&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ex.printStackTrace();&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("-------------java.lang.*----------------");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("-------------byte,short,math----------------");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte a1 = 10;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte b1 = 20;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte c1 = (byte)(a1 + b1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("this is byte :" + c1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; short a3 = 10;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; short b3 = 20;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; short c3 = (short)(a3 + b3);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("this is short :" + c3);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int a4=10;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int b4=20;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int c4=Math.max(a4,b4);&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("this is math :" + c4);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("-------------Runtime----------------");<br>&nbsp;&nbsp; Runtime rt = Runtime.getRuntime();<br>&nbsp;&nbsp; //Returns the total amount of memory in the Java virtual machine<br>&nbsp;&nbsp; System.out.println("total memory : "+rt.totalMemory());<br>&nbsp;&nbsp; //Returns the maximum amount of memory that the Java virtual machine will attempt to use.<br>&nbsp;&nbsp; System.out.println("used by jvm : "+rt.maxMemory());<br>&nbsp;&nbsp; // Returns the amount of free memory in the Java Virtual Machine.<br>&nbsp;&nbsp; System.out.println("free in jvm : "+rt.freeMemory());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("-------------String and Stringbuffer----------------");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String tempstr = "abcdefghijklmnopqrstuvwxyz";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int times = 5000;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; long lstart1=System.currentTimeMillis();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String str ="";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i0=0;i0&lt;times;i0++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str+=tempstr;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; long lend1=System.currentTimeMillis();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; long time = (lend1-lstart1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("String have " + time + "times");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String tempstr1 = "abcdefghijklmnopqrstuvwxyz";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int times1 = 5000;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; long lstart2=System.currentTimeMillis();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringBuffer sb =new&nbsp; StringBuffer();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i1=0;i1&lt;times1;i1++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(tempstr1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; long lend2=System.currentTimeMillis();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; long time2 = (lend2-lstart2);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("StringBuffer have " + time2 + "times");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("StringBuffer 的速度几乎是String 上万倍.");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("-------------Thread----------------");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThreadA t1&nbsp; = new ThreadA("first thread",50);<br>&nbsp;&nbsp;ThreadA t2 = new ThreadA("second thread ",100);<br>&nbsp;&nbsp;&nbsp;&nbsp; t1.start();<br>&nbsp;&nbsp;t2.start();<br>&nbsp;&nbsp;System.out.println("-------------Runnable----------------");<br>&nbsp;&nbsp;RunnableA r1&nbsp; = new RunnableA("first Runnable",50);<br>&nbsp;&nbsp;RunnableA r2 = new RunnableA("second Runnable ",100);<br>&nbsp;&nbsp;Thread t11 = new Thread(r1);<br>&nbsp;&nbsp;Thread t22 = new Thread(r2);<br>&nbsp;&nbsp;t11.start();<br>&nbsp;&nbsp;t22.start();<br>&nbsp;&nbsp;<br>&nbsp;}<br>}</p>
<p>class Fruit<br>{<br>&nbsp;String name;&nbsp; //use string<br>&nbsp;int quantity; //use int<br>&nbsp;float price;&nbsp; //use float<br>&nbsp;Fruit (String inName, int inQuantity, float inPrice)<br>&nbsp;{<br>&nbsp;&nbsp;name = inName;<br>&nbsp;&nbsp;quantity = inQuantity;<br>&nbsp;&nbsp;price = inPrice;<br>&nbsp;}<br>}<br>class Comic {<br>&nbsp;&nbsp;&nbsp; String title;<br>&nbsp;&nbsp;&nbsp; String issueNumber;<br>&nbsp;&nbsp;&nbsp; String condition;<br>&nbsp;&nbsp;&nbsp; float basePrice;<br>&nbsp;&nbsp;&nbsp; float price;</p>
<p>&nbsp;&nbsp;&nbsp; Comic(String inTitle, String inIssueNumber, String inCondition,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; float inBasePrice) {<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; title = inTitle;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; issueNumber = inIssueNumber;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; condition = inCondition;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; basePrice = inBasePrice;<br>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; void setPrice(Float factor) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; float multiplier = factor.floatValue();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; price = basePrice * multiplier;<br>&nbsp;&nbsp;&nbsp; }<br>}<br>class StringTokenizerDemo {<br>&nbsp; <br>&nbsp;&nbsp;&nbsp; private final String source1 = "name|number,Intrenet ID;email.address";<br>&nbsp;&nbsp;&nbsp; private final String source3 = "This file \"Java Training.java\" is in" +<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " dir \"D:\" of&nbsp; \"JAVA\"";<br>&nbsp;&nbsp;&nbsp; private final String delim1 = ";,.|";&nbsp;&nbsp; // 包含分号、逗号、句点、竖址分隔符<br>&nbsp;&nbsp;&nbsp; private final String delim2 = " \"";&nbsp;&nbsp;&nbsp; // 包含空格、引号<br>&nbsp;&nbsp;&nbsp; private final String delim3 = "\"";&nbsp;&nbsp;&nbsp;&nbsp; // 仅包含引号--------------------------------------------------------------------------------<br>&nbsp;<br>&nbsp;&nbsp;&nbsp; private void printSeparater(String title) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("--------- " + title + " ---------");<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp;&nbsp; * 演示 StringTokenizer 最常用的用法，使用 StringTokenizer(String, String) <br>&nbsp;&nbsp;&nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp; public void StringTokenizerDemo1() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.printSeparater("StringTokenizerDemo1");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringTokenizer tokenizer; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tokenizer = new StringTokenizer(source1, delim1);<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (tokenizer.hasMoreTokens()) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(tokenizer.nextToken()); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp;&nbsp; * 演示 StringTokenizer 的 nextToken(String) 用法 <br>&nbsp;&nbsp;&nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp; public void StringTokenizerDemo2() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.printSeparater("StringTokenizerDemo2");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringTokenizer tokenizer = new StringTokenizer(source1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (tokenizer.hasMoreTokens()) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(tokenizer.nextToken(delim1)); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp;&nbsp; * 一个较综合的示例，它拆分一句话，将每个单词拆分出来，其中， <br>&nbsp;&nbsp;&nbsp;&nbsp; * 被双引号包含的若干单词被处理为一个单词输出。 <br>&nbsp;&nbsp;&nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp; public void StringTokenizerDemo3() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.printSeparater("StringTokenizerDemo3");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String delim = delim2; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String word; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; boolean begin = false;&nbsp;&nbsp;&nbsp; // use boolean<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringTokenizer tokenizer = new StringTokenizer(source3, delim, true);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (tokenizer.hasMoreTokens()) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; word = tokenizer.nextToken(delim); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (word.equals("\"")) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (begin) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delim = delim2; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin = false;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delim = delim3; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin = true;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else if (!word.equals(" ")) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(word); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp; }<br>}<br>class luckynumber {<br>&nbsp;&nbsp;&nbsp; BitSet sked;</p>
<p>&nbsp;&nbsp;&nbsp; public luckynumber() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sked = new BitSet(1000);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int[] luckynumber = { 1, 6, 8, 58, 777, 888, 999};<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; luckynumber.length; i++) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; addLuckynumber(luckynumber[i]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; public void addLuckynumber(int numberToAdd) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sked.set(numberToAdd);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; public boolean isHoliday(int numberToCheck) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; boolean result = sked.get(numberToCheck);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return result;<br>&nbsp;&nbsp;&nbsp; }<br>}<br>class ThreadA extends Thread {<br>&nbsp;&nbsp;&nbsp; int delay;<br>&nbsp;&nbsp;&nbsp; ThreadA(String s, int d) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; super(s);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delay = d;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; public void run() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i=0 ; i &lt; 5 ; i++) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep(delay);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(getName()<br>&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; +"第"+i+"圈");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (InterruptedException e) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.err.println("异常 : "+e);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;<br>class RunnableA implements Runnable {<br>&nbsp;&nbsp;&nbsp; String name;<br>&nbsp;&nbsp;&nbsp; int delay;<br>&nbsp;&nbsp;&nbsp; RunnableA(String s, int d) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name = s;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delay = d;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; public void run() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i=0 ; i &lt; 5 ; i++) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thread.sleep(delay);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(name<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;+"第"+i+"圈");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (InterruptedException e) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.err.println("异常 : "+e);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br></p>
</div>
<img src ="http://www.cnitblog.com/gavinkin555/aggbug/32862.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/gavinkin555/" target="_blank">gavinkin555</a> 2007-09-03 15:07 <a href="http://www.cnitblog.com/gavinkin555/articles/32862.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>实例详解JSP内置对象</title><link>http://www.cnitblog.com/gavinkin555/articles/32859.html</link><dc:creator>gavinkin555</dc:creator><author>gavinkin555</author><pubDate>Mon, 03 Sep 2007 07:06:00 GMT</pubDate><guid>http://www.cnitblog.com/gavinkin555/articles/32859.html</guid><wfw:comment>http://www.cnitblog.com/gavinkin555/comments/32859.html</wfw:comment><comments>http://www.cnitblog.com/gavinkin555/articles/32859.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/gavinkin555/comments/commentRss/32859.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/gavinkin555/services/trackbacks/32859.html</trackback:ping><description><![CDATA[<div class="g_t_left c07 content" id=blogtext__fks__99FfHPkTGA4ab10ST4XiwzsDU32_oec>
<p>jsp九种内置对象：request, reponse, out, session, application, config, pagecontext, page, exception. </p>
<p><strong>一.request对象：</strong>该对象封装了用户提交的信息，通过调用该对象相应的方法可以获取封装的信息，即使用该对象可以获取用户提交信息。</p>
<p><font color=#dc143c>1.Request对象可以使用getParameter(string s)方法获取该表单通过text提交的信息。</font>如：Request.getParameter(&#8220;boy&#8221;)</p>
<p>例：</p>
<p>request1.jsp：</p>
<p>&nbsp;</p>
<p style="TEXT-INDENT: 2em">&lt;%@ page contentType="text/html;charset=GB2312" %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BODY bgcolor=green&gt;&lt;FONT size=1&gt;</p>
<p style="TEXT-INDENT: 2em">　 &lt;FORM action="tree.jsp" method=post name=form&gt;</p>
<p style="TEXT-INDENT: 2em">　　　 &lt;INPUT type="text" name="boy"&gt; </p>
<p style="TEXT-INDENT: 2em">　　　 &lt;INPUT TYPE="submit" value="Enter" name="submit"&gt;</p>
<p style="TEXT-INDENT: 2em">　 &lt;/FORM&gt; </p>
<p style="TEXT-INDENT: 2em">&lt;/FONT&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/BODY&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt; </p>
<p style="TEXT-INDENT: 2em">&nbsp; </p>
<p style="TEXT-INDENT: 2em">&nbsp; </p>
<p style="TEXT-INDENT: 2em">tree.jsp： </p>
<p style="TEXT-INDENT: 2em">&lt;%@ page contentType="text/html;charset=GB2312" %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BODY bgcolor=green&gt;&lt;FONT size=1&gt;　 </p>
<p style="TEXT-INDENT: 2em">&lt;P&gt;获取文本框提交的信息：</p>
<p style="TEXT-INDENT: 2em">　 &lt;%String textContent=request.getParameter("boy");</p>
<p style="TEXT-INDENT: 2em">　 %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BR&gt;</p>
<p style="TEXT-INDENT: 2em">　 &lt;%=textContent%&gt; </p>
<p style="TEXT-INDENT: 2em">&lt;P&gt; 获取按钮的名字：</p>
<p style="TEXT-INDENT: 2em">　 &lt;%String buttonName=request.getParameter("submit");</p>
<p style="TEXT-INDENT: 2em">　 %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BR&gt;</p>
<p style="TEXT-INDENT: 2em">　 &lt;%=buttonName%&gt; </p>
<p style="TEXT-INDENT: 2em">&lt;/FONT&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/BODY&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt; </p>
<p style="TEXT-INDENT: 2em">&nbsp; </p>
<p style="TEXT-INDENT: 2em"><font color=#ff0000>使用request对象获取信息要格外小心，要避免使用空对象，否则会出现NullPointerException异常，所以我们可以作以下处理.</font> </p>
<p style="TEXT-INDENT: 2em">request3.jsp </p>
<p style="TEXT-INDENT: 2em">&lt;%@ page contentType="text/html;charset=GB2312" %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BODY bgcolor=cyan&gt;&lt;FONT size=5&gt;</p>
<p style="TEXT-INDENT: 2em">　 &lt;FORM　action="" method=post name=form&gt;</p>
<p style="TEXT-INDENT: 2em">　　　　 &lt;INPUT type="text" name="girl"&gt; </p>
<p style="TEXT-INDENT: 2em">　　　　 &lt;INPUT TYPE="submit" value="Enter" name="submit"&gt;</p>
<p style="TEXT-INDENT: 2em">　 &lt;/FORM&gt;　</p>
<p style="TEXT-INDENT: 2em">　 &lt;%String textContent=request.getParameter("girl");</p>
<p style="TEXT-INDENT: 2em">　　 double number=0,r=0;</p>
<p style="TEXT-INDENT: 2em">　　 if(textContent==null)</p>
<p style="TEXT-INDENT: 2em">　　　　{textContent="";</p>
<p style="TEXT-INDENT: 2em">　　　　}</p>
<p style="TEXT-INDENT: 2em">　　 try{ number=Double.parseDouble(textContent);</p>
<p style="TEXT-INDENT: 2em">　　　　　if(number&gt;=0)</p>
<p style="TEXT-INDENT: 2em">　　　　　　 {r=Math.sqrt(number) ;</p>
<p style="TEXT-INDENT: 2em">　　　　　　　out.print("&lt;BR&gt;"+String.valueOf(number)+"的平方根：");</p>
<p style="TEXT-INDENT: 2em">　　　　　　　out.print("&lt;BR&gt;"+String.valueOf(r));</p>
<p style="TEXT-INDENT: 2em">　　　　　　 }</p>
<p style="TEXT-INDENT: 2em">　　　　　else</p>
<p style="TEXT-INDENT: 2em">　　　　　　 {out.print("&lt;BR&gt;"+"请输入一个正数");</p>
<p style="TEXT-INDENT: 2em">　　　　　　 }</p>
<p style="TEXT-INDENT: 2em">　　　　}</p>
<p style="TEXT-INDENT: 2em">　　 catch(NumberFormatException e)</p>
<p style="TEXT-INDENT: 2em">　　　　{out.print("&lt;BR&gt;"+"请输入数字字符");</p>
<p style="TEXT-INDENT: 2em">　　　　}</p>
<p style="TEXT-INDENT: 2em">　　%&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/FONT&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/BODY&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt; </p>
<p style="TEXT-INDENT: 2em">&nbsp; </p>
<p style="TEXT-INDENT: 2em"><strong>2.处理汉字信息：</strong>当request对象获取客户提交的汉字字符时，会出现乱马问题，必须进行特殊处理。首先，将获取的字符串用ISO-8859-1进行编码，并将编码存放到一个字节数组中，然后再将这个属组转化为字符窜对象即刻。 </p>
<p>如:　 String textContent=request.getParameter("boy");</p>
<p>　　 byte　b[]=textContent.getBytes("ISO-8859-1");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; textContent=new String(b);</p>
<p>例：tree2.jsp</p>
<p style="TEXT-INDENT: 2em">&lt;%@ page contentType="text/html;charset=GB2312" %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;MHML&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BODY&gt;　 </p>
<p style="TEXT-INDENT: 2em">&lt;P&gt;获取文本框提交的信息：</p>
<p style="TEXT-INDENT: 2em">　 &lt;%String textContent=request.getParameter("boy");</p>
<p style="TEXT-INDENT: 2em">　　 byte　b[]=textContent.getBytes("ISO-8859-1");</p>
<p style="TEXT-INDENT: 2em">　　 textContent=new String(b);</p>
<p style="TEXT-INDENT: 2em">　 %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BR&gt;</p>
<p style="TEXT-INDENT: 2em">　 &lt;%=textContent%&gt; </p>
<p style="TEXT-INDENT: 2em">&lt;P&gt; 获取按钮的名字：</p>
<p style="TEXT-INDENT: 2em">　 &lt;%String buttonName=request.getParameter("submit");</p>
<p style="TEXT-INDENT: 2em">　　 byte　c[]=buttonName.getBytes("ISO-8859-1");</p>
<p style="TEXT-INDENT: 2em">　　 buttonName=new String(c);</p>
<p style="TEXT-INDENT: 2em">　 %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BR&gt;</p>
<p style="TEXT-INDENT: 2em">　 &lt;%=buttonName%&gt; </p>
<p style="TEXT-INDENT: 2em">&lt;/BODY&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt; </p>
<p style="TEXT-INDENT: 2em">&nbsp; </p>
<p style="TEXT-INDENT: 2em">3.常用方法举例： </p>
<p>getProtocol(),　getServletPath(), getContentLength(), getMethod(), getRemoteAddr(), getRemoteHost(), getServerName(), getParameterName()</p>
<p>例：</p>
<p style="TEXT-INDENT: 2em">&lt;%@ page contentType="text/html;charset=GB2312" %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;%@ page import="java.util.*" %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;MHML&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BODY bgcolor=cyan&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;Font size=5&gt;　 </p>
<p style="TEXT-INDENT: 2em">&lt;BR&gt;客户使用的协议是:</p>
<p style="TEXT-INDENT: 2em">　 &lt;% String protocol=request.getProtocol();</p>
<p style="TEXT-INDENT: 2em">　　　out.println(protocol);</p>
<p style="TEXT-INDENT: 2em">　 %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BR&gt;获取接受客户提交信息的页面：</p>
<p style="TEXT-INDENT: 2em">　 &lt;% String path=request.getServletPath();</p>
<p style="TEXT-INDENT: 2em">　　　out.println(path);</p>
<p style="TEXT-INDENT: 2em">　 %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BR&gt;接受客户提交信息的长度：</p>
<p style="TEXT-INDENT: 2em">　 &lt;% int length=request.getContentLength();</p>
<p style="TEXT-INDENT: 2em">　　　out.println(length);</p>
<p style="TEXT-INDENT: 2em">　 %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BR&gt;客户提交信息的方式：</p>
<p style="TEXT-INDENT: 2em">　 &lt;% String method=request.getMethod();</p>
<p style="TEXT-INDENT: 2em">　　　out.println(method);</p>
<p style="TEXT-INDENT: 2em">　 %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BR&gt;获取HTTP头文件中User-Agent的值：：</p>
<p style="TEXT-INDENT: 2em">　 &lt;% String header1=request.getHeader("User-Agent");</p>
<p style="TEXT-INDENT: 2em">　　　out.println(header1);</p>
<p style="TEXT-INDENT: 2em">　 %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BR&gt;获取HTTP头文件中accept的值：</p>
<p style="TEXT-INDENT: 2em">　 &lt;% String header2=request.getHeader("accept");</p>
<p style="TEXT-INDENT: 2em">　　　out.println(header2);</p>
<p style="TEXT-INDENT: 2em">　 %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BR&gt;获取HTTP头文件中Host的值：</p>
<p style="TEXT-INDENT: 2em">　 &lt;% String header3=request.getHeader("Host");</p>
<p style="TEXT-INDENT: 2em">　　　out.println(header3);</p>
<p style="TEXT-INDENT: 2em">　 %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BR&gt;获取HTTP头文件中accept-encoding的值：</p>
<p style="TEXT-INDENT: 2em">　 &lt;% String header4=request.getHeader("accept-encoding");</p>
<p style="TEXT-INDENT: 2em">　　　out.println(header4);</p>
<p style="TEXT-INDENT: 2em">　 %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BR&gt;获取客户的IP地址：</p>
<p style="TEXT-INDENT: 2em">　 &lt;% String　IP=request.getRemoteAddr();</p>
<p style="TEXT-INDENT: 2em">　　　out.println(IP);</p>
<p style="TEXT-INDENT: 2em">　 %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BR&gt;获取客户机的名称：</p>
<p style="TEXT-INDENT: 2em">　 &lt;% String clientName=request.getRemoteHost();</p>
<p style="TEXT-INDENT: 2em">　　　out.println(clientName);</p>
<p style="TEXT-INDENT: 2em">　 %&gt; </p>
<p style="TEXT-INDENT: 2em">&lt;BR&gt;获取服务器的名称：</p>
<p style="TEXT-INDENT: 2em">　 &lt;% String serverName=request.getServerName();</p>
<p style="TEXT-INDENT: 2em">　　　out.println(serverName);</p>
<p style="TEXT-INDENT: 2em">　 %&gt; </p>
<p style="TEXT-INDENT: 2em">&lt;BR&gt;获取服务器的端口号：</p>
<p style="TEXT-INDENT: 2em">　 &lt;% int serverPort=request.getServerPort();</p>
<p style="TEXT-INDENT: 2em">　　　out.println(serverPort);</p>
<p style="TEXT-INDENT: 2em">　 %&gt; </p>
<p style="TEXT-INDENT: 2em">&lt;BR&gt;获取客户端提交的所有参数的名字：</p>
<p style="TEXT-INDENT: 2em">　 &lt;% Enumeration enum=request.getParameterNames();</p>
<p style="TEXT-INDENT: 2em">　　　 while(enum.hasMoreElements())</p>
<p style="TEXT-INDENT: 2em">　　　　　　{String s=(String)enum.nextElement();</p>
<p style="TEXT-INDENT: 2em">　　　　　　 out.println(s);</p>
<p style="TEXT-INDENT: 2em">　　　　　　}　　　</p>
<p style="TEXT-INDENT: 2em">　　　%&gt; </p>
<p style="TEXT-INDENT: 2em">&lt;BR&gt;获取头名字的一个枚举：</p>
<p style="TEXT-INDENT: 2em">　 &lt;% Enumeration enum_headed=request.getHeaderNames();</p>
<p style="TEXT-INDENT: 2em">　　　while(enum_headed.hasMoreElements())</p>
<p style="TEXT-INDENT: 2em">　　　　　　{String s=(String)enum_headed.nextElement();</p>
<p style="TEXT-INDENT: 2em">　　　　　　 out.println(s);</p>
<p style="TEXT-INDENT: 2em">　　　　　　}　　　</p>
<p style="TEXT-INDENT: 2em">　 %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BR&gt;获取头文件中指定头名字的全部值的一个枚举：</p>
<p style="TEXT-INDENT: 2em">　 &lt;% Enumeration enum_headedValues=request.getHeaders("cookie");</p>
<p style="TEXT-INDENT: 2em">　　　while(enum_headedValues.hasMoreElements())</p>
<p style="TEXT-INDENT: 2em">　　　　　　{String s=(String)enum_headedValues.nextElement();</p>
<p style="TEXT-INDENT: 2em">　　　　　　 out.println(s);</p>
<p style="TEXT-INDENT: 2em">　　　　　　}　　　</p>
<p style="TEXT-INDENT: 2em">　 %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BR&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/Font&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/BODY&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt; </p>
<p style="TEXT-INDENT: 2em">&nbsp; </p>
<p style="TEXT-INDENT: 2em">　4．获取<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>表单提交的数据 </p>
<p style="TEXT-INDENT: 2em">单选框radio </p>
<p>　　例：radio.jsp：</p>
<p style="TEXT-INDENT: 2em">&lt;<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;%@ page contentType="text/html;charset=GB2312" %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BODY bgcolor=cyan&gt;&lt;Font size=1 &gt;</p>
<p style="TEXT-INDENT: 2em">&lt;P&gt;诗人李白是中国历史上哪个朝代的人：</p>
<p style="TEXT-INDENT: 2em">　 &lt;FORM action="answer.jsp" method=post name=form&gt;</p>
<p style="TEXT-INDENT: 2em">　　　 &lt;INPUT type="radio" name="R" value="a"&gt;宋朝 </p>
<p style="TEXT-INDENT: 2em">　　　 &lt;INPUT type="radio" name="R" value="b"&gt;唐朝 </p>
<p style="TEXT-INDENT: 2em">　　　 &lt;INPUT type="radio" name="R" value="c"&gt;明朝 </p>
<p style="TEXT-INDENT: 2em">　　　 &lt;INPUT type="radio" name="R" value="d" checked="ok"&gt;元朝 </p>
<p style="TEXT-INDENT: 2em">　　　　&lt;BR&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;P&gt;小说红楼梦的作者是：</p>
<p style="TEXT-INDENT: 2em">　　　　&lt;BR&gt;</p>
<p style="TEXT-INDENT: 2em">　　　 &lt;INPUT type="radio" name="P" value="a"&gt;曹雪芹 </p>
<p style="TEXT-INDENT: 2em">　　　 &lt;INPUT type="radio" name="P" value="b"&gt;罗贯中</p>
<p style="TEXT-INDENT: 2em">　　　 &lt;INPUT type="radio" name="P" value="c"&gt;李白 </p>
<p style="TEXT-INDENT: 2em">　　　 &lt;INPUT type="radio" name="P" value="d"&gt;司马迁 </p>
<p style="TEXT-INDENT: 2em">　　　 &lt;BR&gt;</p>
<p style="TEXT-INDENT: 2em">　　　 &lt;INPUT TYPE="submit" value="提交答案" name="submit"&gt;</p>
<p style="TEXT-INDENT: 2em">　 &lt;/FORM&gt; </p>
<p style="TEXT-INDENT: 2em">&lt;/FONT&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/BODY&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt; </p>
<p style="TEXT-INDENT: 2em">&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; answer.jsp：</p>
<p style="TEXT-INDENT: 2em">&lt;<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;%@ page contentType="text/html;charset=GB2312" %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BODY bgcolor=cyan&gt;&lt;Font size=1 &gt;</p>
<p style="TEXT-INDENT: 2em">&lt;% int n=0;</p>
<p style="TEXT-INDENT: 2em">　　String s1=request.getParameter("R");</p>
<p style="TEXT-INDENT: 2em">　　String s2=request.getParameter("P");</p>
<p style="TEXT-INDENT: 2em">　　 if(s1==null)</p>
<p style="TEXT-INDENT: 2em">　　　 {s1="";}</p>
<p style="TEXT-INDENT: 2em">　　 if(s2==null)</p>
<p style="TEXT-INDENT: 2em">　　　 {s2="";}</p>
<p style="TEXT-INDENT: 2em">　　　if(s1.equals("b"))</p>
<p style="TEXT-INDENT: 2em">　　　 { n++;}</p>
<p style="TEXT-INDENT: 2em">　　　if(s2.equals("a"))</p>
<p style="TEXT-INDENT: 2em">　　　 { n++;}</p>
<p style="TEXT-INDENT: 2em">%&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;P&gt;您得了&lt;%=n%&gt;分</p>
<p style="TEXT-INDENT: 2em">&lt;/FONT&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/BODY&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt; </p>
<p style="TEXT-INDENT: 2em">&nbsp; </p>
<p style="TEXT-INDENT: 2em">列表框&lt;select&gt;&lt;Option&gt; </p>
<p style="TEXT-INDENT: 2em">例： </p>
<p>　　select.jsp：</p>
<p style="TEXT-INDENT: 2em">&lt;<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;%@ page contentType="text/html;charset=GB2312" %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BODY bgcolor=cyan&gt;&lt;Font size=1 &gt;</p>
<p style="TEXT-INDENT: 2em">&lt;P&gt;选择计算和的方式</p>
<p style="TEXT-INDENT: 2em">　 &lt;FORM action="sum.jsp" method=post name=form&gt;</p>
<p style="TEXT-INDENT: 2em">　　　 &lt;Select name="sum" size=2&gt;</p>
<p style="TEXT-INDENT: 2em">　　　　　&lt;Option Selected value="1"&gt;计算1到n的连续和</p>
<p style="TEXT-INDENT: 2em">　　　　　&lt;Option value="2"&gt;计算1到n的平方和</p>
<p style="TEXT-INDENT: 2em">　　　　　&lt;Option value="3"&gt;计算1到n的立方和</p>
<p style="TEXT-INDENT: 2em">　　　 &lt;/Select&gt; </p>
<p style="TEXT-INDENT: 2em">&lt;P&gt;选择n的值：&lt;BR&gt;</p>
<p style="TEXT-INDENT: 2em">　　　 &lt;Select name="n" &gt;</p>
<p style="TEXT-INDENT: 2em">　　　　　&lt;Option value="10"&gt;n=10</p>
<p style="TEXT-INDENT: 2em">　　　　　&lt;Option value="20"&gt;n=20</p>
<p style="TEXT-INDENT: 2em">　　　　　&lt;Option value="30"&gt;n=30</p>
<p style="TEXT-INDENT: 2em">　　　　　&lt;Option value="40"&gt;n=40</p>
<p style="TEXT-INDENT: 2em">　　　　　&lt;Option value="50"&gt;n=50</p>
<p style="TEXT-INDENT: 2em">　　　　　&lt;Option value="100"&gt;n=100</p>
<p style="TEXT-INDENT: 2em">　　　 &lt;/Select&gt; </p>
<p style="TEXT-INDENT: 2em">　　　　&lt;BR&gt;&lt;BR&gt;</p>
<p style="TEXT-INDENT: 2em">　　 &lt;INPUT TYPE="submit" value="提交你的选择" name="submit"&gt;</p>
<p style="TEXT-INDENT: 2em">　 &lt;/FORM&gt; </p>
<p style="TEXT-INDENT: 2em">&lt;/FONT&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/BODY&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt; </p>
<p style="TEXT-INDENT: 2em">&nbsp; </p>
<p style="TEXT-INDENT: 2em">sum.jsp： </p>
<p style="TEXT-INDENT: 2em">&lt;<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;%@ page contentType="text/html;charset=GB2312" %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BODY bgcolor=cyan&gt;&lt;Font size=1 &gt;</p>
<p style="TEXT-INDENT: 2em">&lt;% long sum=0;</p>
<p style="TEXT-INDENT: 2em">　　String s1=request.getParameter("sum");</p>
<p style="TEXT-INDENT: 2em">　　String s2=request.getParameter("n");</p>
<p style="TEXT-INDENT: 2em">　　 if(s1==null)</p>
<p style="TEXT-INDENT: 2em">　　　 {s1="";}</p>
<p style="TEXT-INDENT: 2em">　　 if(s2==null)</p>
<p style="TEXT-INDENT: 2em">　　　 {s2="0";}</p>
<p style="TEXT-INDENT: 2em">　　if(s1.equals("1"))</p>
<p style="TEXT-INDENT: 2em">　　　 {int n=Integer.parseInt(s2);</p>
<p style="TEXT-INDENT: 2em">　　　　 for(int i=1;i&lt;=n;i++)</p>
<p style="TEXT-INDENT: 2em">　　　　　　{sum=sum+i;</p>
<p style="TEXT-INDENT: 2em">　　　　　　} </p>
<p style="TEXT-INDENT: 2em">　　　 }</p>
<p style="TEXT-INDENT: 2em">　　　else if(s1.equals("2"))</p>
<p style="TEXT-INDENT: 2em">　　　 {int n=Integer.parseInt(s2);</p>
<p style="TEXT-INDENT: 2em">　　　　 for(int i=1;i&lt;=n;i++)</p>
<p style="TEXT-INDENT: 2em">　　　　　　{sum=sum+i*i;</p>
<p style="TEXT-INDENT: 2em">　　　　　　} </p>
<p style="TEXT-INDENT: 2em">　　　 }</p>
<p style="TEXT-INDENT: 2em">　　　else if(s1.equals("3"))</p>
<p style="TEXT-INDENT: 2em">　　　 {int n=Integer.parseInt(s2);</p>
<p style="TEXT-INDENT: 2em">　　　　 for(int i=1;i&lt;=n;i++)</p>
<p style="TEXT-INDENT: 2em">　　　　　　{sum=sum+i*i*i;</p>
<p style="TEXT-INDENT: 2em">　　　　　　} </p>
<p style="TEXT-INDENT: 2em">　　　 }</p>
<p style="TEXT-INDENT: 2em">%&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;P&gt;您的求和结果是&lt;%=sum%&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/FONT&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/BODY&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt; </p>
<p style="TEXT-INDENT: 2em">&nbsp; </p>
<p style="TEXT-INDENT: 2em">&nbsp; </p>
<p style="TEXT-INDENT: 2em"><strong>二.Response对象：</strong>对客户的请求做出动态的响应，向客户端发送数据。 </p>
<p style="TEXT-INDENT: 2em"><font color=#dc143c>1.动态响应contenType属性</font> </p>
<p>　　当一个用户访问一个jsp页面时，如果该页面用page指令设置页面的contentType属性是text/html，那么jsp引擎将按照这种属性值作出反映。如果要动态改变这个属性值来响应客户，就需要使用response对象的setContentType(String s)方法来改变contentType的属性值。</p>
<p>　　格式：response.setContentType(String s)</p>
<p>　　参数s可取text/html,, application/x-msexcel, application/msword等。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 例如：response1.jsp</p>
<p style="TEXT-INDENT: 2em">&lt;%@ page contentType="text/html;charset=GB2312" %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BODY bgcolor=cyan&gt;&lt;Font size=1 &gt;</p>
<p style="TEXT-INDENT: 2em">&lt;P&gt;我正在学习response对象的</p>
<p style="TEXT-INDENT: 2em">&lt;BR&gt;setContentType方法</p>
<p style="TEXT-INDENT: 2em">&lt;P&gt;将当前页面保存为word文档吗？</p>
<p style="TEXT-INDENT: 2em">　&lt;FORM action="" method="get" name=form&gt;</p>
<p style="TEXT-INDENT: 2em">　　 &lt;INPUT TYPE="submit" value="yes" name="submit"&gt;</p>
<p style="TEXT-INDENT: 2em">　 &lt;/FORM&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;% String str=request.getParameter("submit");</p>
<p style="TEXT-INDENT: 2em">　　　if(str==null) </p>
<p style="TEXT-INDENT: 2em">　　　　 {str="";</p>
<p style="TEXT-INDENT: 2em">　　　　 }</p>
<p style="TEXT-INDENT: 2em">　　　if(str.equals("yes"))</p>
<p style="TEXT-INDENT: 2em">　　　　 {response.setContentType("application/msword;charset=GB2312");</p>
<p style="TEXT-INDENT: 2em">　　　　 }</p>
<p style="TEXT-INDENT: 2em">%&gt; </p>
<p style="TEXT-INDENT: 2em">&lt;/FONT&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/BODY&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt; </p>
<p style="TEXT-INDENT: 2em">&nbsp; </p>
<p style="TEXT-INDENT: 2em"><font color=#dc143c>2．Response重定向：</font>在某些情况下，当响应客户时，需要将客户重新引导至另一个页面，可以使用response的sendRedirect(URL)方法实现客户的重定向。 </p>
<p>例如：response2.jsp：</p>
<p style="TEXT-INDENT: 2em">&lt;html&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;head&gt;&lt;title&gt;Where to go&lt;/title&gt;&lt;/head&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;body&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;%</p>
<p style="TEXT-INDENT: 2em">String address = request.getParameter("where");</p>
<p style="TEXT-INDENT: 2em">if(address!=null){</p>
<p style="TEXT-INDENT: 2em">if(address.equals("ChinaWebber")) </p>
<p style="TEXT-INDENT: 2em">　 response.sendRedirect("<a href="http://www.chinawebber.com/"><font color=#268ba9>http://www.ChinaWebber.com</font></a>");</p>
<p style="TEXT-INDENT: 2em">　else if(address.equals("Yahoo")) </p>
<p style="TEXT-INDENT: 2em">　　 response.sendRedirect("<a href="http://www.yahoo.com/"><font color=#268ba9>http://www.yahoo.com</font></a>");</p>
<p style="TEXT-INDENT: 2em">　 else if(address.equals("Sun")) </p>
<p style="TEXT-INDENT: 2em">　　 response.sendRedirect("<a href="http://www.sun.com/"><font color=#268ba9>http://www.sun.com</font></a>");</p>
<p style="TEXT-INDENT: 2em">}</p>
<p style="TEXT-INDENT: 2em">%&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;b&gt;Please select:&lt;/b&gt;&lt;br&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;form action="goto.jsp" method="GET"&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;select name="where"&gt;</p>
<p style="TEXT-INDENT: 2em">　 &lt;option value="ChinaWebber" selected&gt;go to ChinaWebber</p>
<p style="TEXT-INDENT: 2em">　 &lt;option value="Sun" &gt; go to Sun</p>
<p style="TEXT-INDENT: 2em">　 &lt;option value="Microsoft" &gt; go to Microsoft</p>
<p style="TEXT-INDENT: 2em">&lt;/select&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;input type="submit" value="go"&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/form&gt; </p>
<p style="TEXT-INDENT: 2em">&lt;/body&gt; </p>
<p style="TEXT-INDENT: 2em">&lt;/html&gt; </p>
<p style="TEXT-INDENT: 2em">&nbsp; </p>
<p style="TEXT-INDENT: 2em"><strong>三．Session对象</strong> </p>
<p>　　<font color=#dc143c>1.什么是Session：</font>Session对象是一个jsp内置对象，它在第一个jsp页面被装载时自动创建，完成会话期管理。</p>
<p>从一个客户打开浏览器并连接到服务器开始，到客户关闭浏览器离开这个服务器结束，被称为一个会话。当一个客户访问一个服务器时，可能会在这个服务器的几个页面之间反复连接，反复刷新一个页面，服务器应当通过某种办法知道这是同一个客户，这就需要session对象。</p>
<p><font color=#dc143c>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2．session对象的Id：</font>当一个客户首次访问服务器上的一个jsp页面时，jsp引擎产生一个session对象，同时分配一个String类型的Id号，jsp引擎同时将这个Id号发送到客户端，存放在Cookie中，这样session对象和客户之间就建立了一一对应的关系。当客户再访问连接该服务器的其他页面时，不再分配给客户新的session对象，直到客户关闭浏览器后，服务器端该客户的session对象才取消，并且和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时，服务器为该客户再创建一个新的session对象。</p>
<p><font color=#dc143c>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3．session对象常用方法：</font></p>
<p>　　i.public String getId():获取session对象编号。</p>
<p>　　ii.public void setAttribute(String key,Object obj):将参数Object指定的对象obj添加到session对象中，并为添加的对象指定一个索引关键字。</p>
<p>　　iii.public Object getAttribute(String key):获取session对象中含有关键字的对象。</p>
<p>　　iv.public Boolean isNew():判断是否是一个新的客户。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 例如：session1.jsp</p>
<p style="TEXT-INDENT: 2em">&lt;%@ page contentType="text/html;charset=GB2312" %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BODY bgcolor=cyan&gt;&lt;FONT Size=5&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BODY&gt;</p>
<p style="TEXT-INDENT: 2em">　　&lt;%String s=session.getId();</p>
<p style="TEXT-INDENT: 2em">　　%&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;P&gt;您的session对象的ID是：</p>
<p style="TEXT-INDENT: 2em">&lt;BR&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;%=s%&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BODY&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt;</p>
<p style="TEXT-INDENT: 2em">例如：session2.jsp</p>
<p style="TEXT-INDENT: 2em">&lt;%@ page contentType="text/html;charset=GB2312" %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BODY&gt;</p>
<p style="TEXT-INDENT: 2em">　　&lt;%! int number=0;　　 </p>
<p style="TEXT-INDENT: 2em">　　 synchronized void countPeople()</p>
<p style="TEXT-INDENT: 2em">　　　　{ </p>
<p style="TEXT-INDENT: 2em">　　　　　　　　　number++;</p>
<p style="TEXT-INDENT: 2em">　　　　 }</p>
<p style="TEXT-INDENT: 2em">　 %&gt;</p>
<p style="TEXT-INDENT: 2em">　 &lt;%</p>
<p style="TEXT-INDENT: 2em">　　 if(session.isNew())</p>
<p style="TEXT-INDENT: 2em">　　　 {</p>
<p style="TEXT-INDENT: 2em">　　　　 countPeople();</p>
<p style="TEXT-INDENT: 2em">　　　　 String str=String.valueOf(number);</p>
<p style="TEXT-INDENT: 2em">　　　　 session.setAttribute("count",str);</p>
<p style="TEXT-INDENT: 2em">　　　 }</p>
<p style="TEXT-INDENT: 2em">　　%&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;P&gt;您是第&lt;%=(String)session.getAttribute("count")%&gt;个访问本站的人。</p>
<p style="TEXT-INDENT: 2em">&lt;BODY&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt; </p>
<p style="TEXT-INDENT: 2em">&nbsp; </p>
<p style="TEXT-INDENT: 2em"><strong>四．aplication对象</strong> </p>
<p>　<font color=#dc143c>　1．什么是application:</font></p>
<p>　　服务器启动后就产生了这个application对象，当客户再所访问的网站的各个页面之间浏览时，这个application对象都是同一个，直到服务器关闭。但是与session不同的是，所有客户的application对象都是同一个，即所有客户共享这个内置的application对象。</p>
<p>　　<font color=#dc143c>2．Application对象常用方法:</font></p>
<p>　　(1)public void setAttribute(String key,Object obj): 将参数Object指定的对象obj添加到application对象中，并为添加的对象指定一个索引关键字。</p>
<p>　　(2)public Object getAttribute(String key): 获取application对象中含有关键字的对象。</p>
<p>　　例：application.jsp</p>
<p style="TEXT-INDENT: 2em">&lt;<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;HEAD&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;TITLE&gt;application变量的使用&lt;/TITLE&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/HEAD&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BODY&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;CENTER&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;FONT SIZE = 5 COLOR = blue&gt;application变量的使用&lt;/FONT&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/CENTER&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;HR&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;P&gt;&lt;/P&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;%</p>
<p style="TEXT-INDENT: 2em">Object obj = null;</p>
<p style="TEXT-INDENT: 2em">String strNum = (String)application.getAttribute("Num");</p>
<p style="TEXT-INDENT: 2em">int Num = 0;</p>
<p style="TEXT-INDENT: 2em">//检查是否Num变量是否可取得</p>
<p style="TEXT-INDENT: 2em">if(strNum != null) </p>
<p style="TEXT-INDENT: 2em">Num = Integer.parseInt(strNum) + 1; //将取得的值增加1</p>
<p style="TEXT-INDENT: 2em">application.setAttribute("Num", String.valueOf(Num)); //起始Num变量值</p>
<p style="TEXT-INDENT: 2em">%&gt;</p>
<p style="TEXT-INDENT: 2em">application对象中的&lt;Font color = blue&gt;Num&lt;/Font&gt;变量值为</p>
<p style="TEXT-INDENT: 2em">&lt;Font color = red&gt;&lt;%= Num %&gt;&lt;/Font&gt;&lt;BR&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/BODY&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt; </p>
<p style="TEXT-INDENT: 2em">&nbsp; </p>
<p style="TEXT-INDENT: 2em"><font color=#dc143c>五．Out对象</font> </p>
<p>　　Out对象是一个输出流，用来向客户端输出数据。Out对象用于各种数据的输出。</p>
<p>　　常用方法：</p>
<p>　　（1）out.print():输出各种类型数据。</p>
<p>　　（2）out.newLine():输出一个换行符。</p>
<p>　　（3）out.close():关闭流。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 例：out.jsp</p>
<p style="TEXT-INDENT: 2em">&lt;%@ page contentType="text/html;charset=GB2312" %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;%@ page　import="java.util.Date"%&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;HEAD&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;%</p>
<p style="TEXT-INDENT: 2em">Date Now = new Date(); </p>
<p style="TEXT-INDENT: 2em">String hours=String.valueOf(Now.getHours());</p>
<p style="TEXT-INDENT: 2em">String mins=String.valueOf(Now.getMinutes());</p>
<p style="TEXT-INDENT: 2em">String secs=String.valueOf(Now.getSeconds());</p>
<p style="TEXT-INDENT: 2em">%&gt;</p>
<p style="TEXT-INDENT: 2em">现在是</p>
<p style="TEXT-INDENT: 2em">&lt;%out.print(String.valueOf(Now.getHours()));%&gt;</p>
<p style="TEXT-INDENT: 2em">小时</p>
<p style="TEXT-INDENT: 2em">&lt;%out.print(String.valueOf(Now.getMinutes()));%&gt;</p>
<p style="TEXT-INDENT: 2em">分</p>
<p style="TEXT-INDENT: 2em">&lt;%out.print(String.valueOf(Now.getSeconds()));%&gt;</p>
<p style="TEXT-INDENT: 2em">秒</p>
<p style="TEXT-INDENT: 2em">&lt;/FONT&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/BODY&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt; </p>
<p style="TEXT-INDENT: 2em">&nbsp; </p>
<p style="TEXT-INDENT: 2em"><strong>六．Cookie</strong> </p>
<p>　　<font color=#dc143c>1.什么是Cookie：</font></p>
<p>　　Cookie是Web服务器保存在用户硬盘上的一段文本。Cookie允许一个Web站点在用户的电脑上保存信息并且随后再取回它。</p>
<p>　　举例来说，一个Web站点可能会为每一个访问者产生一个唯一的ID，然后以Cookie文件的形式保存在每个用户的机器上。 </p>
<p>　　如果您使用IE浏览器访问Web，您会看到所有保存在您的硬盘上的Cookie。它们最常存放的地方是：c:\windows\cookies(在Win　2000中则是C:\Documents　and　Settings\您的用户名\Cookies )</p>
<p>　　cookie是以&#8220;关键字key=值value&#8220;的格式来保存纪录的.</p>
<p>　　<font color=#dc143c>2．创建一个Cookie对象，调用Cookie对象的构造函数可以创建Cookie。Cookie对象的构造函数有两个字符串参数：Cookie名字和Cookie值。</font></p>
<p>　　Cookie c=new Cookie(&#8220;username&#8221;,&#8221;john&#8221;);</p>
<p>　　<font color=#dc143c>3． jsp中如果要将封装好的Cookie对象传送到客户端，使用response的addCookie()方法。</font></p>
<p>　　格式：response.addCookie(c)</p>
<p>　　<font color=#dc143c>4．读取保存到客户端的Cookie,使用request对象的getCookies()方法，执行时将所有客户端传来的Cookie对象以数组的形式排列，如果要取出符合需要的Cookie对象，就需要循环比较数组内每个对象的关键字。</font></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 例： </p>
<p>Cookie[] c=request.getCookies();</p>
<p>if(c!=null)</p>
<p>for(int I=0;I&lt;c.length;I++)</p>
<p>if(&#8220;username&#8221;.equals(c[I].getName()))</p>
<p>out.println(c[I].getValue());</p>
<p><font color=#dc143c>5．设置Cookie对象有效时间：setMaxAge()。</font></p>
<p>c.setMaxAge(3600);</p>
<p><font color=#dc143c>6．Cookie应用</font></p>
<p>　　1.网站能够精确地知道有多少人浏览过。</p>
<p>　　由于代理服务器、缓存等的使用，唯一能帮助网站精确统计来访人数的方法就是为每个访问者建立一个唯一的ID。使用Cookie，网站可以完成以下工作：</p>
<p>　　●测定多少人访问过；</p>
<p>　　●测定访问者有多少是新用户（即第一次来访），多少是老用户；</p>
<p>　　●测定一个用户多久访问一次网站。</p>
<p>　　网站使用数据库达到上述目标。当一个用户第一次访问时，网站在数据库中建立一个新的ID，并把ID通过Cookie传送给用户。用户再次来访时，网站把该用户ID对应的计数器加1，得到用户的来访次数。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 例：Cookie.jsp</p>
<p style="TEXT-INDENT: 2em">&lt;%@ page contentType="text/html; charset=GB2312" </p>
<p style="TEXT-INDENT: 2em">　　 import="java.util.Date" %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;HEAD&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;TITLE&gt;Cookie的存取&lt;/TITLE&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/HEAD&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BODY&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;CENTER&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;FONT SIZE = 5 COLOR = blue&gt;Cookie的存取&lt;/FONT&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/CENTER&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;HR&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;P&gt;&lt;/P&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;%</p>
<p style="TEXT-INDENT: 2em">//建立Cookie变数</p>
<p style="TEXT-INDENT: 2em">Cookie IntVal = new Cookie("IntVal", "100");</p>
<p style="TEXT-INDENT: 2em">Cookie temp = null;</p>
<p style="TEXT-INDENT: 2em">response.addCookie(IntVal); //将Cookie变数加入Cookie中</p>
<p style="TEXT-INDENT: 2em">Cookie[] cookies = request.getCookies();</p>
<p style="TEXT-INDENT: 2em">//取得Cookie资料</p>
<p style="TEXT-INDENT: 2em">int cookielen = cookies.length;</p>
<p style="TEXT-INDENT: 2em">//取得Cookie变数阵列的长度</p>
<p style="TEXT-INDENT: 2em">if(cookielen != 0) //判断是否成功取得Cookie资料</p>
<p style="TEXT-INDENT: 2em">{　 </p>
<p style="TEXT-INDENT: 2em">　　for (int i = 0; i &lt; cookielen; i++)</p>
<p style="TEXT-INDENT: 2em">　　{　 </p>
<p style="TEXT-INDENT: 2em">　　　　temp = cookies[i]; //取得cookies阵列中的Cookie变数</p>
<p style="TEXT-INDENT: 2em">　　　　if (temp.getName().equals("IntVal"))</p>
<p style="TEXT-INDENT: 2em">　　　　{ //判断是否取得名为DateVal的Cookie资料</p>
<p style="TEXT-INDENT: 2em">　　　　　　%&gt;</p>
<p style="TEXT-INDENT: 2em">　　　　　　Cookie中&lt;Font color = blue&gt;IntVal&lt;/Font&gt;变量的值为</p>
<p style="TEXT-INDENT: 2em">　　　　　　&lt;Font color = red&gt;&lt;%= IntVal.getValue()%&gt;&lt;/Font&gt;&lt;BR&gt;</p>
<p style="TEXT-INDENT: 2em">　　　　　　&lt;%</p>
<p style="TEXT-INDENT: 2em">　　　　　　　　　　　　　　}</p>
<p style="TEXT-INDENT: 2em">　　　　　　　 </p>
<p style="TEXT-INDENT: 2em">　　}　 </p>
<p style="TEXT-INDENT: 2em">}</p>
<p style="TEXT-INDENT: 2em">else</p>
<p style="TEXT-INDENT: 2em">{ </p>
<p style="TEXT-INDENT: 2em">　　%&gt;</p>
<p style="TEXT-INDENT: 2em">　　不存在Cookie&lt;BR&gt;</p>
<p style="TEXT-INDENT: 2em">　　&lt;%</p>
<p style="TEXT-INDENT: 2em">}</p>
<p style="TEXT-INDENT: 2em">%&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/BODY&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt; </p>
<p style="TEXT-INDENT: 2em">&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp; 例：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; CookieDate.jsp</p>
<p style="TEXT-INDENT: 2em">&lt;%@ page contentType="text/html; charset=GB2312"</p>
<p style="TEXT-INDENT: 2em">　　 import="java.util.Date"%&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;HEAD&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;TITLE&gt;自Cookie存取日期/时间数据&lt;/TITLE&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/HEAD&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;BODY&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;CENTER&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;FONT SIZE = 5 COLOR = blue&gt;自Cookie存取日期/时间数据&lt;/FONT&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/CENTER&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;HR&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;P&gt;&lt;/P&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;%</p>
<p style="TEXT-INDENT: 2em">Date Now = new Date(); //取得目前的系统时间</p>
<p style="TEXT-INDENT: 2em">Cookie DateVal = new Cookie("DateVal", String.valueOf(Now.getTime()));</p>
<p style="TEXT-INDENT: 2em">//欲将储存至Cookie时间/日期值转换为毫秒数</p>
<p style="TEXT-INDENT: 2em">response.addCookie(DateVal); //将Cookie变数加入Cookie中</p>
<p style="TEXT-INDENT: 2em">Cookie temp = null;</p>
<p style="TEXT-INDENT: 2em">DateVal = null; //重设Cookie变数</p>
<p style="TEXT-INDENT: 2em">Cookie[] cookies = request.getCookies();</p>
<p style="TEXT-INDENT: 2em">//取得Cookie资料</p>
<p style="TEXT-INDENT: 2em">int cookielen = cookies.length;</p>
<p style="TEXT-INDENT: 2em">//取得Cookie变数阵列的长度</p>
<p style="TEXT-INDENT: 2em">if(cookielen != 0) //判断是否成功取得Cookie资料</p>
<p style="TEXT-INDENT: 2em">{　 </p>
<p style="TEXT-INDENT: 2em">　　for (int i = 0; i &lt; cookielen; i++)</p>
<p style="TEXT-INDENT: 2em">　　{　 </p>
<p style="TEXT-INDENT: 2em">　　　　temp = cookies[i]; //取得cookies阵列中的Cookie变数</p>
<p style="TEXT-INDENT: 2em">　　　　　　　　</p>
<p style="TEXT-INDENT: 2em">　　　　if (temp.getName().equals("DateVal"))</p>
<p style="TEXT-INDENT: 2em">　　　　{ //判断是否取得名为DateVal的Cookie资料</p>
<p style="TEXT-INDENT: 2em">　　　　　　%&gt;</p>
<p style="TEXT-INDENT: 2em">　　　　　　Cookie中&lt;Font color = blue&gt;DateVal&lt;/Font&gt;</p>
<p style="TEXT-INDENT: 2em">　　　　　　变量的值为&lt;Font color = red&gt;</p>
<p style="TEXT-INDENT: 2em">　　　　　　&lt;%= new Date(Long.parseLong(temp.getValue())) %&gt;</p>
<p style="TEXT-INDENT: 2em">　　　　　　&lt;/Font&gt;&lt;BR&gt;</p>
<p style="TEXT-INDENT: 2em">　　　　　　&lt;%</p>
<p style="TEXT-INDENT: 2em">　　　　}</p>
<p style="TEXT-INDENT: 2em">　　}</p>
<p style="TEXT-INDENT: 2em">}</p>
<p style="TEXT-INDENT: 2em">else //若无法取得Cookie资料则执行下面的叙述</p>
<p style="TEXT-INDENT: 2em">{ </p>
<p style="TEXT-INDENT: 2em">%&gt;</p>
<p style="TEXT-INDENT: 2em">无法取得Cookie&lt;BR&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;%</p>
<p style="TEXT-INDENT: 2em">}</p>
<p style="TEXT-INDENT: 2em">%&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/BODY&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/<a href="http://www.86oo.com/html/135/index.html"><font color=#268ba9>HTML</font></a>&gt;</p>
<p style="TEXT-INDENT: 2em">七. pageContext</p>
<p style="TEXT-INDENT: 2em">pageContext 对象被封装成javax.servlet.jsp.pageContext接口，它为JSP页面包装页面的上下文。管理对属于JSP中特殊可见部分中已命名对象的访问。它的创建和初始化都是由容器来完成的，JSP页面力可以直接使用 pageContext 对象的句柄。pageContext 对象的getXXX()、setXXX()和findXXX()方法可以用来根据不同的对象范围实现对对这些对象的管理。pageContext对象主要是管理对属于JSP特殊可见部分中已经命名对象访问。他的创建和初始化通常对JSP程序员是透明的，JSP程序员可以从JSP中获取到用来代表 pageContext 对象的句柄，因此也就可以使用 pageContext 对象的各种API。</p>
<p style="TEXT-INDENT: 2em">pageContext对象常用方法： </p>
<ul>
    <li>foward(String relativeUrlPath):把页面重定向到另外一个页面或者Servlet组件上。 </li>
    <li>getAttribute(String name[,int scope]):sope参数是可选的。该方法用来检索一个特定的已经命名的对象的范围，并且还可以通过调用getAttributeNamesScope()方法，检索第某个特定范围的每个属性String字符串名字的枚举。 </li>
    <li>getException()：返回当前的Exception对象。 </li>
    <li>getRequest()：返回当前的request对象。 </li>
    <li>getResponse()：返回当前的Response对象。 </li>
    <li>getServletConfig():返回当前页面的servletConfig对象。 </li>
    <li>getservletContext():返回servletContext对象。 </li>
    <li>getSession():返回当前页面的Session对象。 </li>
    <li>findAttribute():方法则是可以用来按照页面、请求、会话已经应用程序范围的顺序实现对某个已命名属性的搜索。 </li>
    <li>setAttribute():用来设置默认页面范围或特定范围之中的已命名对象。 </li>
    <li>removeAttribute()：用来删除默认页面范围或特定范围之中的已命名对象。</li>
</ul>
<p>&#160;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; 例程：(pagecontext_form.html)</p>
<p style="TEXT-INDENT: 2em">&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;html&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp; &lt;head&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;title&gt;pagecontext_form.html&lt;/title&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="keywords" content="keyword1,keyword2,keyword3"&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="description" content="this is my page"&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="content-type" content="text/html; charset=UTF-8"&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;!--&lt;link rel="stylesheet" type="text/css" href="./styles.css"&gt;--&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; </p>
<p style="TEXT-INDENT: 2em">&nbsp; &lt;/head&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp; </p>
<p style="TEXT-INDENT: 2em">&nbsp; &lt;body&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;FORM method="post" action="pagecontext1.jsp"&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TABLE&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TR&gt;&lt;td&gt;name:&lt;/td&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;input type="text" &gt;&lt;/TD&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/TR&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TR colspan=2&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TD&gt;&lt;input type="submit" value="login"&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/TD&gt;&lt;/TR&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/TABLE&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;/FORM&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp; &lt;/body&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/html&gt;</p>
<p style="TEXT-INDENT: 2em">pagecontext1.jsp</p>
<p style="TEXT-INDENT: 2em">&lt;%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;%@ page import="javax.servlet.Servlet" %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;%@ page import="javax.servlet.jsp.PageContext" %&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;%</p>
<p style="TEXT-INDENT: 2em">String path = request.getContextPath();</p>
<p style="TEXT-INDENT: 2em">String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";</p>
<p style="TEXT-INDENT: 2em">%&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;html&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp; &lt;head&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;base href="&lt;%=basePath%&gt;"&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;title&gt;My JSP 'pagecontext1.jsp' starting page&lt;/title&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="pragma" content="no-cache"&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="cache-control" content="no-cache"&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="expires" content="0"&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="keywords" content="keyword1,keyword2,keyword3"&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="description" content="This is my page"&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;!--</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;link rel="stylesheet" type="text/css" href="styles.css"&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; --&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp; &lt;/head&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp; </p>
<p style="TEXT-INDENT: 2em">&nbsp; &lt;body&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp;&nbsp; pageContext 的测试页面－在pagecontext中这一一些属性。&lt;br&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;%</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; ServletRequest reg = pageContext.getRequest();</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; String name");</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; out.println("+ name + "&lt;BR&gt;");</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; pageContext.setAttribute("userName",name);</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; pageContext.getServletContext().setAttribute("sharevalue","多个页面共享的值！");</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; pageContext.getSession().setAttribute("sessionvalue","只能在Session中才能共享的值！");</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; out.println("&lt;BR&gt;pageContext.getAttribute('userName'):");</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; %&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;A href="./ch4/pagecontext2.jsp"&gt;next--&gt; &lt;/A&gt;&lt;BR&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; 以下是这个页面的代码：&lt;BR&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;FONT color="red"&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; ServletRequest reg = pageContext.getRequest();</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; String name = reg.getParameter("username");<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println("+ name + "&lt;BR&gt;");</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; pageContext.setAttribute("userName",name);</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; pageContext.getServletContext().setAttribute("sharevalue","多个页面共享的值！");</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; pageContext.getSession().setAttribute("sessionvalue","只能在Session中才能共享的值！");</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; out.println("&lt;BR&gt;pageContext.getAttribute('userName'):");</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;/FONT&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;%</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; %&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp; &lt;/body&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/html&gt;</p>
<p style="TEXT-INDENT: 2em">pagecontext2.jsp</p>
<p style="TEXT-INDENT: 2em">&lt;%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;%</p>
<p style="TEXT-INDENT: 2em">String path = request.getContextPath();</p>
<p style="TEXT-INDENT: 2em">String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";</p>
<p style="TEXT-INDENT: 2em">%&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;html&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp; &lt;head&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;base href="&lt;%=basePath%&gt;"&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;title&gt;My JSP 'pagecontext2..jsp' starting page&lt;/title&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="pragma" content="no-cache"&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="cache-control" content="no-cache"&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="expires" content="0"&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="keywords" content="keyword1,keyword2,keyword3"&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="description" content="This is my page"&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;!--</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;link rel="stylesheet" type="text/css" href="styles.css"&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; --&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp; &lt;/head&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp; </p>
<p style="TEXT-INDENT: 2em">&nbsp; &lt;body&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; pageContext 的测试页面－获得前一个页面设置的值：&lt;BR&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; &lt;%</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; out.println("&lt;BR&gt;pageContext.getAttribute('userName')");</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; out.println(pageContext.getAttribute("userName"));</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; out.println("&lt;BR&gt;pageContext.getSession().getAttribute('sessionValue')");</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; out.println(pageContext.getSession().getAttribute("sessionvalue"));</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; out.println("&lt;BR&gt;pageContext.getServletContext().getAttribute('shareValue')");</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; out.println(pageContext.getServletContext().getAttribute("sharevalue"));</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; out.println("&lt;BR&gt;pageContext.getAttribute('userName')");</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; out.println(pageContext.getSession().getAttribute("userName"));</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; %&gt;</p>
<p style="TEXT-INDENT: 2em">&nbsp; &lt;/body&gt;</p>
<p style="TEXT-INDENT: 2em">&lt;/html&gt;</p>
<p style="TEXT-INDENT: 2em">八. config</p>
<p style="TEXT-INDENT: 2em">config 对象被封装成javax.servlet.ServletConfig 接口，他表示Servlet的配置，当一个Servlet初始化时，容器把某些信息通过此对象传递这个Servlet。</p>
<p style="TEXT-INDENT: 2em">&nbsp; 常用的方法有： </p>
<ul>
    <li>getServletContext():返回执行者的Servlet上下文。 </li>
    <li>getServletName():返回Servlet的名字。 </li>
    <li>getInitParameter(String name):返回名字为name的初始参数值。 </li>
    <li>getInitParameterNames():返回这个JSP的所有参数的名字。</li>
</ul>
<p>&#160;</p>
<p style="TEXT-INDENT: 2em">例程：更新计数器（config.jsp）</p>
<p style="TEXT-INDENT: 2em">九.&nbsp; page</p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp;&nbsp; page 对象是 java.lang.Object 类的一个实例。他指的是JSP实现类的实例，也就是说他是JSP本身。</p>
<p style="TEXT-INDENT: 2em">十. exception </p>
<p style="TEXT-INDENT: 2em">&nbsp;&nbsp; exception 对象是 java.lang.Throwable 类的一个实例。他指的是运行时的异常。</p>
</div>
<img src ="http://www.cnitblog.com/gavinkin555/aggbug/32859.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/gavinkin555/" target="_blank">gavinkin555</a> 2007-09-03 15:06 <a href="http://www.cnitblog.com/gavinkin555/articles/32859.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Servlet之ServletContext</title><link>http://www.cnitblog.com/gavinkin555/articles/32860.html</link><dc:creator>gavinkin555</dc:creator><author>gavinkin555</author><pubDate>Mon, 03 Sep 2007 07:06:00 GMT</pubDate><guid>http://www.cnitblog.com/gavinkin555/articles/32860.html</guid><wfw:comment>http://www.cnitblog.com/gavinkin555/comments/32860.html</wfw:comment><comments>http://www.cnitblog.com/gavinkin555/articles/32860.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/gavinkin555/comments/commentRss/32860.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/gavinkin555/services/trackbacks/32860.html</trackback:ping><description><![CDATA[<div class="g_t_left c07 content" id=blogtext__fks_dNLyqEymZWe3Rs0P9z0sY8i6cZxwvST2>
<p>Servlet容器在启动时会加载Web应用，并为每个Web应用创建唯一的ServletContext对象。可以把ServletContext看成是一个Web应用的<strong class=kgb style="FONT-WEIGHT: normal; CURSOR: hand; COLOR: #0000ff; TEXT-DECORATION: underline" ="true;isShowAds2" WebClick.aspx?id="20845&amp;k=%u670D%u52A1%u5668&amp;siteid=95d6d193-1fb9-4fc0-8708-b7ceb3276924&amp;url=http%3A//honghaix.bokee.com/viewdiary.15766296.html&amp;gourl=http%3A//go.microsoft.com/%3Flinkid%3D6331218&amp;parm=135071020A36814A19765A8E16962C163E87FC536E8AA1A6&amp;alliedsiteid=0&quot;);'" ClickPortal s0.17luntan.com http: event)?>服务器</strong>端组件的共享内存。在ServletContext中可以存放共享数据，它提供了4个读取或设置共享数据的方法。 </p>
<p>1）setAttribute(String name,Object object):把一个对象和一个属性名绑定，将这个对象存储在ServletContext中； </p>
<p>2）getAttribute(String name):根据指定的属性名返回所绑定的对象； </p>
<p>3）removeAttribute(String name):根据给定的属性名从ServletContext中删除相应的操作； </p>
<p>4）getAttributeNames():返回Enumeration对象，它包含了存储在ServletContext对象中的所有属性名。 </p>
<p>下面通过一个例子，说明ServletContext和Web应用的关系。</p>
<p>&nbsp;</p>
<p>package mypack;<br>import javax.servlet.*;<br>import javax.servlet.http.*;<br>import java.io.*;<br>import java.util.*; </p>
<p>public class CounterServlet extends HttpServlet <br>{<br>&nbsp;public static final String CONTENT_TYPE="text/html;charset=GB2312"; </p>
<p>&nbsp;public void init(ServletConfig config)throws ServletException{<br>&nbsp;&nbsp;super.init(config);<br>&nbsp;} </p>
<p>&nbsp;public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{<br>&nbsp;&nbsp;doPost(request,response);<br>&nbsp;} </p>
<p>&nbsp;public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{<br>&nbsp;&nbsp;//获得ServletContext的引用<br>&nbsp;&nbsp;ServletContext context=getServletContext();<br>&nbsp;&nbsp;//从ServletContext读取count属性<br>&nbsp;&nbsp;Integer count=(Integer)context.getAttribute("count"); </p>
<p>&nbsp;&nbsp;//如果count属性还没有设置，那么创建count属性，初始值为0<br>&nbsp;&nbsp;//one and add it to the ServletContext<br>&nbsp;&nbsp;if(count==null){<br>&nbsp;&nbsp;&nbsp;count=new Integer(0);<br>&nbsp;&nbsp;&nbsp;context.setAttribute("count",new Integer(0));<br>&nbsp;&nbsp;} </p>
<p>&nbsp;&nbsp;response.setContentType(CONTENT_TYPE);<br>&nbsp;&nbsp;PrintWriter out=response.getWriter();<br>&nbsp;&nbsp;out.println("&lt;HTML&gt;");<br>&nbsp;&nbsp;out.println("&lt;HEAD&gt;&lt;TITLE&gt;点击计数&lt;/TITLE&gt;&lt;/HEAD&gt;");<br>&nbsp;&nbsp;out.println("&lt;BODY&gt;");<br>&nbsp;&nbsp;//输出当前的count属性值<br>&nbsp;&nbsp;out.println("&lt;P&gt;当前计数是："+count+"&lt;/P&gt;");<br>&nbsp;&nbsp;out.println("&lt;/BODY&gt;&lt;/HTML&gt;"); </p>
<p>&nbsp;&nbsp;//创建新的count对象,其值增1<br>&nbsp;&nbsp;count=new Integer(count.intValue()+1);<br>&nbsp;&nbsp;//将新的count属性存储到ServletContent中<br>&nbsp;&nbsp;context.setAttribute("count",count);<br>&nbsp;}<br>&nbsp;public void destroy(){<br>&nbsp;}<br>} </p>
<p>&nbsp; </p>
<p>在web.xml中为CounterServlet类加上&lt;servlet&gt;和&lt;servlet-mapping&gt;元素 </p>
<p>&nbsp;&nbsp;&lt;servlet&gt;<br>&nbsp;&nbsp;&nbsp;&lt;servlet-name&gt;CounterServlet&lt;/servlet-name&gt;<br>&nbsp;&nbsp;&nbsp;&lt;servlet-class&gt;mypack.CounterServlet&lt;/servlet-class&gt;<br>&nbsp;&nbsp;&lt;/servlet&gt;<br>&nbsp;&nbsp;&lt;servlet-mapping&gt;<br>&nbsp;&nbsp;&nbsp;&lt;servlet-name&gt;CounterServlet&lt;/servlet-name&gt;<br>&nbsp;&nbsp;&nbsp;&lt;url-pattern&gt;/counter&lt;/url-pattern&gt;<br>&nbsp;&nbsp;&lt;/servlet-mapping&gt; </p>
<p>测试通过。 </p>
<p>1）刷新页面，count加1； </p>
<p>2）关闭浏览器，再打开新浏览器还是在原来基础上加1（即便由IE换成Opera）； </p>
<p>3）如果重启Tomcat服务器，再访问CounterServlet，则count又初始化为0； </p>
<p>4）复制helloapp应用，改为helloapp1,再发布helloapp1,通过不同的浏览器窗口分别访问helloapp及helloapp1中的CounterServlet，发现这两个Web应用拥有各自独立的count属性。 </p>
<p>即ServletContext对象只在Web应用被关闭时才被销毁；不同的Web应用，ServletContext各自独立存在。</p>
</div>
<img src ="http://www.cnitblog.com/gavinkin555/aggbug/32860.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/gavinkin555/" target="_blank">gavinkin555</a> 2007-09-03 15:06 <a href="http://www.cnitblog.com/gavinkin555/articles/32860.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp useBean的使用</title><link>http://www.cnitblog.com/gavinkin555/articles/32857.html</link><dc:creator>gavinkin555</dc:creator><author>gavinkin555</author><pubDate>Mon, 03 Sep 2007 07:04:00 GMT</pubDate><guid>http://www.cnitblog.com/gavinkin555/articles/32857.html</guid><wfw:comment>http://www.cnitblog.com/gavinkin555/comments/32857.html</wfw:comment><comments>http://www.cnitblog.com/gavinkin555/articles/32857.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/gavinkin555/comments/commentRss/32857.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/gavinkin555/services/trackbacks/32857.html</trackback:ping><description><![CDATA[<p><font style="BACKGROUND-COLOR: #ffffff">jsp:usebean action 的使用 <br>一、 语法： <br>&lt;jsp:usebean <br>id="beaninstancename" <br>scope="page|request|session|application" <br>&lt; class="package.class" | <br>type="package.class" | <br>class="package.class" type="package.class" | <br>beanname="" type="package.class" <br>&gt; <br>&lt; /&gt; | <br>&gt; 其他元素 <br>&lt;/jsp:usebean&gt; <br>&gt; </font></p>
<p><font style="BACKGROUND-COLOR: #ffffff"></font>&nbsp;</p>
<p><font style="BACKGROUND-COLOR: #ffffff"><strong><u><font color=#ff0000>这个action使您能将一个javabean装入一个jsp页面。这是一个非常有用的能力，因为它使您可以使用可重用的java类而不需牺牲性能。</font></u></strong></font></p>
<p><font style="BACKGROUND-COLOR: #ffffff"><strong><u><font color=#ff0000></font></u></strong>&nbsp;</font></p>
<p>最简单的语法用于指定一个bean： <br>&lt;jsp:usebean id="name" class="package.class" /&gt; <br>这通常意味着&#8220;实例化一个类的对象通过指定一个类，并将之与一个通过id指定名称的变量绑定&#8221;。</p>
<p>然而，就象我们看到的，您可以指定一个scope属性来使得bean不仅仅与当前的页面相联系。在这种情形下，得到一个对已存在的bean的引用是非常有用的，而且，仅当没有相同的id和scope的bean存在时才创建一个新的。现在，您已有了bean，您可以通过jsp:setproperty来修改它，或者，通过使用之前用id指定的名字来使用scriptlet或明确的调用方法。</p>
<p>当您说&#8220;这个bean有一个称为foo的x类型的属性&#8221;，您真正的意思是&#8220;这个类有一个称为getfoo的方法，它返回x类型的某类值，还有另一个方法称为setfoo，它以x为参数。&#8221;这jsp:setproperty action 将在下一单元详细的介绍，但是现在您既可以给出一个明确的值，给出一个属性来说明此值是从request的参数继承而来，也可以仅仅列出属性来标志此值应该从与属性名同名的参数继承而来。您可以通过调用适用的getxxx方法，或更普遍的，使用jsp:getproperty action，来得到已存在的jsp表达式或scriptlet属性。 <br></p>
<p>请注意，为bean指定的类必须在服务器的规虻睦嗦肪断拢皇怯美幢Ａ舻备谋涫弊远霸氐睦嗟穆肪丁＠纾趈ava web server上，它和它所用的类必须到类的目录或在lib目录下的一个jar文件内，而不是在servlets的目录下。</p>
<p>二、jsp:usebean 的详细用法 </p>
<p>最简单的使用bean的方式是： <br><br>&lt;jsp:usebean id="name" class="package.class"/&gt; <br>为了装载bean，需要用jsp:setproperty和 jsp:getproperty来修改和检索bean的属性。且，还有两种别的选项。首先，您可以使用容器的格式，也就是： <br><br>&lt;jsp:usebean ...&gt; <br>body <br>&lt;/jsp:usebean&gt; <br><br>要指出的是，body部分应该仅在bean第一次实例化时被执行，而不是在每次被找到和使用时。beans能够被共享，因此，并不是所有的jsp:usebean 陈述都产生一个新的bean的实例。其次，除了id 或class以外，还有三种属性您可以使用：scope,type,和beanname。这些属性总结如下： <br><br>属性 <br><br>用法 <br><br>id <br>给一个变量命名，此变量将指向bean。如果发现存在一个具有相同的id和scope 的bean则使用之而不新建一个。 <br><br>class <br>指出bean的完整的包名。 <br><br>scope <br>指明bean在之上可以被使用的前后关系。有四个可能的值：page,request,session,和application。缺省为page，表明bean仅在当前页可用（保存在当前的pagecontext中）。request的一个值表明bean仅用于当前客户端的请求（保存在servletrequest对象中）。session的值指出在当前的httpsession的生命周期内，对象对所有的页面可用。 最后，application的值指出对象对所有共享servletscontext的页面可以使用。使用jsp:usebean 仅在没有相同的id和scope 的bean时创建一个新的bean，如果已有则使用之，并忽略以jsp:usebean标志开始和结尾的代码。 <br><br>beanname <br>赋予bean一个名字，您应该在beans的实例化方法中提供。它允许您给出type和一个beanname,并省略类属性。</p>
<p>&nbsp;</p>
<p>三、jsp:setproperty action <br>&lt;jsp:setproperty <br>name="beaninstancename" <br>&lt; property="*" | <br>property="propertyname" [ param="parametername" ] | <br>property="propertyname" value="" <br>&gt; <br>/&gt; <br></p>
<p>在前面我们就知道了可以使用 <font color=#ff0000>jsp:setproperty 来为一个bean的属性赋值</font>。您可以使用两种方式实现它。其一是，在jsp:usebean后（而不是在之内）使用jsp:setproperty： <br></p>
<p>&lt;jsp:usebean id="myname" ... /&gt; <br>... <br>&lt;jsp:setproperty name="myname" <br>property="someproperty" ... /&gt; <br>在这种方式中，jsp:setproperty 将被执行无论是否已有一个具有相同的id和scope的bean存在。</p>
<p>另一种方式是，jsp:setproperty出现在jsp:usebean 元素内，如： <br>&lt;jsp:usebean id="myname" ... &gt; <br>... <br>&lt;jsp:setproperty name="myname" <br>property="someproperty" ... /&gt; <br>&lt;/jsp:usebean&gt; </p>
<p>此种情况下，jsp:setproperty仅在新的对象被实例化时才执行。 <br>以下是四种jsp:setproperty的可用的属性： <br><br>属性 <br><br>用法 <br><br>name <br>这是一个必选属性。它指出哪一个bean的属性将被设置。jsp:usebean必须出现在jsp:setproperty之前。 <br><br>property <br>这是一个必选属性。表明您将设置哪一个属性。然而，有一个特殊的情况：如果以"*"为值意味着，所有的名称与bean的属性匹配的request参数都将被传递到相应的属性设置方法。 </p>
<p><br>value <br>这是一个可选属性。它指定被设置的属性的值。字符串的值通过相应的对象或包的标准的valueof方法将自动的转换为numbers,boolean,boolean,byte,byte,char,和character。例如，boolean或boolean属性的值&#8220;true&#8221;将通过boolean.valueof方法转化，而，一个int或integer属性的值&#8220;42&#8221;将通过integer.valueof转化。您不能同时使用value和param属性，但，两个都不用是允许的。 </p>
<p>param <br>这是一个可选属性。它指明了bean的属性应该继承的request的参数。如果当前的request没有这样的一个参数，就什麽也不做：系统并不将null传给设置属性的方法。因此，您可以使用bean的缺省值。例如下面的这段程序执行&#8220;将numberofitems属性设置为任意numitems request参数的值，如果有这样的一个request参数，否则什么也不做。&#8221; <br>&lt;jsp:setproperty name="orderbean" <br><br>property="numberofitems"<br><br>param="numitems" /&gt;</p>
<p>如果您将value和param同时缺省，这和您将param的名称设为bean的属性名相同一样。您可以通过将name的值设置为&#8221;*&#8221;和省略value和param来自动的使用与bean的属性相应的request的属性。在这种情况下，服务器将反复的查找可用的属性和request参数来匹配具有相同名字的。<br></p>
<p>四、jsp:getproperty action<br><br>　　语法：<br><br>　　&lt;jsp:getproperty name="beaninstancename" property="propertyname" /&gt;<br><br>　　这个属性检索出bean的属性的值并将之转化为一个字符串，然后将之插入到输出。它有两个必选属性：name，在之前用jsp:usebean引入的名称，property，必须被插入值的属性。<br><br></p>
<img src ="http://www.cnitblog.com/gavinkin555/aggbug/32857.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/gavinkin555/" target="_blank">gavinkin555</a> 2007-09-03 15:04 <a href="http://www.cnitblog.com/gavinkin555/articles/32857.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>