﻿<?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博客-love-随笔分类-java学习日记</title><link>http://www.cnitblog.com/iniboy/category/2316.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 28 Sep 2011 18:09:16 GMT</lastBuildDate><pubDate>Wed, 28 Sep 2011 18:09:16 GMT</pubDate><ttl>60</ttl><item><title>javascript事件函数绑定</title><link>http://www.cnitblog.com/iniboy/archive/2007/03/16/24120.html</link><dc:creator>青</dc:creator><author>青</author><pubDate>Fri, 16 Mar 2007 08:17:00 GMT</pubDate><guid>http://www.cnitblog.com/iniboy/archive/2007/03/16/24120.html</guid><wfw:comment>http://www.cnitblog.com/iniboy/comments/24120.html</wfw:comment><comments>http://www.cnitblog.com/iniboy/archive/2007/03/16/24120.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/iniboy/comments/commentRss/24120.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/iniboy/services/trackbacks/24120.html</trackback:ping><description><![CDATA[
		<p>比如说函数<br />function buttonOnclickHandler(event){<br />var data=calculate();<br />showData(dataTable,data);<br />}<br />function ajaxOnloadHandler(){<br />var data=calculate();<br />showData(otherDataTable,data);<br />}<br />function calculate(){<br />var data=new Array();<br />data[0]=6;<br />data[1]=data[0]/3;<br />data[2]=data[0]*data[1]+7;<br />return data;<br />}<br />function showData(table,data){<br />var newRow=createTableRow(table);<br />for (var i=0;i&lt;data.length;i++){<br />createTableCell(newRow,data[i]);<br />}<br />}<br />如果同一个按钮的单击事件或页面载入事件绑定要这样写:<br />buttonDiv.onclick=buttonOnclickHandler;<br />poller.onload=ajaxOnloadHandler;<br />而不能写成:<br />buttonDiv.onclick=buttonOnclickHandler(event);<br />poller.onload=ajaxOnloadHandler();<br />还要特别注意这种写法:<br />window.onload=function(){<br />var hello=document.getElementById('hello');<br />hello.className='declared';<br />debugger;<br />var empty=document.getElementById('empty');<br />addNode(empty,"Visiter of");<br />addNode(empty,"WebCast");<br />var children=empty.childNodes;<br />for (var i=0;i&lt;children.length;i++){<br />children[i].className='programmed';<br />}<br />empty.style.border='solid green 2px';<br />empty.style.width="200px";</p>
		<p>}<br />function addNode(el,text){<br />var childEl=document.createElement("div");<br />el.appendChild(childEl);<br />var txtNode=document.createTextNode(text);<br />childEl.appendChild(txtNode);<br />}<br /></p>
<img src ="http://www.cnitblog.com/iniboy/aggbug/24120.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/iniboy/" target="_blank">青</a> 2007-03-16 16:17 <a href="http://www.cnitblog.com/iniboy/archive/2007/03/16/24120.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>样式表</title><link>http://www.cnitblog.com/iniboy/archive/2007/03/16/24119.html</link><dc:creator>青</dc:creator><author>青</author><pubDate>Fri, 16 Mar 2007 08:12:00 GMT</pubDate><guid>http://www.cnitblog.com/iniboy/archive/2007/03/16/24119.html</guid><wfw:comment>http://www.cnitblog.com/iniboy/comments/24119.html</wfw:comment><comments>http://www.cnitblog.com/iniboy/archive/2007/03/16/24119.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/iniboy/comments/commentRss/24119.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/iniboy/services/trackbacks/24119.html</trackback:ping><description><![CDATA[
		<p>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>"&gt;<br />&lt;html xmlns="<a href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>" &gt;<br />&lt;head&gt;<br />    &lt;title&gt;Keyboard&lt;/title&gt;<br />    &lt;link rel="stylesheet" type="text/css" href="Music.css" /&gt;<br />    &lt;script type="text/javascript" src="Music.js"&gt;&lt;/script&gt;<br />    &lt;script type="text/javascript"&gt;    <br />    ///window.onload=assignKeys;<br />    &lt;/script&gt;<br />&lt;/head&gt;<br />&lt;body&gt;<br />&lt;div id='keyboard' class='musicKeys'&gt;<br />&lt;div class='do musicButton'&gt;&lt;/div&gt;<br />&lt;div class='re musicButton'&gt;&lt;/div&gt;<br />&lt;div class='mi musicButton'&gt;&lt;/div&gt;<br />&lt;div class='fa musicButton'&gt;&lt;/div&gt;<br />&lt;div class='so musicButton'&gt;&lt;/div&gt;<br />&lt;div class='la musicButton'&gt;&lt;/div&gt;<br />&lt;div class='xi musicButton'&gt;&lt;/div&gt;<br />&lt;div class='do musicButton'&gt;&lt;/div&gt;<br />&lt;/div&gt;<br />&lt;div id='console' class='console'&gt;<br />&lt;/div&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;<br /><br />对上面的Music.css的写法如下:<br /><br />body <br />{<br /> background-color:white;<br />}<br />.musicKeys<br />{<br /> background-color:Gray;<br /> border :solid maroom 2px;<br /> width:536px;<br /> height:69px;<br /> top:24px;<br /> left:24px;<br /> margin:4px;<br /> position:absolute;<br /> overflow:auto;<br />}</p>
		<p>.musicButton<br />{<br /> border :solid navy 1px;<br /> width:60px;<br /> height:60px;<br /> position:relative;<br /> margin:2px;<br /> float:left;<br />}<br />.do{background-color:Red;}<br />.re{background-color:orange;}<br />.mi{background-color:yellow;}<br />.fa{background-color:green;}<br />.so{background-color:blue;}<br />.la{background-color:indige;}<br />.xi{background-color:violet;}<br />.do{background-color:Red;}<br />div.console<br />{font-family:@Arial Unicode MS;<br /> font-size:16px;<br /> color:Navy;<br /> background-color:White;<br /> border:solid navy 2px;<br /> width:536px;<br /> height:320px;<br /> top :106px;<br /> left:24px;<br /> margin:4px;<br /> position:absolute;<br /> overflow:auto;<br />}</p>
<img src ="http://www.cnitblog.com/iniboy/aggbug/24119.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/iniboy/" target="_blank">青</a> 2007-03-16 16:12 <a href="http://www.cnitblog.com/iniboy/archive/2007/03/16/24119.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>很好的总结</title><link>http://www.cnitblog.com/iniboy/archive/2007/03/03/23519.html</link><dc:creator>青</dc:creator><author>青</author><pubDate>Sat, 03 Mar 2007 06:48:00 GMT</pubDate><guid>http://www.cnitblog.com/iniboy/archive/2007/03/03/23519.html</guid><wfw:comment>http://www.cnitblog.com/iniboy/comments/23519.html</wfw:comment><comments>http://www.cnitblog.com/iniboy/archive/2007/03/03/23519.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/iniboy/comments/commentRss/23519.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/iniboy/services/trackbacks/23519.html</trackback:ping><description><![CDATA[1、Iterator可以删除元素，而Enumeration不能;<br />    2、Vertor可以线程同步，安全，但效率较低，而ArrayList不同步，效率高,使用ArrayList创建一个大小固定的List，运行比其他的list要快;<br />         3、List是一个能包含重复元素的已排序的Collection，有时也称序列。和数组一样，都基于0开始的。<br />   List接口是由Arraylist类，LinkedList类和Vector类实现的;.<br />   Collections类是用来操纵List的,有reverse,fill,copy,max,min,binarySearch等等方法.<br />  4、Set是没有重复元素的，集合框架含有set的两种实现:HashSet和TreeSet。<br />     HashSet把它的元素存储在哈希表中,TreeSet把它的元素存储在树中。可以使用HashSet从ArrayList删除重复<br />  5、Map把键和值联系起来，不包含重复的键（每一个键只能映射到一个值，即是一对一的关系，这称为一对一关系）。Map和Set的不同之处在于Map包含键和值，而Set只包含键。HaspMap 类和TreeMap类实现了Map接口. HashMap把它的元素存储在哈希表中,TreeMap把它的元素存储在树中。<br /><br />6、MVC<br />   Struts-------理解Struts实现MVC的机制、工作流程。掌握配置Struts应用、Struts控制器组件、Struts视图组件、Struts应用的国际化、Validator验证框架、异常处理、Struts标签库。<br />          Spring-------掌握控制反转（IoC）、面向方面编程（AOP）、命名服务(JNDI)、事务服务(JTA)、邮件服务（JavaMail）、持久化服务(DAO、JDBC、ORM)、远程服务(RMI)。<br />          Hibernate--------理解ORM，掌握映射对象标识符、映射关系（一对多、多对多、一对一）、映射类型、检索策略、检索方式、数据库事务与并发、管理Hibernate的缓存。  <br />           JSF-------理解受管理Bean、导航、标准的JSF标签、转换和验证、事件处理、子视图和Tiltes、自定义组件。<br />               学习过程：先学习Struts，再学习Hibernate，最后学Spring。<br />          了解一下:log4j,lucene等开源的项目<br /><img src ="http://www.cnitblog.com/iniboy/aggbug/23519.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/iniboy/" target="_blank">青</a> 2007-03-03 14:48 <a href="http://www.cnitblog.com/iniboy/archive/2007/03/03/23519.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ServletOutputStream</title><link>http://www.cnitblog.com/iniboy/archive/2006/06/29/13034.html</link><dc:creator>青</dc:creator><author>青</author><pubDate>Thu, 29 Jun 2006 02:35:00 GMT</pubDate><guid>http://www.cnitblog.com/iniboy/archive/2006/06/29/13034.html</guid><wfw:comment>http://www.cnitblog.com/iniboy/comments/13034.html</wfw:comment><comments>http://www.cnitblog.com/iniboy/archive/2006/06/29/13034.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/iniboy/comments/commentRss/13034.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/iniboy/services/trackbacks/13034.html</trackback:ping><description><![CDATA[API对象的说明<br />这一部分包含了对Java Servlet API的全部类和接口的详细说明。这个说明与Javadoc API差不多，但是这份文档提供了更多的信息。<br />API包含了两个软件包，十二个接口和九个类。<br />软件包：javax.servlet <br />所包含的接口：RequestDispatcher；Servlet；ServletConfig；ServletContext；ServletRequest；ServletResponse；SingleThreadModel。<br />所包含的类：GenericServlet；ServletInputStream；ServletOutputStream；ServletException；UnavailableException。 
<p>一、RequestDispatcher接口：<br />定义：<br />public interface RequestDispatcher;<br />定义一个对象，从客户端接收请求，然后将它发给服务器的可用资源（例如Servlet、CGI、HTML文件、JSP文件）。Servlet引擎创建request dispatcher对象，用于封装由一个特定的URL定义的服务器资源。<br />这个接口是专用于封装Servlet的，但是一个Servlet引擎可以创建request dispatcher对象用于封装任何类型的资源。<br />request dispatcher对象是由Servlet引擎建立的，而不是由Servlet开发者建立的。 <br />方法<br />1、forward<br />public void forward(ServletRequest request, ServletReponse response)<br />throws ServletException, IOException;<br />被用来从这个Servlet向其它服务器资源传递请求。当一个Servlet对响应作了初步的处理，并要求其它的对象对此作出响应时，可以使用这个方法。<br />当request对象被传递到目标对象时，请求的URL路径和其他路径参数会被调整为反映目标对象的目标URL路径。<br />如果已经通过响应返回了一个ServletOutputStream对象或PrintWriter对象，这个方法将不能使用，否则，这个方法会抛出一个IllegalStateException。<br />2、include<br />public void include(ServletRequest request, ServletResponse response)<br />throws ServletException, IOException<br />用来包括发送给其他服务器资源的响应的内容。本质上来说，这个方法反映了服务器端的内容。<br />请求对象传到目标对象后会反映调用请求的请求URL路径和路径信息。这个响应对象只能调用这个Servlet的ServletOutputStream对象和PrintWriter对象。<br />一个调用include的Servlet不能设置头域，如果这个Servlet调用了必须设置头域的方法（例如cookie），这个方法将不能保证正常使用。作为一个Servlet开发者，你必须妥善地解决那些可能直接存储头域的方法。例如，即使你使用会话跟踪，为了保证session的正常工作，你必须在一个调用include的Servlet之外开始你的session</p><p>二、Servlet接口。<br />定义<br />public interface Servlet<br />这个接口定义了一个Servlet：一个在Web服务器上继承了这个功能的Java类。<br />方法<br />1、init<br />public void init(ServletConfig config) throws ServletException;<br />Servlet引擎会在Servlet实例化之后，置入服务之前精确地调用init方法。在调用service方法之前，init方法必须成功退出。<br />如果init方法抛出一个ServletException，你不能将这个Servlet置入服务中，如果init方法在超时范围内没完成，我们也可以假定这个Servlet是不具备功能的，也不能置入服务中。<br />2、service<br />public void service(ServletRequest request, ServletResponse response)<br />throws ServletException, IOException;<br />Servlet引擎调用这个方法以允许Servlet响应请求。这个方法在Servlet未成功初始化之前无法调用。在Servlet被初始化之前，Servlet引擎能够封锁未决的请求。<br />在一个Servlet对象被卸载后，直到一个新的Servelt被初始化，Servlet引擎不能调用这个方法<br />3、destroy<br />public void destroy();<br />当一个Servlet被从服务中去除时，Servlet引擎调用这个方法。在这个对象的service方法所有线程未全部退出或者没被引擎认为发生超时操作时，destroy方法不能被调用。<br />4、getServletConfig<br />public ServletConfig getServletConfig();<br />返回一个ServletConfig对象，作为一个Servlet的开发者，你应该通过init方法存储ServletConfig对象以便这个方法能返回这个对象。为了你的便利，GenericServlet在执行这个接口时，已经这样做了。<br />5、getServletInfo<br />public String getServletInfo();<br />允许Servlet向主机的Servlet运行者提供有关它本身的信息。返回的字符串应该是纯文本格式而不应有任何标志（例如HTML，XML等）。</p><p>三、ServletConfig接口<br />定义<br />public interface ServletConfig<br />这个接口定义了一个对象，通过这个对象，Servlet引擎配置一个Servlet并且允许Servlet获得一个有关它的ServletContext接口的说明。每一个ServletConfig对象对应着一个唯一的Servlet。<br />方法<br />1、getInitParameter<br />public String getInitParameter(String name);<br />这个方法返回一个包含Servlet指定的初始化参数的String。如果这个参数不存在，返加空值。<br />2、getInitParameterNames<br />public Enumeration getInitParameterNames();<br />这个方法返回一个列表String对象，该对象包括Servlet的所有初始化参数名。如果Servlet没有初始化参数，getInitParameterNames返回一个空的列表。<br />3、getServletContext<br />public ServletContext getServletContext();<br />返回这个Servlet的ServletContext对象。</p><p>四、ServletContext接口<br />定义<br />public interface ServletContext<br />定义了一个Servlet的环境对象，通过这个对象，Servlet引擎向Servlet提供环境信息。<br />一个Servlet的环境对象必须至少与它所驻留的主机是一一对应的。在一个处理多个虚拟主机的Servlet引擎中（例如，使用了HTTP1.1的主机头域），每一个虚拟主机必须被视为一个单独的环境。此外，Servlet引擎还可以创建对应于一组Servlet的环境对象。<br />方法 <br />1、getAttribute<br />public Object getAttribute(String name); <br />返回Servlet环境对象中指定的属性对象。如果该属性对象不存在，返回空值。这个方法允许访问有关这个Servlet引擎的在该接口的其他方法中尚未提供的附加信息。<br />2、getAttributeNames<br />public Enumeration getAttributeNames();<br />返回一个Servlet环境对象中可用的属性名的列表。<br />3、getContext<br />public ServletContext getContext(String uripath);<br />返回一个Servlet环境对象，这个对象包括了特定URI路径的Servlets和资源，如果该路径不存在，则返回一个空值。URI路径格式是/dir/dir/filename.ext。<br />为了安全，如果通过这个方法访问一个受限制的Servlet的环境对象，会返回一个空值。<br />4、getMajorVersion<br />public int getMajorVersion();<br />返回Servlet引擎支持的Servlet API的主版本号。例如对于2.1版，这个方法会返回一个整数2。<br />5、getMinorVersion<br />public int getMinorVersion();<br />返回Servlet引擎支持的Servlet API的次版本号。例如对于2.1版，这个方法会返回一个整数2。<br />6、getMimeType<br />public String getMimeType(String file);<br />返回指定文件的MIME类型，如果这种MIME类型未知，则返回一个空值。MIME类型是由Servlet引擎的配置决定的。<br />7、getRealPath<br />public String getRealPath(String path);<br />一个符合URL路径格式的指定的虚拟路径的格式是：/dir/dir/filename.ext。用这个方法，可以返回与一个符合该格式的虚拟路径相对应的真实路径的String。这个真实路径的格式应该适合于运行这个Servlet引擎的计算机（包括其相应的路径解析器）。<br />不管是什么原因，如果这一从虚拟路径转换成实际路径的过程不能执行，该方法将会返回一个空值。<br />8、getResource<br />public URL getResource(String uripath);<br />返回一个URL对象，该对象反映位于给定的URL地址（格式：/dir/dir/filename.ext）的Servlet环境对象已知的资源。无论URLStreamHandlers对于访问给定的环境是不是必须的，Servlet引擎都必须执行。如果给定的路径的Servlet环境没有已知的资源，该方法会返回一个空值。<br />这个方法和java.lang.Class的getResource方法不完全相同。java.lang.Class的getResource方法通过装载类来寻找资源。而这个方法允许服务器产生环境变量给任何资源的任何Servlet，而不必依赖于装载类、特定区域等等。<br />9、getResourceAsStream<br />public InputStream getResourceAsStream(String uripath);<br />返回一个InputStream对象，该对象引用指定的URL的Servlet环境对象的内容。如果没找到Servlet环境变量，就会返回空值，URL路径应该具有这种格式：/dir/dir/filename.ext。<br />这个方法是一个通过getResource方法获得URL对象的方便的途径。请注意，当你使用这个方法时，meta-information（例如内容长度、内容类型）会丢失。<br />10、getRequestDispatcher<br />public RequestDispatcher getRequestDispatcher(String uripath);<br />如果这个指定的路径下能够找到活动的资源(例如一个Servlet，JSP页面，CGI等等)就返回一个特定URL的RequestDispatcher对象，否则，就返回一个空值，Servlet引擎负责用一个request dispatcher对象封装目标路径。这个request dispatcher对象可以用来完全请求的传送。<br />11、getServerInfo<br />public String getServerInfo();<br />返回一个String对象，该对象至少包括Servlet引擎的名字和版本号。<br />12、log<br />public void log(String msg);<br />public void log(String msg, Throwable t);<br />public void log(Exception exception, String msg); // 这种用法将被取消<br />写指定的信息到一个Servlet环境对象的log文件中。被写入的log文件由Servlet引擎指定，但是通常这是一个事件log。当这个方法被一个异常调用时，log中将包括堆栈跟踪。<br />13、setAttribute<br />public void setAttribute(String name, Object o);<br />给予Servlet环境对象中你所指定的对象一个名称。<br />14、removeAttribute<br />public void removeAttribute(String name);<br />从指定的Servlet环境对象中删除一个属性。<br />注：以下几个方法将被取消<br />15、getServlet<br />public Servlet getServlet(String name) throws ServletException;<br />最初用来返回一个指定名称的Servlet，如果没找到就返回一个空值。如果这个Servlet能够返回，这就意味着它已经被初始化，而且已经可以接受service请求。<br />这是一个危险的方法。当调用这个方法时，可能并不知道Servlet的状态，这就可能导致有关服务器状态的问题。而允许一个Servlet访问其他Servlet的这个方法也同样的危险。<br />现在这个方法返回一个空值，为了保持和以前版本的兼容性，现在这个方法还没有被取消。在以后的API版本中，该方法将被取消。<br />16、getServletNames<br />public Enumeration getServletNames();<br />最初用来返回一个String对象的列表，该列表表示了在这个Servlet环境下所有已知的Servlet对象名。这个列表总是包含这个Servlet自身。<br />基于与上一个方法同样的理由，这也是一个危险的方法。<br />现在这个方法返回一个空的列表。为了保持和以前版本的兼容性，现在这个方法还没有被取消。在以后的API版本中，该方法将被取消。<br />17、getServlets<br />public Enumeration getServlets();<br />最初用来返回在这个Servelet环境下所有已知的Servlet对象的列表。这个列表总是包含这个Servlet自身。<br />基于与getServlet方法同样的理由，这也是一个危险的方法。 <br />现在这个方法返回一个空的列表。为了保持和以前版本的兼容性，现在这个方法还没有被取消。在以后的API版本中，该方法将被取消。</p><p>五、ServletRequest接口<br />定义<br />public interface ServletRequest<br />定义一个Servlet引擎产生的对象，通过这个对象，Servlet可以获得客户端请求的数据。这个对象通过读取请求体的数据提供包括参数的名称、值和属性以及输入流的所有数据。<br />方法<br />1、getAttribute<br />public Object getAttribute(String name);<br />返回请求中指定属性的值，如果这个属性不存在，就返回一个空值。这个方法允许访问一些不提供给这个接口中其他方法的请求信息以及其他Servlet放置在这个请求对象内的数据。<br />2、getAttributeNames<br />public Enumeration getAttributeNames();<br />返回包含在这个请求中的所有属性名的列表。<br />3、getCharacterEncoding<br />public String getCharacterEncoding();<br />返回请求中输入内容的字符编码类型，如果没有定义字符编码类型就返回空值。<br />4、getContentLength<br />public int getContentLength();<br />请求内容的长度，如果长度未知就返回-1。<br />5、getContentType<br />public String getContentType();<br />返回请求数据体的MIME类型，如果类型未知返回空值。<br />6、getInputStream<br />public ServletInputStream getInputStream() throws IOException;<br />返回一个输入流用来从请求体读取二进制数据。如果在此之前已经通过getReader方法获得了要读取的结果，这个方法会抛出一个IllegalStateException。<br />7、getParameter<br />public String getParameter(String name);<br />以一个String返回指定的参数的值，如果这个参数不存在返回空值。例如，在一个HTTP Servlet中，这个方法会返回一个指定的查询语句产生的参数的值或一个被提交的表单中的参数值。如果一个参数名对应着几个参数值，这个方法只能返回通过getParameterValues方法返回的数组中的第一个值。因此，如果这个参数有（或者可能有）多个值，你只能使用getParameterValues方法。<br />8、getParameterNames<br />public Enumeration getParameterNames();<br />返回所有参数名的String对象列表，如果没有输入参数，该方法返回一个空值。<br />9、getParameterValues<br />public String[] getParameterValues(String name);<br />通过一个String对象的数组返回指定参数的值，如果这个参数不存在，该方法返回一个空值。<br />10、getProtocol<br />public String getProtocol();<br />返回这个请求所用的协议，其形式是协议/主版本号.次版本号。例如对于一个HTTP1.0的请求，该方法返回HTTP/1.0。<br />11、getReader<br />public BufferedReader getReader() throws IOException;<br />这个方法返回一个buffered reader用来读取请求体的实体，其编码方式依照请求数据的编码方式。如果这个请求的输入流已经被getInputStream调用获得，这个方法会抛出一个IllegalStateException。<br />12、getRemoteAddr<br />public String getRemoteAddr();<br />返回发送请求者的IP地址。<br />13、getRemoteHost<br />public String getRemoteHost();<br />返回发送请求者的主机名称。如果引擎不能或者选择不解析主机名（为了改善性能），这个方法会直接返回IP地址。<br />14、getScheme<br />public String getScheme();<br />返回请求所使用的URL的模式。例如，对于一个HTTP请求，这个模式就是http。<br />15、getServerName<br />public String getServerName();<br />返回接收请求的服务器的主机名。<br />16、getServerPort<br />public int getServerPort();<br />返回接收请求的端口号。<br />17、setAttribute<br />public void setAttribute(String name, Object object);<br />这个方法在请求中添加一个属性，这个属性可以被其他可以访问这个请求对象的对象（例如一个嵌套的Servlet）使用。<br />注：以下方法将被取消<br />getRealPath<br />public String getRealPath(String path);<br />返回与虚拟路径相对应的真实路径，如果因为某种原因，这一过程不能进行，该方法将返回一个空值。<br />这个方法和ServletContext接口中的getRealPath方法重复。在2.1版中，ServletContext接口将阐明一个Servlet所能用的所有的路径的映射。该方法执行的结果将会与ServletContext中getRealPath方法的结果完全一样。</p><p>六、ServletResponse接口<br />定义<br />public interface ServletResponse<br />定义一个Servlet引擎产生的对象，通过这个对象，Servlet对客户端的请求作出响应。这个响应应该是一个MIME实体，可能是一个HTML页、图象数据或其他MIME的格式。<br />方法<br />1、getCharacterEncoding<br />public String getCharacterEncoding();<br />返回MIME实体的字符编码。这个字符编码可以是指定的类型，也可以是与请求头域所反映的客户端所能接受的字符编码最匹配的类型。在HTTP协议中，这个信息被通过Accept-Charset传送到Servlet引擎。<br />有关字符编码和MIME的更多信息请参看RFC 2047。<br />2、getOutputStream<br />public ServletOutputStream getOutputStream() throws IOException;<br />返回一个记录二进制的响应数据的输出流。<br />如果这个响应对象已经调用getWriter，将会抛出IllegalStateException。<br />3、getWriter<br />public PrintWriter getWriter throws IOException;<br />这个方法返回一个PringWriter对象用来记录格式化的响应实体。如果要反映使用的字符编码，必须修改响应的MIME类型。在调用这个方法之前，必须设定响应的content类型。<br />如果没有提供这样的编码类型，会抛出一个UnsupportedEncodingException，如果这个响应对象已调用getOutputStream，会抛出一个getOutputStream。<br />4、setContentLength<br />public void setContentLength(int length);<br />设置响应的内容的长度，这个方法会覆盖以前对内容长度的设定。<br />为了保证成功地设定响应头的内容长度，在响应被提交到输出流之前必须调用这个方法。<br />5、setContentType<br />public void setContentType(String type);<br />这个方法用来设定响应的content类型。这个类型以后可能会在另外的一些情况下被隐式地修改，这里所说的另外的情况可能当服务器发现有必要的情况下对MIME的字符设置。<br />为了保证成功地设定响应头的content类型，在响应被提交到输出流之前必须调用这个方法。</p><p>七、SingleThreadModel接口<br />定义<br />public interface SingleThreadModel;<br />这是一个空接口，它指定了系统如何处理对同一个Servlet的调用。如果一个Servlet被这个接口指定，那么在这个Servlet中的service方法中将不会有两个线程被同时执行。<br />Servlet可以通过维持一个各自独立的Servlet实例池，或者通过只让Servlet的service中只有一个线程的方法来实现这个保证。</p><p>八、GenericServlet类<br />public abstract class GenericServlet implements Servlet,<br />ServletConfig, Serializable;<br />这个类的存在使得编写Servlet更加方便。它提供了一个简单的方案，这个方案用来执行有关Servlet生命周期的方法以及在初始化时对ServletConfig对象和ServletContext对象进行说明。<br />方法<br />1、destroy<br />public void destroy();<br />在这里destroy方法不做任何其他的工作。<br />2、getInitParameter<br />public String getInitParameter(String name);<br />这是一个简便的途径，它将会调用ServletConfig对象的同名的方法。<br />3、getInitParameterNames<br />public Enumeration getInitParameterNames();<br />这是一个简便的途径，它将会调用ServletConfig对象的同名的方法。<br />4、getServletConfig<br />public ServletConfig getServletConfig();<br />返回一个通过这个类的init方法产生的ServletConfig对象的说明。<br />5、getServletContext<br />public ServletContext getServletContext();<br />这是一个简便的途径，它将会调用ServletConfig对象的同名的方法。<br />6、getServletInfo<br />public String getServletInfo();<br />返回一个反映Servlet版本的String。<br />7、init<br />public void init() throws ServletException;<br />public void init(ServletConfig config) throws ServletException;<br />init(ServletConfig config)方法是一个对这个Servlet的生命周期进行初始化的简便的途径。 <br />init()方法是用来让你对GenericServlet类进行扩充的，使用这个方法时，你不需要存储config对象，也不需要调用super.init(config)。<br />init(ServletConfig config)方法会存储config对象然后调用init()。如果你重载了这个方法，你必须调用super.init(config)，这样GenericServlet类的其他方法才能正常工作。<br />8、log<br />public void log(String msg);<br />public void log(String msg, Throwable cause);<br />通过Servlet content对象将Servlet的类名和给定的信息写入log文件中。<br />9、service<br />public abstract void service(ServletRequest request, ServletResponse<br />response) throws ServletException, IOException;<br />这是一个抽象的方法，当你扩展这个类时，为了执行网络请求，你必须执行它。</p><p>九、ServletInputStream类<br />定义<br />public abstract class ServletInputStream extends InputStream<br />这个类定义了一个用来读取客户端的请求信息的输入流。这是一个Servlet引擎提供的抽象类。一个Servlet通过使用ServletRequest接口获得了对一个ServletInputStream对象的说明。<br />这个类的子类必须提供一个从InputStream接口读取有关信息的方法。<br />方法<br />1、readLine<br />public int readLine(byte[] b, int off, int len) throws IOException;<br />从输入流的指定的偏移量开始将指定长度的字节读入到指定的数组中。如果该行所有请求的内容都已被读取，这个读取的过程将结束。如果是遇到了新的一行，新的一行的首个字符也将被读入到数组中。</p><p>十、ServletOutputStream类<br />定义<br />public abstract class ServletOutputStream extends OutputStream<br />这是一个由Servlet引擎使用的抽象类。Servlet通过使用ServletResponse接口的使用获得了对一个这种类型的对象的说明。利用这个输出流可以将数据返回到客户端。<br />这个类的子类必须提供一个向OutputStream接口写入有关信息的方法。<br />在这个接口中，当一个刷新或关闭的方法被调用时。所有数据缓冲区的信息将会被发送到客户端，也就是说响应被提交了。请注意，关闭这种类型的对象时不一定要关闭隐含的socket流。<br />方法<br />1、print<br />public void print(String s) throws IOException;<br />public void print(boolean b) throws IOException;<br />public void print(char c) throws IOException;<br />public void print(int i) throws IOException;<br />public void print(long l) throws IOException;<br />public void print(float f) throws IOException;<br />public void print(double d) throws IOException;<br />输出变量到输出流中<br />2、println<br />public void println() throws IOException;<br />public void println(String s) throws IOException;<br />public void println(boolean b) throws IOException;<br />public void println(char c) throws IOException;<br />public void println(int i) throws IOException;<br />public void println(long l) throws IOException;<br />public void println(float f) throws IOException;<br />public void println(double d) throws IOException;<br />输出变量到输出流中，并增加一个回车换行符</p><p>十一、ServletException类<br />定义<br />public class ServletException extends Exception<br />当Servlet遇到问题时抛出的一个异常。<br />构造函数<br />public ServletException();<br />public ServletException(String message);<br />public ServletException(String message, Throwable cause);<br />public ServletException(Throwable cause);<br />构造一个新的ServletException，如果这个构造函数包括一个Throwable参数，这个Throwable对象将被作为可能抛出这个异常的原因。<br />方法<br />1、getRootCause<br />public Throwable getRootCause();<br />如果配置了抛出这个异常的原因，这个方法将返回这个原因，否则返回一个空值。</p><p>十二、UnavailableException类<br />定义<br />public class UnavailableException extends ServletException<br />不论一个Servlet是永久地还是临时地无效，都会抛出这个异常。Servlet会记录这个异常以及Servlet引擎所要采取的相应措施。<br />临时的无效是指Servlet在某一时间由于一个临时的问题而不能处理请求。例如，在另一个不同的应用层的服务（可能是数据库）无法使用。这个问题可能会自行纠正或者需要采取其他的纠正措施。<br />永久的无效是指除非管理员采取措施，这个Servlet将不能处理客户端的请求。例如，这个Servlet配置信息丢失或Servlet的状态被破坏。<br />Servlet引擎可以安全地处理包括永久无效在内的这两种异常，但是对临时无效的正常处理可以使得Servlet引擎更健壮。特别的，这时对Servlet的请求只是被阻止（或者是被延期）一段时间，这显然要比在service自己重新启动前完全拒绝请求更为科学。<br />构造函数<br />public UnavailableException(Servlet servlet, String message);<br />public UnavailableException(int seconds, Servlet servlet, <br />String message);<br />构造一个包含指定的描述信息的新的异常。如果这个构造函数有一个关于秒数的参数，这将给出Servlet发生临时无效后，能够重新处理请求的估计时间。如果不包含这个参数，这意味着这个Servlet永久无效。 <br />方法<br />1、getServlet<br />public Servlet getServlet();<br />返回报告无效的Servlet。这被Servlet引擎用来识别受到影响的Servlet。<br />2、getUnavailableSeconds<br />public int getUnavailableSeconds();<br />返回Servlet预期的无效时间，如果这个Servlet是永久无效，返回-1。<br />3、isPermanent<br />public boolean isPermanent();<br />如果这个Servlet永久无效，返回布尔值true，指示必须采取一些管理行动以使得这个Servlet可用。</p><img src ="http://www.cnitblog.com/iniboy/aggbug/13034.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/iniboy/" target="_blank">青</a> 2006-06-29 10:35 <a href="http://www.cnitblog.com/iniboy/archive/2006/06/29/13034.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>虚荣的人</title><link>http://www.cnitblog.com/iniboy/archive/2006/06/19/12483.html</link><dc:creator>青</dc:creator><author>青</author><pubDate>Mon, 19 Jun 2006 03:43:00 GMT</pubDate><guid>http://www.cnitblog.com/iniboy/archive/2006/06/19/12483.html</guid><wfw:comment>http://www.cnitblog.com/iniboy/comments/12483.html</wfw:comment><comments>http://www.cnitblog.com/iniboy/archive/2006/06/19/12483.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/iniboy/comments/commentRss/12483.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/iniboy/services/trackbacks/12483.html</trackback:ping><description><![CDATA[     人生真的是无奈，有很多事情是不想自己思考，可偏偏由不得自己。<br />     昨天去了一个朋友家，她在我们几个相识的人当中算是有钱人，其实并不是因为她有钱我去了她那里，因为我自觉欠她的太多。<br />如果一个人太虚荣，我想她这辈子一定不会过得开心，我没想与她攀比，可她却总以一种高高在上的眼神去看你，以一种嘲笑的口气与你说话。我当然不以为意。别人始终是别人，自己只要活得不失自尊，每个人有每个人的生活方式，何必要以自己的生活感受加于别人？记得以前曾告诉她说我家老杨是项目经理，在她看来，项目经理就要一个月10万薪水一样，公司和公司不一样，当然，同样的职位肯定薪水也是不一样的，似乎她认为我在虚荣，在夸口，其实，根本没有必要这样同别人说话，你有钱，有地位，没必要用这样一种眼神和口气同别人说话，话说回来，你的东西是你的，我也未必就稀罕，非把别人放到自己的位置上来想问题，没有必要，别人有没有钱与你何干，你怎么就认为别人这辈子就不如你了，你不就现在有俩臭钱？就这样就值得在别人面前摆阔？比着人家有钱的你狗屁都不是，只有和我比时，你好象挺有满足感的<br /><img src ="http://www.cnitblog.com/iniboy/aggbug/12483.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/iniboy/" target="_blank">青</a> 2006-06-19 11:43 <a href="http://www.cnitblog.com/iniboy/archive/2006/06/19/12483.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Eclipse3.1中使用SWT进行界面设计 （备忘，在网上查到的解决方法）</title><link>http://www.cnitblog.com/iniboy/archive/2006/06/19/12481.html</link><dc:creator>青</dc:creator><author>青</author><pubDate>Mon, 19 Jun 2006 03:37:00 GMT</pubDate><guid>http://www.cnitblog.com/iniboy/archive/2006/06/19/12481.html</guid><wfw:comment>http://www.cnitblog.com/iniboy/comments/12481.html</wfw:comment><comments>http://www.cnitblog.com/iniboy/archive/2006/06/19/12481.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/iniboy/comments/commentRss/12481.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/iniboy/services/trackbacks/12481.html</trackback:ping><description><![CDATA[Shell用于在特定的操作系统中表现窗口。Shell可以最大化、最小化或正常化。Shell有两种类型。第1种是高层shell，它是Display的子窗口，同时它也是一个主窗口。第2类是对话shell，这种shell要依赖于其他的shell窗口存在。shell窗口最终成为上述那种类型，要看在创建shell时传递给shell构造函数的是什么风格位（style bits）。一个shell的默认值是DialogShell。也就是说，如果不带参数，那默认就是一个对话shell。而如果给参数赋予了一个Display对象，则该shell将是一个高层shell。 <br /><br />　　一些窗口部件的属性必须在创建它们的初期就要被设置。这些窗口部件的属性就是前面所说的风格位（style bits）。在SWT的类中，风格位被定义为常数。例如，Button button = new Button( shell, &lt;styleBits&gt; )。可以使用或（OR）操作符“|”来设置多个风格位。例如，如果想设置一个带边界的压下按钮，需要传递SWT.PUSH | SWT.BORDER作为风格位参数。<br /><br />　　3. 进行SWT开发前的环境设置 <br />　　为了进行SWT应用开发，你需要把SWT库添加到类路径（classpath）上，并设置必要的环境变量。 <br /><br />　　首先，你要找到ECLIPSE_HOME\eclipse\plugins\org.eclipse.swt.win32.win32.x86_3.1.0.jar库文件。注意这里的“org.eclipse.swt.win32.win32.x86_3.1.0.jar”的文件是和Eclipse的版本有关的。实在找不到你就用文件搜索功能吧。然后依次打开下面窗口Project-&gt;Properies-&gt;JavaBuildPath-&gt;Libraries-&gt;Add Variable -&gt; Eclipse Home -&gt;Extend将org.eclipse.swt.win32.win32.x86_3.1.0.jar文件加到类路径中。 <br /><br />　　接着，你肯定想编译这个SWT应用了。但是会出现下面所示的运行异常。出现这个异常的原因是swt.jar库使用的是原生库。你需要设置java.library.path环境变量来使用Java中的原生库。 <br /><br />　　控制台（Console ）的输出如下： <br /><br /><br />　　java.lang.UnsatisfiedLinkError: no swt-win32-3138 in java.library.path <br />　　at java.lang.ClassLoader.loadLibrary(Unknown Source) <br />　　at java.lang.Runtime.loadLibrary0(Unknown Source) <br />　　at java.lang.System.loadLibrary(Unknown Source) <br />　　at org.eclipse.swt.internal.Library.loadLibrary(Library.java:108) <br />　　at org.eclipse.swt.internal.win32.OS.&lt;clinit&gt;(OS.java:46) <br />　　at org.eclipse.swt.widgets.Display.internal_new_GC(Display.java:1291) <br />　　at org.eclipse.swt.graphics.Device.init(Device.java:547) <br />　　at org.eclipse.swt.widgets.Display.init(Display.java:1316) <br />　　at org.eclipse.swt.graphics.Device.&lt;init&gt;(Device.java:96) <br />　　at org.eclipse.swt.widgets.Display.&lt;init&gt;(Display.java:291) <br />　　at org.eclipse.swt.widgets.Display.&lt;init&gt;(Display.java:287) <br />　　at com.swtdesigner.trytry.main(trytry.java:24) <br />　　Exception in thread "main"  <br /><br /><br />　　按下面的步骤设置java.library.path变量：依次打开Run-&gt; Run...-&gt; Java Applicaton-&gt; "Project" -&gt;Arguments -&gt; VM Arguments。在“VM Arguments”中输入 <br /><img src ="http://www.cnitblog.com/iniboy/aggbug/12481.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/iniboy/" target="_blank">青</a> 2006-06-19 11:37 <a href="http://www.cnitblog.com/iniboy/archive/2006/06/19/12481.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>servlet页面转向</title><link>http://www.cnitblog.com/iniboy/archive/2006/06/07/11755.html</link><dc:creator>青</dc:creator><author>青</author><pubDate>Wed, 07 Jun 2006 04:40:00 GMT</pubDate><guid>http://www.cnitblog.com/iniboy/archive/2006/06/07/11755.html</guid><wfw:comment>http://www.cnitblog.com/iniboy/comments/11755.html</wfw:comment><comments>http://www.cnitblog.com/iniboy/archive/2006/06/07/11755.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/iniboy/comments/commentRss/11755.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/iniboy/services/trackbacks/11755.html</trackback:ping><description><![CDATA[页面转向一：<br />ServletContext context = this.getServletContext();<br /><br />RequestDispatcher rd =<br />context.getRequestDispatcher("/servlets/HeaderServlet");<br /><br />rd.include(request, response);<br />页面转向二：response.sendRedirect();<br /><img src ="http://www.cnitblog.com/iniboy/aggbug/11755.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/iniboy/" target="_blank">青</a> 2006-06-07 12:40 <a href="http://www.cnitblog.com/iniboy/archive/2006/06/07/11755.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>servlet输出</title><link>http://www.cnitblog.com/iniboy/archive/2006/06/07/11754.html</link><dc:creator>青</dc:creator><author>青</author><pubDate>Wed, 07 Jun 2006 04:36:00 GMT</pubDate><guid>http://www.cnitblog.com/iniboy/archive/2006/06/07/11754.html</guid><wfw:comment>http://www.cnitblog.com/iniboy/comments/11754.html</wfw:comment><comments>http://www.cnitblog.com/iniboy/archive/2006/06/07/11754.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/iniboy/comments/commentRss/11754.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/iniboy/services/trackbacks/11754.html</trackback:ping><description><![CDATA[  两种方式：用response得到输出流即 response.getOuptStream();<br />                     返回值为<font color="#333333">ServletOutputStream 对象，即JSP的out对<br />                     象<br />                     要么用response得到输出对象PrintWriter即<br />                      response.getWriter()</font><img src ="http://www.cnitblog.com/iniboy/aggbug/11754.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/iniboy/" target="_blank">青</a> 2006-06-07 12:36 <a href="http://www.cnitblog.com/iniboy/archive/2006/06/07/11754.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>时间问题（JAVA）</title><link>http://www.cnitblog.com/iniboy/archive/2006/06/07/11743.html</link><dc:creator>青</dc:creator><author>青</author><pubDate>Wed, 07 Jun 2006 03:00:00 GMT</pubDate><guid>http://www.cnitblog.com/iniboy/archive/2006/06/07/11743.html</guid><wfw:comment>http://www.cnitblog.com/iniboy/comments/11743.html</wfw:comment><comments>http://www.cnitblog.com/iniboy/archive/2006/06/07/11743.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/iniboy/comments/commentRss/11743.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/iniboy/services/trackbacks/11743.html</trackback:ping><description><![CDATA[得到当前时间的毫秒数用：System.currentTimeMillis();<br />得到时间对象的时分秒等等要用类Date，Calendar    等<br /><img src ="http://www.cnitblog.com/iniboy/aggbug/11743.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/iniboy/" target="_blank">青</a> 2006-06-07 11:00 <a href="http://www.cnitblog.com/iniboy/archive/2006/06/07/11743.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>彻底解决weblogic服务器瘫痪问题</title><link>http://www.cnitblog.com/iniboy/archive/2006/06/06/11694.html</link><dc:creator>青</dc:creator><author>青</author><pubDate>Tue, 06 Jun 2006 06:53:00 GMT</pubDate><guid>http://www.cnitblog.com/iniboy/archive/2006/06/06/11694.html</guid><wfw:comment>http://www.cnitblog.com/iniboy/comments/11694.html</wfw:comment><comments>http://www.cnitblog.com/iniboy/archive/2006/06/06/11694.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/iniboy/comments/commentRss/11694.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/iniboy/services/trackbacks/11694.html</trackback:ping><description><![CDATA[
		<p>        我觉得接下来应该分析servlet传输下载文件和客户端弹出的下载框的关系，特别是当用户取消或关闭下载框时，服务器产生异常，以及文件下载放的缓冲区问题。<br />         最为关键的是要看看程序会不会导致内存泄露，以及引起服务器内存溢出的具体问题，这才是解决问题的关键所在。<br />         感觉这是做维护一来碰到的最难解决的问题，只要足够的时间，相信很快会水落石出的。<br />         接下来就要研究递归查询的问题了。</p>
<img src ="http://www.cnitblog.com/iniboy/aggbug/11694.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/iniboy/" target="_blank">青</a> 2006-06-06 14:53 <a href="http://www.cnitblog.com/iniboy/archive/2006/06/06/11694.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>具体解决</title><link>http://www.cnitblog.com/iniboy/archive/2006/06/06/11692.html</link><dc:creator>青</dc:creator><author>青</author><pubDate>Tue, 06 Jun 2006 06:43:00 GMT</pubDate><guid>http://www.cnitblog.com/iniboy/archive/2006/06/06/11692.html</guid><wfw:comment>http://www.cnitblog.com/iniboy/comments/11692.html</wfw:comment><comments>http://www.cnitblog.com/iniboy/archive/2006/06/06/11692.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/iniboy/comments/commentRss/11692.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/iniboy/services/trackbacks/11692.html</trackback:ping><description><![CDATA[        需要在下载文件SERVLET中判断每一个下载请求是不是来自于同一个IP地址，且是否是同一个请求，若是，就禁止访问，否则允许。把每个用户的IP地址和请求下载文件及访问时间放在Application对象的一个HASTABLE中。<br />       JSP中的 application对象是类ServletContext的一个实例，session是Session 类的一个实例。<br />      分析于此已经很明白了，那就下手做吧，估计需要10分钟就搞定了。<br />      <img src ="http://www.cnitblog.com/iniboy/aggbug/11692.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/iniboy/" target="_blank">青</a> 2006-06-06 14:43 <a href="http://www.cnitblog.com/iniboy/archive/2006/06/06/11692.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>servlet学习</title><link>http://www.cnitblog.com/iniboy/archive/2006/06/06/11690.html</link><dc:creator>青</dc:creator><author>青</author><pubDate>Tue, 06 Jun 2006 06:34:00 GMT</pubDate><guid>http://www.cnitblog.com/iniboy/archive/2006/06/06/11690.html</guid><wfw:comment>http://www.cnitblog.com/iniboy/comments/11690.html</wfw:comment><comments>http://www.cnitblog.com/iniboy/archive/2006/06/06/11690.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/iniboy/comments/commentRss/11690.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/iniboy/services/trackbacks/11690.html</trackback:ping><description><![CDATA[         我是做软件维护的，过完年这几个月客户服务器总是莫名其妙的死机，所以头儿一直让我找原因，可我只是发现客户下载文件时，weblogic服务器总把异常，而且发现客户端会在一两秒钟内连续发送上百给连接请求，以至于服务器端连续出现异常，导致内存溢出，最终服务器死敲敲，于是初步推测是客户端有病毒，但要解决这种情况，首先要禁止病毒不停地访问服务器，那就是如果在一秒钟内连续有超过1个以上的相同连接访问服务器就认定是病毒，禁止访问，这是解决方案<img src ="http://www.cnitblog.com/iniboy/aggbug/11690.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/iniboy/" target="_blank">青</a> 2006-06-06 14:34 <a href="http://www.cnitblog.com/iniboy/archive/2006/06/06/11690.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java抽象类</title><link>http://www.cnitblog.com/iniboy/archive/2006/04/26/9674.html</link><dc:creator>青</dc:creator><author>青</author><pubDate>Wed, 26 Apr 2006 01:44:00 GMT</pubDate><guid>http://www.cnitblog.com/iniboy/archive/2006/04/26/9674.html</guid><wfw:comment>http://www.cnitblog.com/iniboy/comments/9674.html</wfw:comment><comments>http://www.cnitblog.com/iniboy/archive/2006/04/26/9674.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnitblog.com/iniboy/comments/commentRss/9674.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/iniboy/services/trackbacks/9674.html</trackback:ping><description><![CDATA[JAVA抽象类的理解：<br />1、普通的JAVA类也可以在CLASS前加ABSTRACT声明为抽象，只不过此时的该类不再可以实例化。<br />2、如果一个类里有一个以上的抽象方法，则该类必须声明为抽象类，该方法也必须声明为抽象。<br />3、抽象类不能被实例化，但不代表它不可以有构造函数，抽象类可以有构造函数，备继承类扩充<img src ="http://www.cnitblog.com/iniboy/aggbug/9674.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/iniboy/" target="_blank">青</a> 2006-04-26 09:44 <a href="http://www.cnitblog.com/iniboy/archive/2006/04/26/9674.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts+hibernate学习的感悟</title><link>http://www.cnitblog.com/iniboy/archive/2006/04/24/9614.html</link><dc:creator>青</dc:creator><author>青</author><pubDate>Mon, 24 Apr 2006 08:54:00 GMT</pubDate><guid>http://www.cnitblog.com/iniboy/archive/2006/04/24/9614.html</guid><wfw:comment>http://www.cnitblog.com/iniboy/comments/9614.html</wfw:comment><comments>http://www.cnitblog.com/iniboy/archive/2006/04/24/9614.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/iniboy/comments/commentRss/9614.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/iniboy/services/trackbacks/9614.html</trackback:ping><description><![CDATA[
		<p>如果把实体类定义为接口，ActionForm实现这个接口，那么在action中可以直接把实现这个接口的form转化成实体bean，直接用于数据库数据的存储和检索</p>
<img src ="http://www.cnitblog.com/iniboy/aggbug/9614.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/iniboy/" target="_blank">青</a> 2006-04-24 16:54 <a href="http://www.cnitblog.com/iniboy/archive/2006/04/24/9614.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hibernate学习备忘</title><link>http://www.cnitblog.com/iniboy/archive/2006/04/24/9610.html</link><dc:creator>青</dc:creator><author>青</author><pubDate>Mon, 24 Apr 2006 06:57:00 GMT</pubDate><guid>http://www.cnitblog.com/iniboy/archive/2006/04/24/9610.html</guid><wfw:comment>http://www.cnitblog.com/iniboy/comments/9610.html</wfw:comment><comments>http://www.cnitblog.com/iniboy/archive/2006/04/24/9610.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/iniboy/comments/commentRss/9610.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/iniboy/services/trackbacks/9610.html</trackback:ping><description><![CDATA[1、在hibernate.cfg.xml 中mapping映射实体类时，如果不在同一目录下，例如：实体类的映射文件Userlist.bhm.xml在com\sonic\目录下，而hibernate.cfg.xml 在com同一级目录下，应写成<br />&lt;mapping  resource="com/sonic/Userlist.hbm.xml"/&gt;<br />不能用包名或\分隔逐级目录<br />2、 Configuration().configure() <br />Configuration是hibernate的入口，在新建一个Configuration的实例的时候，hibernate会在classpath里面查找hibernate.properties文件，如果该文件存在，则将该文件的内容加载到一个Properties的实例GLOBAL_PROPERTIES里面，如果不存在，将打印信息hibernate.properties not found<br />　　然后是将所有系统环境变量（System.getProperties()）也添加到GLOBAL_PROPERTIES里面（ 注1）。如果hibernate.properties文件存在，系统还会验证一下这个文件配置的有效性，对于一些已经不支持的配置参数，系统将打印警告信息。 <br /><br />　　3、configure()在做什么？<br />　　　　configure()方法默认会在classpath下面寻找hibernate.cfg.xml文件，如果没有找到该文件，系统会打印如下信息并抛出HibernateException异常。　　hibernate.cfg.xml not found<br /><br />　　如果找到该文件，configure()方法会首先访问＜ session-factory ＞，并获取该元素的name属性，如果非空，将用这个配置的值来覆盖hibernate.properties的hibernate.session_factory_name的配置的值，从这里我们可以看出，hibernate.cfg.xml里面的配置信息可以覆盖hibernate.properties的配置信息。<br /><br />　　接着configure()方法访问＜session-factory＞的子元素，首先将使用所有的＜property＞元素配置的信息（ 注2），如前面我们使用的配置文件 ＜property name="connection.url"＞jdbc:hsqldb:hsql://localhost＜/property＞<br />＜property name="connection.driver_class"＞org.hsqldb.jdbcDriver＜/property＞<br />＜property name="connection.username"＞sa＜/property＞<br />＜property name="connection.password"＞＜/property＞<br />＜property name="dialect"＞net.sf.hibernate.dialect.HSQLDialect＜/property＞　　会覆盖hibernate.properties里面对应的配置，hibernate2.1发布包里面自带的hibernate.properties文件（位于%HIBERNATE_HOME%/etc下面）里面的值，如下：hibernate.dialect net.sf.hibernate.dialect.HSQLDialect<br />hibernate.connection.driver_class org.hsqldb.jdbcDriver<br />hibernate.connection.username sa<br />hibernate.connection.password<br />hibernate.connection.url jdbc:hsqldb:hsql://localhost<br /><br />然后configure()会顺序访问以下几个元素的内容<br /><br />＜mapping＞<br />＜jcs-class-cache＞<br />＜jcs-collection-cache＞<br />＜collection-cache＞<img src ="http://www.cnitblog.com/iniboy/aggbug/9610.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/iniboy/" target="_blank">青</a> 2006-04-24 14:57 <a href="http://www.cnitblog.com/iniboy/archive/2006/04/24/9610.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>接口和抽象类</title><link>http://www.cnitblog.com/iniboy/archive/2006/04/19/9366.html</link><dc:creator>青</dc:creator><author>青</author><pubDate>Wed, 19 Apr 2006 03:12:00 GMT</pubDate><guid>http://www.cnitblog.com/iniboy/archive/2006/04/19/9366.html</guid><wfw:comment>http://www.cnitblog.com/iniboy/comments/9366.html</wfw:comment><comments>http://www.cnitblog.com/iniboy/archive/2006/04/19/9366.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/iniboy/comments/commentRss/9366.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/iniboy/services/trackbacks/9366.html</trackback:ping><description><![CDATA[          在abstract class方式中，Demo可以有自己的数据成员，也可以有非abstarct的成员方法，而在interface方式的实现中，Demo只能够有静态的不能被修改的数据成员（也就是必须是static final的，不过在interface中一般不定义数据成员），所有的成员方法都是abstract的。<br />          一个类只能使用一次继承关系。但是，一个类却可以实现多个interface。<br />在抽象类中不能定义默认行为还存在另一个比较严重的问题，那就是可能会造成维护上的麻烦。因为如果后来想修改类的界面（一般通过abstract class或者interface来表示）以适应新的情况（比如，添加新的方法或者给已用的方法中添加新的参数）时，就会非常的麻烦，可能要花费很多的时间（对于派生类很多的情况，尤为如此）。但是如果界面是通过abstract class来实现的，那么可能就只需要修改定义在abstract class中的默认行为就可以了<br />在接口和抽象类的选择上，必须遵守这样一个原则：行为模型应该总是通过接口而不是抽象类定义。为了说明其原因，下面试着通过抽象类建立行为模型，看看会出现什么问题。 
<p style="TEXT-INDENT: 2em">　　假设要为销售部门设计一个软件，这个软件包含一个“发动机”（Motor）实体。显然无法在发动机对象中详细地描述发动机的方方面面，只能描述某些对当前软件来说重要的特征。至于发动机的哪些特征是重要的，则要与用户（销售部门）交流才能确定。 
</p><p style="TEXT-INDENT: 2em">　　销售部门的人要求每一个发动机都有一个称为马力的参数。对于他们来说，这是惟一值得关心的参数。基于这一判断，可以把发动机的行为定义为以下行为。 
</p><p style="TEXT-INDENT: 2em">　　行为1：查询发动机的马力，发动机将返回一个表示马力的整数。 
</p><p style="TEXT-INDENT: 2em">　　虽然现在还不清楚发动机如何取得马力这个参数，但可以肯定发动机一定支持这个行为，而且这是所有发动机惟一值得关注的行为特征。这个行为特征既可以用接口定义，也可以用抽象类定义。为了说明用抽象类定义可能出现的问题，下面用抽象类建立发动机的行为模型，并用Java方法描述行为1，代码如下： 
</p><p style="TEXT-INDENT: 2em"><ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="550" align="center" bordercolorlight="black" border="1"><tbody><tr><td class="code" bgcolor="#e6e6e6"><pre><ccid_code>public abstract Motor{
            abstract public int getHorsepower();  
           }</ccid_code></pre></td></tr></tbody></table></ccid_nobr></p><p style="TEXT-INDENT: 2em">　　在Motor抽象类的基础上构造出多种具体实现，例如A型发动机、B型发动机等，再加上系统的其它部分，最后得到1.0版的软件并交付使用。一段时间过去了，现在要设计2.0版的软件。在评估2.0版软件需求的过程中，发现一小部分发动机是电池驱动的，而电池需要一定的充电时间。销售部门的人希望能够通过计算机查阅充电时间。根据这一要求定义一个新的行为，如图1所示。 
</p><p style="TEXT-INDENT: 2em">　　行为2：查询电驱动发动机的充电时间，发动机将返回一个表示充电时间的整数。 
</p><p style="TEXT-INDENT: 2em">　　用Java方法来描述这个行为，代码如下： 
</p><p style="TEXT-INDENT: 2em"><ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="550" align="center" bordercolorlight="black" border="1"><tbody><tr><td class="code" bgcolor="#e6e6e6"><pre><ccid_code>public abstract BatteryPoweredMotor extends Motor{
           abstract public int getTimeToRecharge();
          }</ccid_code></pre></td></tr></tbody></table></ccid_nobr></p><p style="TEXT-INDENT: 2em">　　在销售部门的软件中，电驱动发动机也以类的形式实现，但这些类从BatteryPoweredMotor而不是Motor派生。这些改动加入到2.0版软件之后，销售部门很满意。随着业务的不断发展，不久之后光驱动的发动机出现了。销售部门要求光驱动发动机需要一定光能才能运转，光能以流明（Lumen）度量。这个信息对客户很重要，因为下雨或多云的天气里，某些光驱动发动机可能无法运转。销售部门要求为软件增加对光驱动发动机的支持，所以要定义一个新的行为。 
</p><p style="TEXT-INDENT: 2em">　　行为3：查询光驱动发动机能够正常运转所需要的最小流明数，发动机返回一个整数。 
</p><p style="TEXT-INDENT: 2em">　　再定义一个抽象类并把行为3转换成Java方法，代码如下： 
</p><p style="TEXT-INDENT: 2em"><ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="550" align="center" bordercolorlight="black" border="1"><tbody><tr><td class="code" bgcolor="#e6e6e6"><pre><ccid_code>public abstract SolarPoweredMotor extends Motor{
            abstract public int getLumensToOperate();
          }</ccid_code></pre></td></tr></tbody></table></ccid_nobr></p><p style="TEXT-INDENT: 2em"><img style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" src="http://tech.ccidnet.com/col/attachment/2003/3/112835.jpg" /></p><p style="TEXT-INDENT: 2em">　　如图1所示，SolarPoweredMotor和BatteryPoweredMotor都从Motor抽象类派生。在整个软件中，90％以上的代码以相同的方式对待所有的发动机。偶尔需要检查一下发动机是光驱动还是电驱动，使用instanceof实现，代码如下： 
</p><p style="TEXT-INDENT: 2em"><ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="550" align="center" bordercolorlight="black" border="1"><tbody><tr><td class="code" bgcolor="#e6e6e6"><pre><ccid_code>if (instanceof SolarPoweredMotor){...} 
      if (instanceof BatteryPoweredMotor){...}</ccid_code></pre></td></tr></tbody></table></ccid_nobr></p><p style="TEXT-INDENT: 2em">　　无论是哪种发动机，马力这个参数都很重要，所以在所有派生的抽象类（SolarPoweredMotor和BatteryPoweredMotor）中，getHorsepower()方法都有效。 
</p><p style="TEXT-INDENT: 2em">　　现在销售部门又有了一种新的发动机，它是一种既有电驱动又有光驱动的双重驱动发动机。光驱动和电驱动的行为本身没有变化，但新的发动机同时支持两种行为。在考虑如何定义新型的光电驱动发动机时，接口和抽象类的差别开始显示出来了。新的目标是在增加新型发动机的前提下尽量少改动代码。因为与光驱动发动机、电驱动发动机有关的代码已经过全面的测试，不存在已知的Bug。为了增加光电驱动发动机，要定义一个新的SolarBatteryPowered抽象类。如果让SolarBatteryPowered从Motor抽象类派生，SolarBatteryPowered将不支持针对光驱动发动机和电驱动发动机的instanceof操作。也就是说，如果查询一个光电驱动的发动机是光驱动的，还是电驱动的，得到的答案是：都不是。 
</p><p style="TEXT-INDENT: 2em">　　如果让SolarBatteryPowered从SolarPoweredMotor（或BatteryPoweredMotor）抽象类派生，类似的问题也会出现，SolarBatteryPowered将不支持针对BatteryPoweredMotor（或SolarPoweredMotor）的instanceof操作。从行为上看，光电驱动的发动机必须同时从两个抽象类派生，但Java语言不允许多重继承。之所以会出现这个问题，根本的原因在于使用抽象类不仅意味着定义特定的行为，而且意味着定义实现的模式。也就是说，应该定义一个发动机如何获得行为的模型，而不仅仅是声明发动机具有某一个行为。 
</p><p style="TEXT-INDENT: 2em"></p><center><font color="#000099"><strong>通过接口建立行为模型</strong></font></center><p style="TEXT-INDENT: 2em">　　如果用接口来建立行为模型，就可以避免隐含地规定实现模式。例如，前面的几个行为改用接口定义如下。 
</p><p style="TEXT-INDENT: 2em">　　行为1： 
</p><p style="TEXT-INDENT: 2em"><ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="550" align="center" bordercolorlight="black" border="1"><tbody><tr><td class="code" bgcolor="#e6e6e6"><pre><ccid_code>public interface Motor(){
           public int getHorsepower();
          }</ccid_code></pre></td></tr></tbody></table></ccid_nobr></p><p style="TEXT-INDENT: 2em">行为2： 
</p><p style="TEXT-INDENT: 2em"><ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="550" align="center" bordercolorlight="black" border="1"><tbody><tr><td class="code" bgcolor="#e6e6e6"><pre><ccid_code>public interface BatteryPoweredMotor extends Motor(){
           public int getTimeToRecharge();
          }</ccid_code></pre></td></tr></tbody></table></ccid_nobr></p><p style="TEXT-INDENT: 2em">行为3： 
</p><p style="TEXT-INDENT: 2em"><ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="550" align="center" bordercolorlight="black" border="1"><tbody><tr><td class="code" bgcolor="#e6e6e6"><pre><ccid_code>public interface SolarPoweredMotor extends Motor{
           abstract public int getLumensToOperate();
          }</ccid_code></pre></td></tr></tbody></table></ccid_nobr></p><p style="TEXT-INDENT: 2em">　　现在光电驱动的发动机可以描述为： 
</p><p style="TEXT-INDENT: 2em"><ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="550" align="center" bordercolorlight="black" border="1"><tbody><tr><td class="code" bgcolor="#e6e6e6"><pre><ccid_code>public DualPoweredMotor implements SolarPoweredMotor, BatteryPoweredMotor{}</ccid_code></pre></td></tr></tbody></table></ccid_nobr></p><p style="TEXT-INDENT: 2em"><img style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" src="http://tech.ccidnet.com/col/attachment/2003/3/112836.jpg" /></p><p style="TEXT-INDENT: 2em">　　DualPoweredMotor只继承行为定义，而不是行为的实现模式，如图2所示。 
</p><p style="TEXT-INDENT: 2em">　　在使用接口的同时仍旧可以使用抽象类，不过这时抽象类的作用是实现行为，而不是定义行为。只要实现行为的类遵从接口定义，即使它改变了父抽象类，也不用改变其它代码与之交互的方式。特别是对于公用的实现代码，抽象类有它的优点。抽象类能够保证实现的层次关系，避免代码重复。然而，即使在使用抽象类的场合，也不要忽视通过接口定义行为模型的原则。从实践的角度来看，如果依赖于抽象类来定义行为，往往导致过于复杂的继承关系，而通过接口定义行为能够更有效地分离行为与实现，为代码的维护和修改带来方便。 </p><img src ="http://www.cnitblog.com/iniboy/aggbug/9366.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/iniboy/" target="_blank">青</a> 2006-04-19 11:12 <a href="http://www.cnitblog.com/iniboy/archive/2006/04/19/9366.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>遇到的一个问题查到的资料</title><link>http://www.cnitblog.com/iniboy/archive/2006/04/18/9324.html</link><dc:creator>青</dc:creator><author>青</author><pubDate>Tue, 18 Apr 2006 09:18:00 GMT</pubDate><guid>http://www.cnitblog.com/iniboy/archive/2006/04/18/9324.html</guid><wfw:comment>http://www.cnitblog.com/iniboy/comments/9324.html</wfw:comment><comments>http://www.cnitblog.com/iniboy/archive/2006/04/18/9324.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/iniboy/comments/commentRss/9324.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/iniboy/services/trackbacks/9324.html</trackback:ping><description><![CDATA[
		<table cellspacing="0" cellpadding="5" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<font color="#18188c" size="4">
												<strong>struts编程学习：标签--&gt;logic--&gt;iterate</strong>
										</font>
								</td>
						</tr>
						<tr>
								<td>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<strong>
														<font color="#ff00ff">
																<span lang="EN-US" style="COLOR: black; FONT-FAMILY: Arial">Jakarta</span>
																<span lang="JA" style="COLOR: black; FONT-FAMILY: 'MS Mincho'; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-language: JA">　</span>
																<span lang="EN-US" style="COLOR: black; FONT-FAMILY: Arial">struts</span>
																<span style="COLOR: black; FONT-FAMILY: 黑体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">编程学习：标签</span>
																<span lang="EN-US" style="COLOR: black; FONT-FAMILY: Wingdings; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 黑体; mso-char-type: symbol; mso-symbol-font-family: Wingdings">
																		<span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">à</span>
																</span>
																<span lang="EN-US" style="COLOR: black; FONT-FAMILY: Arial; mso-fareast-font-family: 黑体">logic</span>
																<span lang="EN-US" style="COLOR: black; FONT-FAMILY: Wingdings; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-fareast-font-family: 黑体; mso-char-type: symbol; mso-symbol-font-family: Wingdings">
																		<span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">à</span>
																</span>
																<span lang="EN-US" style="COLOR: black; FONT-FAMILY: Arial; mso-fareast-font-family: 黑体">iterate</span>
														</font>
												</strong>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<font color="#ff00ff">
														<span>
																<span style="mso-spacerun: yes">  </span>Iterate主要用来处理</span>
														<span style="COLOR: black; FONT-FAMILY: Arial; mso-fareast-font-family: 黑体">
														</span>
														<span>在页面上输出集合类，集合一般来说是下列之一：<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:p></o:p></span>
												</font>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 28.5pt; TEXT-INDENT: -18pt; tab-stops: list 28.5pt; mso-list: l0 level1 lfo1">
												<font face="宋体">
														<font color="#ff00ff">
																<span lang="EN-US" style="COLOR: black; FONT-FAMILY: Arial; mso-fareast-font-family: 黑体">1、<span style="FONT: 7pt 'Times New Roman'"><font size="3"></font></span></span>
																<span lang="EN-US" style="COLOR: black; FONT-FAMILY: Arial; mso-fareast-font-family: 黑体">java对象的数组</span>
																<span style="COLOR: black; FONT-FAMILY: 黑体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial">
																</span>
														</font>
												</font>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 28.5pt; TEXT-INDENT: -18pt; tab-stops: list 28.5pt; mso-list: l0 level1 lfo1">
												<font color="#ff00ff">
														<font face="宋体">
																<code>
																		<span lang="EN-US" style="mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-bidi-font-size: 12.0pt; mso-ansi-font-size: 10.5pt">2、<span style="FONT: 7pt 'Times New Roman'"><font size="3">  ArrayList<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-bidi-language: AR-SA">、</span><font face="宋体">Vector<span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-bidi-language: AR-SA">、</span>HashMap</font></font></span></span>
																</code>
														</font>
														<code>
																<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 黑体">
																		<font face="Arial" size="3">等</font>
																</span>
														</code>
												</font>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 28.5pt; TEXT-INDENT: -18pt; tab-stops: list 28.5pt; mso-list: l0 level1 lfo1">
												<font face="宋体">
														<font size="3">
																<code>
																		<span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: 黑体">
																				<font color="#ff00ff">
																						<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">
																								<font size="3">   具体用法请参考<span lang="EN-US" style="COLOR: black; FONT-FAMILY: Arial">struts文档，这里不作详细介绍</span></font>
																						</span>    </font>
																		</span>
																</code>
														</font>
												</font>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt">
												<font color="#ff00ff">
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">现在定义一个</span>
														<span lang="EN-US">class</span>
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span>
														<span lang="EN-US">User.java </span>
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">把它编译成</span>
														<span lang="EN-US">User.class</span>
												</font>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt">
												<span lang="EN-US">
														<font color="#ff00ff">package example;</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt">
												<span lang="EN-US">
														<font color="#ff00ff"> <o:p></o:p></font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt">
												<span lang="EN-US">
														<font color="#ff00ff">import java.io.Serializable;</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt">
												<span lang="EN-US">
														<font color="#ff00ff"> <o:p></o:p></font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt">
												<span lang="EN-US">
														<font color="#ff00ff">public final class User implements Serializable {</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: 21.75pt">
												<span lang="EN-US">
														<font color="#ff00ff">private String name = null;</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: 21.75pt">
												<span lang="EN-US">
														<font color="#ff00ff">private String password = null;</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: 21.75pt">
												<span lang="EN-US">
														<font color="#ff00ff"> <o:p></o:p></font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: 21.75pt">
												<span lang="EN-US">
														<font color="#ff00ff">public String getName () {</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: 21.75pt">
												<span lang="EN-US">
														<font color="#ff00ff">
																<span style="mso-tab-count: 1">   </span>return (this.name);</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: 21.75pt">
												<span lang="EN-US">
														<font color="#ff00ff">}</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: 21.75pt">
												<span lang="EN-US">
														<font color="#ff00ff">public void setName(String name) {</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: 21.75pt">
												<span lang="EN-US">
														<font color="#ff00ff">
																<span style="mso-tab-count: 1">   </span>this.name = name;</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 31.5pt; mso-char-indent-count: 3.0; mso-char-indent-size: 10.5pt">
												<span lang="EN-US">
														<font color="#ff00ff">}</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: 21.75pt">
												<span lang="EN-US">
														<font color="#ff00ff">public String Password () {</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: 21.75pt">
												<span lang="EN-US">
														<font color="#ff00ff">
																<span style="mso-tab-count: 1">   </span>return (this. password);</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: 21.75pt">
												<span lang="EN-US">
														<font color="#ff00ff">}</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: 21.75pt">
												<span lang="EN-US">
														<font color="#ff00ff">public void setPassword (String password) {</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: 21.75pt">
												<span lang="EN-US">
														<font color="#ff00ff">
																<span style="mso-tab-count: 1">   </span>this. password = password;</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 31.5pt; mso-char-indent-count: 3.0; mso-char-indent-size: 10.5pt">
												<span lang="EN-US">
														<font color="#ff00ff">}</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff">
																<span style="mso-spacerun: yes">  </span>}</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<font color="#ff00ff">
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">然后在一个</span>
														<span lang="EN-US">struts<span style="mso-spacerun: yes">  </span>webapplication(参见"<strong>Struts初体验之实施篇</strong>")</span>
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中创建一个</span>
														<span lang="EN-US">jsp</span>
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，例如</span>
														<span lang="EN-US">iterate.jsp</span>
												</font>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff"> <o:p></o:p></font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff">&lt;%@ page language="java" %&gt;</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff">&lt;%@ page import="example.*"%&gt;</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff">&lt;%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %&gt;</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff">&lt;%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %&gt;</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff">&lt;%</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff">java.util.ArrayList list = new java.util.ArrayList();</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff">User usera=new User();</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff">usera.setName("white");</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff">usera.setPassword("abcd");</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff">list.add(usera);</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff">User userb=new User();</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff">userb.setName("mary");</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff">userb.setPassword("hijk");</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff">list.add(userb);</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff">session.setAttribute("list", list);</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff">%&gt;</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff">&lt;html&gt;&lt;body&gt;&lt;table width="100%"&gt;</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff">&lt;logic:iterate id="a" name="list" type=" example.User "&gt;</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff">
																<span style="mso-spacerun: yes">  </span>&lt;tr&gt;&lt;td width="50%"&gt;</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff">       name: &lt;bean:write name="a" property="name"/&gt;</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff">  &lt;td/&gt;&lt;td width="50%"&gt;</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff">
																<span style="mso-spacerun: yes">      </span>password: &lt;bean:write name="a" property="password"/&gt;</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff">  &lt;/td&gt;&lt;/tr&gt;</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff">&lt;/logic:iterate&gt;</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<span lang="EN-US">
														<font color="#ff00ff">&lt;/table&gt;&lt;/body&gt;&lt;/html&gt;</font>
												</span>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<font color="#ff00ff">
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">将</span>
														<span lang="EN-US">User.class, iterate.jsp</span>
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">放到相应的目录，运行</span>
														<span lang="EN-US">iterate.jsp</span>
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">你就可以看到</span>
														<span lang="EN-US">iterate</span>
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的效果了</span>
												</font>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<font color="#ff00ff">
														<span lang="EN-US">iterate</span>
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标记的</span>
														<span lang="EN-US"> id </span>
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是它的标示，</span>
														<span lang="EN-US">name </span>
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是用来匹配相应的</span>
														<span lang="EN-US"> session</span>
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">或者其他的属性的</span>
														<span lang="EN-US">, type</span>
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是其中的集合类元素的类型</span>
												</font>
										</p>
										<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
												<font color="#ff00ff">
														<span lang="EN-US">bean</span>
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span>
														<span lang="EN-US">write</span>
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">标记是用来将属性输出的，</span>
														<span lang="EN-US">name</span>
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">用来匹配</span>
														<span lang="EN-US">iterate</span>
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span>
														<span lang="EN-US">id</span>
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span>
														<span lang="EN-US">property</span>
														<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">用来匹配相应类的属性.</span>
												</font>
												<a>
														<font color="#ff00ff">　</font>
												</a>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.cnitblog.com/iniboy/aggbug/9324.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/iniboy/" target="_blank">青</a> 2006-04-18 17:18 <a href="http://www.cnitblog.com/iniboy/archive/2006/04/18/9324.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript实用的一些技巧 </title><link>http://www.cnitblog.com/iniboy/archive/2006/04/13/9103.html</link><dc:creator>青</dc:creator><author>青</author><pubDate>Thu, 13 Apr 2006 04:51:00 GMT</pubDate><guid>http://www.cnitblog.com/iniboy/archive/2006/04/13/9103.html</guid><wfw:comment>http://www.cnitblog.com/iniboy/comments/9103.html</wfw:comment><comments>http://www.cnitblog.com/iniboy/archive/2006/04/13/9103.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/iniboy/comments/commentRss/9103.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/iniboy/services/trackbacks/9103.html</trackback:ping><description><![CDATA[
		<strong>今天在一个网站找到了非常好的东西，以备使用<br /><br />JavaScript实用的一些技巧 </strong>
		<table class="docParameter" cellspacing="6" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<p>作者：<a href="http://www.blueidea.com/common/contact.asp?type=作者&amp;username=AustinLei" target="_blank">AustinLei</a>　时间： 2004-12-23　文档类型：转载　来自：<a href="http://www.csdn.net/">CSDN</a><br />浏览统计 total:44520 | year:5828 | Quarter:585 | Month:585 | Week:235 | today:19</p>
										<p class="list">
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<table class="border" cellspacing="0" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td>
										<img height="6" src="http://www.blueidea.com/img/spacer.gif" width="6" />
								</td>
						</tr>
				</tbody>
		</table>
		<table class="pageLighter" cellspacing="11" cellpadding="0" width="100%" border="0">
				<tbody>
						<tr>
								<td class="content">
										<span id="ArticleContent1_ArticleContent1_lblContent">1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键<br />&lt;table border oncontextmenu=return(false)&gt;&lt;td&gt;no&lt;/table&gt; 可用于Table 
<p><iframe id="ad_top" name="ad_top" align="left" marginwidth="0" marginheight="0" src="http://adv.pconline.com.cn/adpuba/show?id=pc.zppx.sywz.wjhzh.&amp;media=html&amp;" frameborder="0" width="320" scrolling="no" height="280"></iframe>2. &lt;body onselectstart="return false"&gt; 取消选取、防止复制</p><p>3. onpaste="return false" 不准粘贴</p><p>4. oncopy="return false;" oncut="return false;" 防止复制</p><p>5. &lt;link rel="Shortcut Icon" href="favicon.ico"&gt; IE地址栏前换成自己的图标</p><p>6. &lt;link rel="Bookmark" href="favicon.ico"&gt; 可以在收藏夹中显示出你的图标</p><p>7. &lt;input style="ime-mode:disabled"&gt; 关闭输入法</p><p>8. 永远都会带着框架<br />&lt;script language="JavaScript"&gt;&lt;!--<br />if (window == top)top.location.href = "frames.htm"; //frames.htm为框架网页<br />// --&gt;&lt;/script&gt;</p><p>9. 防止被人frame<br />&lt;SCRIPT LANGUAGE=JAVASCRIPT&gt;&lt;!-- <br />if (top.location != self.location)top.location=self.location;<br />// --&gt;&lt;/SCRIPT&gt;</p><p>10. 网页将不能被另存为<br />&lt;noscript&gt;&lt;iframe src=*.html&gt;&lt;/iframe&gt;&lt;/noscript&gt; </p><p>11. &lt;input type=button value=查看网页源代码 <br />onclick="window.location = "view-source:"+ "http://www.pconline.com.cn""&gt;</p><p>12.删除时确认<br />&lt;a href="javascript:if(confirm("确实要删除吗?"))location="boos.asp?&amp;areyou=删除&amp;page=1""&gt;删除&lt;/a&gt; </p><p>13. 取得控件的绝对位置<br />//Javascript<br />&lt;script language="Javascript"&gt;<br />function getIE(e){<br />var t=e.offsetTop;<br />var l=e.offsetLeft;<br />while(e=e.offsetParent){<br />t+=e.offsetTop;<br />l+=e.offsetLeft;<br />}<br />alert("top="+t+"/nleft="+l);<br />}<br />&lt;/script&gt;</p><p>//VBScript<br />&lt;script language="VBScript"&gt;&lt;!--<br />function getIE()<br />dim t,l,a,b<br />set a=document.all.img1<br />t=document.all.img1.offsetTop<br />l=document.all.img1.offsetLeft<br />while a.tagName&lt;&gt;"BODY"<br />set a = a.offsetParent<br />t=t+a.offsetTop<br />l=l+a.offsetLeft<br />wend<br />msgbox "top="&amp;t&amp;chr(13)&amp;"left="&amp;l,64,"得到控件的位置"<br />end function<br />--&gt;&lt;/script&gt;</p><p>14. 光标是停在文本框文字的最后<br />&lt;script language="javascript"&gt;<br />function cc()<br />{<br />var e = event.srcElement;<br />var r =e.createTextRange();<br />r.moveStart("character",e.value.length);<br />r.collapse(true);<br />r.select();<br />}<br />&lt;/script&gt;<br />&lt;input type=text name=text1 value="123" onfocus="cc()"&gt;</p><p>15. 判断上一页的来源<br />javascript:<br />document.referrer</p><p>16. 最小化、最大化、关闭窗口<br />&lt;object id=hh1 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"&gt; <br />&lt;param name="Command" value="Minimize"&gt;&lt;/object&gt;<br />&lt;object id=hh2 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"&gt; <br />&lt;param name="Command" value="Maximize"&gt;&lt;/object&gt;<br />&lt;OBJECT id=hh3 classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"&gt;<br />&lt;PARAM NAME="Command" VALUE="Close"&gt;&lt;/OBJECT&gt;<br />&lt;input type=button value=最小化 onclick=hh1.Click()&gt;<br />&lt;input type=button value=最大化 onclick=hh2.Click()&gt;<br />&lt;input type=button value=关闭 onclick=hh3.Click()&gt;<br />本例适用于IE<br /></p><p>17.屏蔽功能键Shift,Alt,Ctrl<br />&lt;script&gt;<br />function look(){ <br />if(event.shiftKey) <br />alert("禁止按Shift键!"); //可以换成ALT　CTRL<br />} <br />document.onkeydown=look; <br />&lt;/script&gt;</p><p>18. 网页不会被缓存<br />&lt;META HTTP-EQUIV="pragma" CONTENT="no-cache"&gt;<br />&lt;META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"&gt;<br />&lt;META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT"&gt;<br />或者&lt;META HTTP-EQUIV="expires" CONTENT="0"&gt;</p><p>19.怎样让表单没有凹凸感？<br />&lt;input type=text style="border:1 solid #000000"&gt; <br />或<br />&lt;input type=text style="border-left:none; border-right:none; border-top:none; border-bottom: </p><p>1 solid #000000"&gt;&lt;/textarea&gt;</p><p>20.&lt;div&gt;&lt;span&gt;&amp;&lt;layer&gt;的区别？ <br />&lt;div&gt;(division)用来定义大段的页面元素，会产生转行 <br />&lt;span&gt;用来定义同一行内的元素，跟&lt;div&gt;的唯一区别是不产生转行 <br />&lt;layer&gt;是ns的标记，ie不支持，相当于&lt;div&gt;<br /><br /><br /></p><p>21.让弹出窗口总是在最上面:<br />&lt;body onblur="this.focus();"&gt;</p><p>22.不要滚动条? <br />让竖条没有: <br />&lt;body style="overflow:scroll;overflow-y:hidden"&gt; <br />&lt;/body&gt; <br />让横条没有: <br />&lt;body style="overflow:scroll;overflow-x:hidden"&gt; <br />&lt;/body&gt; <br />两个都去掉？更简单了 <br />&lt;body scroll="no"&gt; <br />&lt;/body&gt; </p><p>23.怎样去掉图片链接点击后，图片周围的虚线？<br />&lt;a href="#" onFocus="this.blur()"&gt;&lt;img src="logo.jpg" border=0&gt;&lt;/a&gt;</p><p>24.电子邮件处理提交表单<br />&lt;form name="form1" method="post" action="<font color="#002c99">mailto:****@***.com</font>" enctype="text/plain"&gt; <br />&lt;input type=submit&gt;<br />&lt;/form&gt;</p><p>25.在打开的子窗口刷新父窗口的代码里如何写？<br />window.opener.location.reload()</p><p>26.如何设定打开页面的大小<br />&lt;body onload="top.resizeTo(300,200);"&gt;<br />打开页面的位置&lt;body onload="top.moveBy(300,200);"&gt;</p><p>27.在页面中如何加入不是满铺的背景图片,拉动页面时背景图不动 <br />&lt;STYLE&gt; <br />body <br />{background-image:url(logo.gif); background-repeat:no-repeat; <br />background-position:center;background-attachment: fixed} <br />&lt;/STYLE&gt; </p><p>28. 检查一段字符串是否全由数字组成<br />&lt;script language="Javascript"&gt;&lt;!--<br />function checkNum(str){return str.match(//D/)==null}<br />alert(checkNum("1232142141"))<br />alert(checkNum("123214214a1"))<br />// --&gt;&lt;/script&gt;</p><p>29. 获得一个窗口的大小<br />document.body.clientWidth; document.body.clientHeight</p><p>30. 怎么判断是否是字符<br />if (/[^/x00-/xff]/g.test(s)) alert("含有汉字");<br />else alert("全是字符");</p><p>31.TEXTAREA自适应文字行数的多少<br />&lt;textarea rows=1 name=s1 cols=27 onpropertychange="this.style.posHeight=this.scrollHeight"&gt;<br />&lt;/textarea&gt;<br /></p><p>32. 日期减去天数等于第二个日期<br />&lt;script language=Javascript&gt;<br />function cc(dd,dadd)<br />{<br />//可以加上错误处理<br />var a = new Date(dd)<br />a = a.valueOf()<br />a = a - dadd * 24 * 60 * 60 * 1000<br />a = new Date(a)<br />alert(a.getFullYear() + "年" + (a.getMonth() + 1) + "月" + a.getDate() + "日")<br />}<br />cc("12/23/2002",2)<br />&lt;/script&gt;</p><p>33. 选择了哪一个Radio<br />&lt;HTML&gt;&lt;script language="vbscript"&gt;<br />function checkme()<br />for each ob in radio1<br />if ob.checked then window.alert ob.value<br />next<br />end function<br />&lt;/script&gt;&lt;BODY&gt;<br />&lt;INPUT name="radio1" type="radio" value="style" checked&gt;Style<br />&lt;INPUT name="radio1" type="radio" value="barcode"&gt;Barcode<br />&lt;INPUT type="button" value="check" onclick="checkme()"&gt;<br />&lt;/BODY&gt;&lt;/HTML&gt;</p><p>34.脚本永不出错<br />&lt;SCRIPT LANGUAGE="JavaScript"&gt; <br />&lt;!-- Hide <br />function killErrors() { <br />return true; <br />} <br />window.onerror = killErrors; <br />// --&gt; <br />&lt;/SCRIPT&gt;</p><p>35.ENTER键可以让光标移到下一个输入框<br />&lt;input onkeydown="if(event.keyCode==13)event.keyCode=9"&gt;</p><p>36. 检测某个网站的链接速度：<br />把如下代码加入&lt;body&gt;区域中:<br />&lt;script language=Javascript&gt;<br />tim=1<br />setInterval("tim++",100)<br />b=1<br />var autourl=new Array()<br />autourl[1]="<font color="#002c99">www.njcatv.net</font>"<br />autourl[2]="javacool.3322.net"<br />autourl[3]="<font color="#002c99">www.sina.com.cn</font>"<br />autourl[4]="<font color="#002c99">www.nuaa.edu.cn</font>"<br />autourl[5]="<font color="#002c99">www.cctv.com</font>"<br />function butt(){<br />document.write("&lt;form name=autof&gt;")<br />for(var i=1;i&lt;autourl.length;i++)<br />document.write("&lt;input type=text name=txt"+i+" size=10 value=测试中……&gt; =》&lt;input type=text <br />name=url"+i+" size=40&gt; =》&lt;input type=button value=GO </p><p>onclick=window.open(this.form.url"+i+".value)&gt;&lt;br&gt;")<br />document.write("&lt;input type=submit value=刷新&gt;&lt;/form&gt;")<br />}<br />butt()<br />function auto(url){<br />document.forms[0]["url"+b].value=url<br />if(tim&gt;200)<br />{document.forms[0]["txt"+b].value="链接超时"}<br />else<br />{document.forms[0]["txt"+b].value="时间"+tim/10+"秒"}<br />b++<br />}<br />function run(){for(var i=1;i&lt;autourl.length;i++)document.write("&lt;img src=http://"+autourl+"/"+Math.random()+" width=1 height=1 </p><p>onerror=auto("<font color="#002c99">http://"+autourl</font>+"")&gt;")}<br />run()&lt;/script&gt;</p><p>37. 各种样式的光标<br />auto ：标准光标<br />default ：标准箭头<br />hand ：手形光标<br />wait ：等待光标<br />text ：I形光标<br />vertical-text ：水平I形光标<br />no-drop ：不可拖动光标<br />not-allowed ：无效光标<br />help ：?帮助光标<br />all-scroll ：三角方向标<br />move ：移动标<br />crosshair ：十字标<br />e-resize<br />n-resize<br />nw-resize<br />w-resize<br />s-resize<br />se-resize<br />sw-resize<br /></p><p>38.页面进入和退出的特效<br />进入页面&lt;meta http-equiv="Page-Enter" content="revealTrans(duration=x, transition=y)"&gt;<br />推出页面&lt;meta http-equiv="Page-Exit" content="revealTrans(duration=x, transition=y)"&gt;  <br />这个是页面被载入和调出时的一些特效。duration表示特效的持续时间，以秒为单位。transition表示使用哪种特效，取值为1-23:<br />　　0 矩形缩小 <br />　　1 矩形扩大 <br />　　2 圆形缩小<br />　　3 圆形扩大 <br />　　4 下到上刷新 <br />　　5 上到下刷新<br />　　6 左到右刷新 <br />　　7 右到左刷新 <br />　　8 竖百叶窗<br />　　9 横百叶窗 <br />　　10 错位横百叶窗 <br />　　11 错位竖百叶窗<br />　　12 点扩散 <br />　　13 左右到中间刷新 <br />　　14 中间到左右刷新<br />　　15 中间到上下<br />　　16 上下到中间 <br />　　17 右下到左上<br />　　18 右上到左下 <br />　　19 左上到右下 <br />　　20 左下到右上<br />　　21 横条 <br />　　22 竖条 <br />　　23 以上22种随机选择一种</p><p>39.在规定时间内跳转<br />&lt;META http-equiv=V="REFRESH" content="5;URL=http://www.51js.com"&gt; </p><p>40.网页是否被检索<br />&lt;meta name="ROBOTS" content="属性值"&gt;<br />　　其中属性值有以下一些:<br />　　属性值为"all": 文件将被检索，且页上链接可被查询；<br />　　属性值为"none": 文件不被检索，而且不查询页上的链接；<br />　　属性值为"index": 文件将被检索；<br />　　属性值为"follow": 查询页上的链接；<br />　　属性值为"noindex": 文件不检索，但可被查询链接；<br />　　属性值为"nofollow": 文件不被检索，但可查询页上的链接。</p></span>
								</td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.cnitblog.com/iniboy/aggbug/9103.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/iniboy/" target="_blank">青</a> 2006-04-13 12:51 <a href="http://www.cnitblog.com/iniboy/archive/2006/04/13/9103.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java编译命令学习</title><link>http://www.cnitblog.com/iniboy/archive/2006/04/04/8767.html</link><dc:creator>青</dc:creator><author>青</author><pubDate>Tue, 04 Apr 2006 08:17:00 GMT</pubDate><guid>http://www.cnitblog.com/iniboy/archive/2006/04/04/8767.html</guid><wfw:comment>http://www.cnitblog.com/iniboy/comments/8767.html</wfw:comment><comments>http://www.cnitblog.com/iniboy/archive/2006/04/04/8767.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/iniboy/comments/commentRss/8767.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/iniboy/services/trackbacks/8767.html</trackback:ping><description><![CDATA[jar -cvf  文件名.jar  .\       把当前文件夹的所有文件压缩成文件名.jar<br /><br />C:\exercise&gt;javac -d C:\exercise\   Hello.java    把当前的Hello.java 文件编译到包路径下 <img src ="http://www.cnitblog.com/iniboy/aggbug/8767.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/iniboy/" target="_blank">青</a> 2006-04-04 16:17 <a href="http://www.cnitblog.com/iniboy/archive/2006/04/04/8767.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>