自动拒绝无聊程序的老是打嗝是什么原因?手机老是一看就是很多程序或责游戏要你下载!你关也关不掉,老是让手机按不动

Access denied | www.vpsee.com used Cloudflare to restrict access
Please enable cookies.
What happened?
The owner of this website (www.vpsee.com) has banned your access based on your browser's signature (420d5b8e786c9402-ua98).有人告诉我,程序路是条高速路,你不行就趁早靠边站。所以我需要加倍努力。我的QQ是:
想寻找一个美工,以后做网站或系统时可以合作,如果有意者请加QQ,加时请注明“美工*合作”。&(字节数: 54) [原创
0:10:37]&&author.java
package com.
public class Author {
&&& private int
&&& private String
&&& public int getId() {
&&&&&& return
&&& public void setId(int id) {
&&&&&& this.id =
&&& public String getName() {
&&&&&& return
&&& public void setName(String name) {
&&&&&& this.name =
:author.xml
&?xml version="1.0" encoding="UTF-8" ?&
PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd"&
&!--模块配置--&
&!--设置本映射文件中的别名--&
"author""com.ibatis.Author"
&cacheModel type="LRU" &
&设置缓存有效期,如果超出这个时间,则会清空缓存
&&flushInterval hours="24"&&/flushInterval&
&指定执行特定的statement时,清空缓存
&&flushOnExecute statement="updateAuthor"/&
&SIZE:本cacheModel最大容纳数据对象的数量
&&property value="1000"/&
&/cacheModel&
需要使用模块配置,如:&select resultClass="author" cacheModel="authorCache"&
把记录使用cacheModel"authorCache"进行缓存,以后程序再使用statement进行数据查询,就直接
去缓存中取数据,而不是去数据库中取数据
&!--Statement配置--&
&&![CDATA[ *
&&![CDATA[
& delete from author WHERE
&&![CDATA[
(,) (##,##)]]&
:SqlMapConfig.properties
driver=com.microsoft.jdbc.sqlserver.SQLServerDriver
url=jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=ibatis
username=sa
password=sa
:SqlMapConfig.xml
&?xml version="1.0" encoding="UTF-8" ?&
PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-config-2.dtd"&
&!-- Ibatis配置文件--&
&!-- 加载连接数据库属性文件 --&
"com/ibatis/SqlMapConfig.properties"
cacheModelsEnabled:是否启动SqlMapClient的缓存机制。
enhancementEnabled:是否针对POJO启用字节码增加机制以提升geter/seter的调用效用,为延迟加载带来了及大的性能提升。
lazyLoadingEnabled:是否启用延迟加载机制。
maxRequests:最大并大请求数。
maxSessions:最大Session数,即当前最大允许的开发SqlMapClient数
maxTransactions:最大并发事务数。&&
&!-- datasource --&
&!--JDBC驱动--&
JDBC.Driver "${driver}"
&!--数据库URL--&
&!--数据库用户名--&
"${username}"
&!--数据库密码--&
"${password}"
&!--不知道,在网站上查不出来,有时间再研究--&
&!--数据库连接池可维持的最大容量--&
&!--数据库连接池中允许的可挂起连接数--&
&!--数据库连接池中,连接被某个任务所占用的最大时间--&
&!--当线程想从连接池中获取连接时,连接池中无可用连接,该参数设置线程所允许等待的最长时间--&
&!--数据库连接状态检查语句--&
"select 1 from author"
&!--是否允许检查连接状态--&
&!--对持续连接超过设定值的连接进行检查--&
&!--对空闲超过设定值的连接进行检查--&
&!--加载SqlMap文件--&
"com/ibatis/author.xml"
package com.
import java.io.IOE
import java.io.R
import com.ibatis.common.resources.R
import com.ibatis.sqlmap.client.SqlMapC
import com.ibatis.sqlmap.client.SqlMapClientB
public class SqlMapConf {
&//SqlMapClient
&private static SqlMapC
& //ibatis
& String resource="com/ibatis/SqlMapConfig.xml";
&& //ibatis
&& Reader reader=Resources.getResourceAsReader(resource);
&& //SqlMapClientBuilderSqlMapClient
&& sqlmapclient=SqlMapClientBuilder.buildSqlMapClient(reader);
& } catch (IOException e) {
&& // TODO Auto-generated catch block
&& System.out.println("SqlMapConfig.xml~~");
&public static SqlMapClient getInstance(){
& //sqlmapclient,SqlMapClientibatis
& * SqlMapClient
& * XmlSqlMapClientBuilder xmlbuilder=new XmlSqlMapClientBuilder();
& * SqlMapClient sqlmapclient=xmlbuilder.builderSqlMap(reader);
& * XmlSqlMapClientBuilderibatis2.01.X
& * XmlSqlMapBuilderSqlMapClient
package com.
import java.sql.SQLE
import java.util.L
import java.util.*;
import com.ibatis.sqlmap.client.SqlMapC
&* ibatisJDBC,JTA,EXTERNAL
&* JDBC:JDBC CONNECTION.COMIT/rollback
&* JTA:JTA
&* EXTERNAL:EJBIBATISEJB
public class IbatisClient {
&private static SqlMapClient sqlmapclient=SqlMapConf.getInstance();
&public static void updateAuthor(int id,String name){
& Author author=new Author();
&&&& author.setId(id);
&&&& author.setName(name);
&&&& try {
&&&&& //JDBC
&&&&& sqlmapclient.startTransaction();
&& sqlmapclient.update("updateAuthor",author);
& &sqlmapclient.commitTransaction();
& } catch (SQLException e) {
&& // TODO Auto-generated catch block
&& e.printStackTrace();
&& System.out.println("~~");
& finally{
&&& sqlmapclient.endTransaction();
&& } catch (SQLException e) {
&&& // TODO Auto-generated catch block
&&& e.printStackTrace();
&public static List findAll(){
& List list=
&& sqlmapclient.startTransaction();
&& //list=sqlmapclient.queryForList("getAllAuthor",null,0,1);
&& list=sqlmapclient.queryForList("getAllAuthor",null);
&& sqlmapclient.commitTransaction();
& } catch (SQLException e) {
&& // TODO Auto-generated catch block
&& e.printStackTrace();
&& System.out.println("~~");
& finally{
&&& sqlmapclient.endTransaction();
&& } catch (SQLException e) {
&&& // TODO Auto-generated catch block
&&& e.printStackTrace();
&public static boolean insert(int id,String name){
& boolean bool=
& Author author=new Author();
& author.setId(id);
& author.setName(name);
&& sqlmapclient.startTransaction();
&& sqlmapclient.insert("insertAuthor",author);
&& sqlmapclient.commitTransaction();
& } catch (SQLException e) {
&& // TODO Auto-generated catch block
&& e.printStackTrace();
&& System.out.println("~~");
& finally{
&&& sqlmapclient.endTransaction();
&& } catch (SQLException e) {
&&& // TODO Auto-generated catch block
&&& e.printStackTrace();
&public static boolean delete(int id){
& boolean bool=
& Author author=new Author();
& author.setId(id);
&& sqlmapclient.commitTransaction();
&& sqlmapclient.delete("deleteAuthor",author);
&& sqlmapclient.startTransaction();
& } catch (SQLException e) {
&& // TODO Auto-generated catch block
&& e.printStackTrace();
&& System.out.println("~~");
& finally{
&&& sqlmapclient.endTransaction();
&& } catch (SQLException e) {
&&& // TODO Auto-generated catch block
&&& e.printStackTrace();
&&& public static void main(String str[]){
&&&& //boolean bool=IbatisClient.delete(3);
&&&& //boolean bool=IbatisClient.insert(3,"wanwu");
&&&& //IbatisClient.updateAuthor(3,"jj");
&&&& List list=IbatisClient.findAll();
&&&& Iterator iterator=list.iterator();
&&&& while(iterator.hasNext()){
&&&&& Author author=(Author)iterator.next();
&&&&& System.out.println("&
&&&&& System.out.println("&
}&(字节数: 113868) [原创
22:12:59]&&
&(字节数: 3525) [原创
21:29:52]&&一、包含语句&&可包含的文件可以是任何后缀的文件如,*.inc、*.htm、*.jsp、*.txt等。例如,、&&。注:include指令包含的是文件的内容,所以被包含文件中不能包含&html&&head&&body&三个标签。二、另一个包含语句&jsp:include page="uri"/&用法主要有三种:
·& &jsp:include page="url"/&
·& &jsp:include page="url" flush="true"/&
·& &jsp:include page="url" flush="true"&
&jsp:parameter name="name" value="value"/&&&& &/jsp:include&三、比较两种包含语句的不同
1、后者又叫标签指令形式。和html有些类似,必须要有&/jsp:XXX&结束或是/&结束。  2、后者,可以向被包含页传递参数。当需要向被包含页传递参数时,被包含页必须是jsp动态页面。  3、接收包含语名的方法还是 request.getParameter("参数名");  4、后者如果包含的页面是jsp文件,而自动处理,如果包含的是静态内容,则直接包含进来。四、学到这里的时候可能经常有些面试题:请问jsp中两种包含语句的区别?  1、理解一:
·& &&&,静态包含,不管被包含页面的内容如何,先包含时行一起执行后发送到客户端。
·& &&jsp:include page="uri"/&,动态包含,能自动区分被包含文件是静态还是动态的。执行时,如果是静太资源则和上面一样把内容加进来,如果是动态资源,则先各自处理之后将处理后的结果包含在一起。&(字节数: 17462) [转贴
11:01:20]&&如何在涉世之初少走弯路,有一个好的开端,开始一番成功的事业?以下是一些先行者积累的10条有益的涉世忠告。好好地遵循、把握这些忠告和建议吧,比起所学的课堂课程来,它毫不逊色!
1. 买个闹钟,以便按时叫醒你。贪睡和不守时,都将成为你工作和事业上的绊脚石,任何时候都一样。不仅要学会准时,更要学会提前。就如你坐车去某地,沿途的风景很美,你忍不住下车看一看,后来虽然你还是赶到了某地,却不是准时到达。“闹钟”只是一种简单的标志和提示,真正灵活、实用的时间,掌握在每个人的心中。
2. 如果你不喜欢现在的工作,要么辞职不干,要么就闭嘴不言。初出茅庐,往往眼高手低,心高气傲,大事做不了,小事不愿做。不要养成挑三拣四的习惯。不要雨天烦打伞,不带伞又怕淋雨,处处表现出不满的情绪。记住,不做则已,要做就要做好。
3. 每个人都有孤独的时候。要学会忍受孤独,这样才会成熟起来。年轻人嘻嘻哈哈、打打闹闹惯了,到了一个陌生的环境,面对形形色色的人和事,一下子不知所措起来,有时连一个可以倾心说话的地方也没有。这时,千万别浮躁,学会静心,学会忍受孤独。在孤独中思考,在思考中成熟,在成熟中升华。不要因为寂寞而乱了方寸,而去做无聊无益的事情,白白浪费了宝贵的时间。
4.走运时要做好倒霉的准备。有一天,一只狐狸走到一个葡萄园外,看见里面水灵灵的葡萄垂涎欲滴。可是外面有栅栏挡着,无法进去。于是它一狠心绝食三日,减肥之后,终于钻进葡萄园内饱餐一顿。当它心满意足地想离开葡萄园时,发觉自己吃得太饱,怎么也钻不出栅栏了。相信任何人都不愿做这样的狐狸。退路同样重要。饱带干粮,晴带雨伞,点滴积累,水到渠成。有的东西今天似乎一文不值,但有朝一日也许就会身价百倍。
5. 不要像玻璃那样脆弱。有的人眼睛总盯着自己,所以长不高看不远;总是喜欢怨天尤人,也使别人无比厌烦。没有苦中苦,哪来甜中甜?不要像玻璃那样脆弱,而应像水晶一样透明,太阳一样辉煌,腊梅一样坚强。既然睁开眼睛享受风的清凉,就不要埋怨风中细小的沙粒。
6.管住自己的嘴巴。不要谈论自己,更不要议论别人。谈论自己往往会自大虚伪,在名不副实中失去自己。议论别人往往陷入鸡毛蒜皮的是非口舌中纠缠不清。每天下班后和你的那些同事朋友喝酒聊天可不是件好事,因为,这中间往往会把议论同事、朋友当做话题。背后议论人总是不好的,尤其是议论别人的短处,这些会降低你的人格。
7. 机会从不会“失掉”,你失掉了,自有别人会得到。不要凡事在天,守株待兔,更不要寄希望于“机会”。机会只不过是相对于充分准备而又善于创造机会的人而言的。也许,你正为失去一个机会而懊悔、埋怨的时候,机会正被你对面那个同样的“倒霉鬼”给抓住了。没有机会,就要创造机会,有了机会,就要巧妙地抓住。
8.若电话老是不响,你该打出去。很多时候,电话会给你带来意想不到的收获,它不是花瓶,仅仅成为一种摆设。交了新朋友,别忘了老朋友,朋友多了路好走。交际的一大诀窍就是主动。好的人缘好的口碑,往往助你的事业更上一个台阶。
9.千万不要因为自己已经到了结婚年龄而草率结婚。想结婚,就要找一个能和你心心相印、相辅相携的伴侣。不要因为放纵和游戏而恋爱,不要因为恋爱而影响工作和事业,更不要因一桩草率而失败的婚姻而使人生受阻。感情用事往往会因小失大。
10. 写出你一生要做的事情,把单子放在皮夹里,经常拿出来看。人生要有目标,要有计划,要有提醒,要有紧迫感。一个又一个小目标串起来,就成了你一生的大目标。生活富足了,环境改善了,不要忘了皮夹里那张看似薄薄的单子。&(字节数: 1619) [转贴
16:33:58]&&&&&关于代码重复最著名的单词是Kent Beck的Once And Only Once,也就是说软件操作的任何一个片断--不管是一个算法,一个常量集合,用于阅读的文档或者其他东西--应当只出现一次。
 软件重复出现至少会导致以下问题:
  · 其中的一个版本会过期  · 代码的责任会四处散开,导致代码难以理解  · 当你修改代码时,需要重复修改很多地方,一不小心就会遗漏  · 你不能很好地进行性能优化
  我以前的一位老板曾经跟我夸耀过他手下编程的能力:“他只要把一份模版代码拷过去,稍加修改,就可以完成一个新的模块“。我惊讶这位思路清晰的同时也怀疑这样的程序除了他自己以外还有谁能维护,我想可能连他自己也无法做到。   重复代码的产生由各种各样的原因,上面的例子就是一个,我经常看到程序员把几行或一整段代码从这里复制到这里,然后少加修改,就变成了一份新的代码。这里的原因是程序员可以通过极少的努力就完成代码重用,但是我们可以来看看DavidHooker提出的7个软件开发原则:
1.第一原则:
  存在的理由(Pattern: TheReason) 一个软件系统存在的理由就是:为它的用户提供价值。你所有的决定都取决于这一点。在指定一个系统需求,在写下一段系统功能,在决定硬件和开发过程之前,问你自己一个问题,“这样做会为系统增加价值吗?“,如果答案是”yes”,做。如果是”No”,不做。这个原则是其他原则的原则。
2.第二原则(能简单就简单,愚蠢!)KISS (Pattern: KeepItSimple) 软件设计不是一个轻描淡写的过程。
  在做任何一个设计时,你必须考虑很多因素。所有设计应当尽可能简单,但是不要再比这简单了。这样产生的系统才是可以理解和容易维护的。这并不是说很多由意义的特性,因为这种简单性也要被抛弃。确实很多更优雅的设计往往更简单,但简单并不意味着“quick and dirty."。事实上,简单是通过许多思考和一次一次的反复修改才达到的。这些努力的汇报就是更容易维护,代码错误更少。 (看看是否违反)
3.第三原则 :
  保持远见(Pattern: MaintainTheVision) 清晰的远见是一个软件项目成功的基础。. 没有这样的远见,项目开发最后就变成天天为一个不好的设计做补丁。Brooks说过: 概念的完整性是系统设计中最重要的问题。 Stroustrup 也说: 有一个干净的内部结构识构建一个可理解、可辨识、可维护 、可测试系统的基础。 Booch则总结道: 只有当你对系统的体系由一个清晰的感觉,才可能去发现通用的抽象和机制。开发这种通用性最终导致系统更简单,因此更小,更可靠 如果你不断地复制、粘贴、修改代码,最终你将陷入一个大泥潭(the Big Mud),你永远不可能对系统有一个清晰的认识。
4.第四原则:
  你制造的,别人会消费 (Pattern: WhatYouProduceTheyConsume) 软件系统不是在真空中使用的。其他人会使用、维护、文档你的系统。这依赖于对你系统的理解。所以,你设计、实现的东西应当能够让别人理解。要记住,你写的代码并非只给计算机看,你要时时记住,代码还要给人看。(Kent Beck) 如果到处泛滥似是而非的代码,别人如何能够辨别这些代码的相似和不同,如何去理解这些代码之间具有何种关系。
5.第五原则:
  对将来开放( Pattern BuildForTodayDesignForTomorrow) 一个成功的软件有很长的生命期。你必须能够使得软件能够适应这样和那样的变化。所以,一开始就不要软件设计到死角上去。请总是问一下自己“如果这样,那么。。?“这个问题,你要考虑到各种各样的可能性,而不光光是图省事。复制,粘贴一下即可。
6.第六原则:
 为重用做好计划 软件模式是重用计划的一种。不断重复的代码显然不是这样的计划。 (See CommentsOnSix)
7.第七原则:
  思考! 在采取任何动作之前首先做一个清晰、完整的考虑,这样才能产生更好的结果。如果你考虑了,但还是产生错误的结果,那么这种努力也是值得的。在你学习或研究类似的问题时,更容易理解和掌握。
  这些原则告诉我们轻松地复制、粘贴和修改代码不可能产生好的,也就是容易理解、维护、重用的代码。但请不要走极端。 我一直认为,一个好的软件系统是各种因素权衡的结果,也就是你如何把握一个度的问题。重复代码产生的另外一个主要原因就是做得太多,XP有一个基本原则叫做You Arent Gonna Need It,它是说“只实现你真正需要的东西,从来不去实现你预期需要的东西“。如果你去实现你现在认为将来需要的东西,不一定就是你以后真正需要的东西。你处于现在的环境中可能无法理解你要实现东西究竟是什么样子的。你会浪费大量的时间去构造这样不知道是否必须的可能性。同时,当你真正实现的时候就可能产生重复代码。   Martin Fowler在它的Refactoring一书中有很多用来处理代码重复,包括:   1. 同一个类的两个方法中有相同的表达式,使用Extract method,然后大家都调用该   2. 两个兄弟子类之间有相同的表达式,那么在这两个子类中使用Extract Method,接着使用pull up field,移到共同的超类   3. 如果结构相似而并非完全相同,用Extract method把相同部分和不同部分分开。然后使用Form Template method.   4. 如果方法使用不同的算法做相同的事情,那么使用substitute algorithm   5. 如果在两个不相干的类中有重复代码,那么在一个类中使用Extract class,然后在其他类中使用该class对象作为元素。 等等。   重复代码需要refactoring是毫无疑问的,关键在于,你如何找到重复代码,如果所有的重复代码都是死板的重复,那问题是很容易解决的。但是软件开发的复杂因素可能往往使重复代码表现为相似性而并非完全的重复。这些相似性可能并非一眼就能看出来。而是需要经过其它的Refactory步骤和一定的先见之明。   另一个问题就是排除重复代码的粒度,只有大段的重复代码有价值去排除,还是即使是小小的2、3句重复代码就应该去排除。重复代码排除的基本方法是建立自己单独的方法,如果系统中许许多多的方法都很小,方法之间相互调用的开销就会增加,它同时也增加了维护的开销。 但是,这些开销是值得的。   方法是覆盖的最小粒度,能够被覆盖的粒度越小,能够重用的范围和成都就愈广。但在这个问题上也不要走极端,只有当一个方法实现一个具体的可以用Intent Revealing Name(揭示意图的名字)命名时,一段代码才值得称为一个方法,而不是考虑其代码的多少。   Martin Fowler在他的refactoring中描述了很多这样的例子,Kent Beck则在Smalltalk Best Practice Pattern中更基础地揭示了隐含在这些refactoing下的意图。 下面是一个实际的例子,来自于Martin Fowler在ACM上的设计专栏:    class Invoice... String asciiStatement() {     StringBuffer result = new StringBuffer();     result.append(“Bill for “ + customer + “\n”);     Iterator it = items.iterator();     while(it.hasNext()) {      LineItem each = (LineItem) it.next();      result.append(“\t” + each.product() + “\t\t” + each.amount() + “\n”);     }     result.append(“total owed:” + total + “\n”);     return result.toString();    }     String htmlStatement() {      StringBuffer result = new StringBuffer();      result.append(“ Bill for ” + customer + “ ”);      result.append(“”);      Iterator it = items.iterator();     while(it.hasNext()) {      LineItem each = (LineItem) it.next();     result.append(“ ” + each.product() + “ ” + each.amount() + “ ”);     }
   result.append(“ ”);     result.append(“ total owed:” + total + “ ”);     return result.toString();     }     }
  asciiStatement和htmlStatement具有类似的基础结构,但是它们的实际步骤却有所不同。他们都完成三件事情:   1. 打印发票头   2. 循环每一个项目,并打印   3. 打印发票尾部 这种结构的相似性和意图马上上我们使用composed method(也就是Martin Fowler的Extract method):    interface Printer {     String header(Invoice iv);     String item(LineItem line);     String footer(Invoice iv);    }    static class AsciiPrinter implements Printer {     public String header(Invoice iv) {    return “Bill for “ + iv.customer + “\n”;    &  }     public String item(LineItem line) {    return “\t” + line.product()+ “\t\t” + line.amount() +“\n”;    &  }     public String footer(Invoice iv) {     return “total owed:” + iv.total + “\n”;    &&  }    }  象html则可以实现htmlPrinter.    class Invoice... public String statement(Printer pr) {     StringBuffer result = new StringBuffer();     result.append(pr.header(this));     Iterator it = items.iterator(); while(it.hasNext()) {    LineItem each = (LineItem) it.next();     result.append(pr.item(each));     }      result.append(pr.footer(this));      return result.toString();    }    class Invoice... public String asciiStatement2() {     return statement (new AsciiPrinter());    }   现在,statement包含一个通用的结构,重复性已经被排除。更重要的是,你可以实现其它的Printer,XXXPrinter,从而能够轻易地扩展系统。   BTW,Martin Fowler在这里使用了Dispatched Interpretation模式,statement隐瞒了内部的细节,它隐藏内部的数据和表示,当它需要Printer做一件事情时,它负责解码内部的,然后反过来把消息传给Printer.   参见:Martin Fowler:Refactoring:Improve the design of Existing Code Kent Beck : Smalltalk Best Pratice Pattern ACM: Martin Fowler Design column:Reduce repetation Kent Beck: Extreme Programming Explained &(字节数: 9091) [原创
16:22:02]&&tag
tagHelloTag
HelloTag.java
package tag_
import java.io.IOE
import javax.servlet.jsp.JspW
import javax.servlet.jsp.tagext.TagS
public class HelloTag extends TagSupport {
&&& public int doStartTag() {
&&&&&& try {// 使用JspWriter获得JSP的输出对象
&&&&&&&&&& JspWriter jspWriterOutput = pageContext.getOut();
&&&&&&&&&& jspWriterOutput.print("&font color=red&新天涯剑客,你完成了一个自定义标签!&/font&");
&&&&&& } catch (IOException ioEx) {
&&&&&&&&&& System.out.println("IOException in HelloTag " + ioEx);
&&&&&& return (SKIP_BODY);
helloTag.tld
&?xml version="1.0" encoding="UTF-8" ?&
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"&
&&& &tlib-version&1.0&/tlib-version&
&&& &jsp-version&1.2&/jsp-version&
&&& &short-name&helloTag&/short-name&
&&& &uri&/WEB-INF/helloTag&/uri&
&&& &display-name&helloTag&/display-name&
&&& &small-icon&&/small-icon&
&&& &large-icon&&/large-icon&
&&& &description&simple hello tags tag&/description&
&&&&&& &name&helloTag&/name&
&&&&&& &tag-class&tag_test.HelloTag&/tag-class&
&&&&&& &body-content&empty&/body-content&
&&&&&& &small-icon&&/small-icon&
&&&&&& &large-icon&&/large-icon&
&&&&&& &description&&/description&
&&&&&& &example&&/example&
&&& &/tag&
HelloTag.jsp
&%@page contentType="text/charset=gb2312"%&
&%@ taglib uri="/WEB-INF/helloTag.tld" prefix="hello"%&
&&& &head&
&&&&&& &title&Hello Tags Page&/title&
&&& &/head&
&&& &body&
&&&&&& &hello:helloTag /&
&&& &/body&
&/html&&(字节数: 46355) [转贴
14:15:34]&&   现在软件设计里到处都是模式,框架。有次朋友问什么是模式?我也在学习中,就我的学习经验,给出以下小结。(注意:个人观点,仅供参考,欢迎指正。)
  1.什么是模式?模式,即pattern。其实就是解决某一类问题的方法论。你把解决某类问题的方法总结归纳到理论高度,那就是模式。 Alexander给出的经典定义是:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。 模式有不同的领域,建筑领域有建筑模式,软件设计领域也有设计模式。当一个领域逐渐成熟的时候,自然会出现很多模式。
  什么是框架? 框架,即framework。其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。
  2.为什么要用模式? 因为模式是一种指导,在一个良好的指导下,有助于你完成任务,有助于你作出一个优良的设计方案,达到事半功倍的效果。而且会得到解决问题的最佳办法。
  为什么要用框架? 因为软件系统发展到今天已经很复杂了,特别是服务器端软件,设计到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。而且框架一般是成熟,稳健的,他可以处理系统很多细节问题,比如,事物处理,安全性,数据流控制等问题。还有框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。 框架一般处在低层应用平台(如J2EE)和高层业务逻辑之间的中间层。
  软件为什么要分层? 为了实现“高内聚、低耦合”。把问题划分开来各个解决,易于控制,易于延展,易于分配资源…总之好处很多啦:)。
  3.以下所述主要是JAVA,J2EE方面的模式和框架:
  常见的设计模式有什么? 首先,你要了解的是GOF的《设计模式--可复用面向对象软件的基础》一书(这个可以说是程序员必备的了),注意:GOF不是一个人,而是指四个人。它的原意是Gangs Of Four,就是“四人帮”,就是指此书的四个作者:Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides。这本书讲了23种主要的模式,包括:抽象工厂、适配器、外观模式等。
  还有其他的很多模式,估计有100多种。 软件设计模式太多,就我的理解简单说一下最常见的MVC模式。 MVC模式是1996年由Buschmann提出的: 模型(Model):就是封装数据和所有基于对这些数据的操作。 视图(View):就是封装的是对数据显示,即用户界面。 控制器(Control):就是封装外界作用于模型的操作和对数据流向的控制等。
  另外: RUP(Rational Unified Process)软件统一过程,XP(Extreme Programming)极端编程,这些通常被叫做“过程方法”,是一种软件项目实施过程的方法论,它是针对软件项目的实施过程提出的方法策略。也是另一个角度的模式。
  4.常见的JAVA框架有什么? WAF: 全称:WEB APPLICATION FRAMEWORK 主要应用方面:EJB层,(WEB层也有,但是比较弱)。 主要应用技术:EJB等 出处: 简述:这是SUN在展示J2EE平台时所用的例子PetStore(宠物商店系统)里面的框架。是SUN蓝皮书例子程序中提出的应用框架。它实现了 MVC和其他良好的设计模式。SUN的网站上有技术资料,最好下载PetStore来研究,WEBLOGIC里自带此系统,源码在bea\weblogic700\samples\server\src\petstore。这是学习了解J2EE的首选框架。 免费。
  主要应用方面:WEB层。 主要应用技术:JSP,TagLib,JavaBean,XML等 出处: 简述:这是APACHE的开源项目,目前应用很广泛。基于MVC模式,结构很好,基于JSP。Jbuilder8里已经集成了STRUTS1.02的制作。 免费。 简述WAF+STRUTS结合的例子:WEB层用STRUTS,EJB层用WAF: JSP(TagLib)――&ActionForm――&Action ――& Event――&EJBAction――&EJB ――&DAO――&Database JSP(TagLib) (forward) &――Action &――EventResponse&――
  主要应用方面:WEB层。 主要应用技术:servlet等 出处: 简述:这是APACHE的开源项目。基于SERVLET。据说速度比较快,基于service(pluggable implementation可插拔的执行组件)的方式提供各种服务。 免费。
  COCOON: 主要应用方面:WEB层。 主要应用技术:XML,XSP,servlet等 出处: 简述:这是APACHE的一个开源项目。基于XML,基于XSP(通俗地说,XSP是在XML静态文档中加入Java程序段后形成的动态XML文档。)。特点是可以与多种数据源交互,包括文件系统,数据库,LDAP,XML资源库,网络数据源等。 免费。
  ECHO: 主要应用方面:WEB层。 主要应用技术:servlet等 出处: 简述:nextapp公司的一个开源项目。基于SERVLET。页面可以做的很漂亮,结合echopoint,可以作出很多图形效果(里面用了jfreechart包)。使用SWING的思想来作网页,把HTML当作JAVA的类来做。但是大量使用Session,页面分帧(Frame)很多,系统资源消耗很大。 免费。
  JATO: 全称:SUN ONE Application Framework 主要应用方面:WEB层。 主要应用技术:JSP,TagLib,JavaBean等 出处: 简述:这是SUN推出的一个商业性框架,一看名字就知道是结合SUN ONE的平台推出的。我下载了JATO2.0看了一下,感觉有些简单,使用了JSP+TagLib+JavaBean。如他的DOC所说JATO是适合用在小的WEB应用里。 免费。
  TCF: 全称:Thin-Client Framework 主要应用方面:JAVA GUI。 主要应用技术:JAVA application等 出处: 简述:这是IBM出的一个框架。基于MVC模式,基于JAVA Application。推荐一篇介绍文章: 收费:每个企业对象license:2000美元。
  5.其实本文的目的在于“抛砖引玉”,希望各路高手请你们把各种框架的特点和出处罗列一下 ,供大家参考,选用。&(字节数: 5251) [转贴
10:45:51]&&
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& <st1:chsdate w:st="on" IsROCDate="False" IsLunarDate="False" Day="30" Month="5" Year="-5-30&(字节数: 9723) [原创
16:52:57]&&&&& 看官,当你看到这篇博客你真是太走运了,这是我头一次写关于和计算机技术沾点边并且又是自己原创的东西。言归正传,如果您遇到这样的问题,在这里我可以告诉你三种解决方案:
&&&& 《1》在&#8220;开始&#8221;的&#8220;运行&#8221;中键入msconfig,点击启动项,里面有一项是&#8220;全部禁用&#8221;,单击后,重启计算机,安装SQL Server,安装SQL结束后,再打开刚才&#8220;全部禁用&#8221;的画面,将防火墙和杀毒软件项选中(动态文字输入那项最好也选中,使用时方便),重启计算机,OVER。
&&&& 《2》卸载您电脑中的&#8220;暴风影音&#8221;(去哪里卸载不用我说了吧,卸载完后把安装目录也删除,重新安装SQL Server),呵呵,你成功了,纳闷吧,问题解决了就可以了,不用每个问题都知道答案,如果实在想知道,联系我吧。
&&&& 《3》运行&& REGEDIT& 进入注册表在HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session Manager中(看右边)找到PendingFileRenameOperations值并删除它
&&&& 如果问题解决,麻烦您留一下言,让我也为你高兴一下。如果您还有好的办法排除问题,请留言,我也学习一下,大家共同进步。
&&(字节数: 773) [原创
8:31:31]&&&
数据库连接池概述:&&&&数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。&&&&数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。&&&&数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中。
数据库连接池的最小连接数和最大连接数的设置要考虑到下列几个因素:1) 最小连接数是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费;2) 最大连接数是连接池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求将被加入到等待队列中,这会影响之后的数据库操作。3) 如果最小连接数与最大连接数相差太大,那么最先的连接请求将会获利,之后超过最小连接数量的连接请求等价于建立一个新的数据库连接。不过,这些大于最小连接数的数据库连接在使用完不会马上被释放,它将被放到连接池中等待重复使用或是空闲超时后被释放。
$CATALINA_HOME/conf/server.xml&Host&&/Host&
&&&&&&&&&&&&& &Context path="/MyWeb" docBase="MyWeb" debug="0" reloadable="true"&
&&&&&&&&&&&&& &Resource name="jdbc/connectDB" type="javax.sql.DataSource"/&
&&&&&&&&&&&&& &ResourceParams name="jdbc/connectDB"&
&&&&&&&&&&&&&&&&&&&& &parameter&
&&&&&&&&&&&&&&&&&&&&&&&&&&& &name&maxActive&/name&
&&&&&&&&&&&&&&&&&&&&&&&&&&& &value&100&/value&
&&&&&&&&&&&&&&&&&&&& &/parameter&
&&&&&&&&&&&&&&&&&&&& &parameter&
&&&&&&&&&&&&&&&&&&&&&&&&&&& &name&maxIdle&/name&
&&&&&&&&&&&&&&&&&&&&&&&&&&& &value&30&/value&
&&&&&&&&&&&&&&&&&&&& &/parameter&
&&&&&&&&&&&&&&&&&&&& &parameter&
&&&&&&&&&&&&&&&&&&&&&&&&&&& &name&maxWait&/name&
&&&&&&&&&&&&&&&&&&&&&&&&&&& &value&10000&/value&
&&&&&&&&&&&&&&&&&&&& &/parameter&
&&&&&&&&&&&&&&&&&&&& &parameter&
&&&&&&&&&&&&&&&&&&&&&&&&&&& &name&removeAbandoned&/name&
&&&&&&&&&&&&&&&&&&&&&&&&&&& &value&true&/value&
&&&&&&&&&&&&&&&&&&&& &/parameter&
&&&&&&&&&&&&&&&&&&&& &parameter&
&&&&&&&&&&&&&&&&&&&&&&&&&&& &name&removeAbandonedTimeout&/name&
&&&&&&&&&&&&&&&&&&&&&&&&&&& &value&60&/value&
&&&&&&&&&&&&&&&&&&&& &/parameter&
&&&&&&&&&&&&&&&&&&&& &parameter&
&&&&&&&&&&&&&&&&&&&&&&&&&&& &name&factory&/name&
&&&&&&&&&&&&&&&&&&&&&&&&&&& &value&org.apache.commons.dbcp.BasicDataSourceFactory&/value&
&&&&&&&&&&&&&&&&&&&& &/parameter&
&&&&&&&&&&&&&&&&&&&& &parameter&
&&&&&&&&&&&&&&&&&&&&&&&&&&& &name&username&/name&
&&&&&&&&&&&&&&&&&&&&&&&&&&& &value&sa&/value&
&&&&&&&&&&&&&&&&&&&& &/parameter&
&&&&&&&&&&&&&&&&&&&& &parameter&
&&&&&&&&&&&&&&&&&&&&&&&&&&& &name&password&/name&
&&&&&&&&&&&&&&&&&&&&&&&&&&& &value&sa&/value&
&&&&&&&&&&&&&&&&&&&& &/parameter&
&&&&&&&&&&&&&&&&&&&& &parameter&
&&&&&&&&&&&&&&&&&&&&&&&&&&& &name&driverClassName&/name&
&&&&&&&&&&&&&&&&&&&&&&&&&&& &value&net.sourceforge.jtds.jdbc.Driver&/value&
&&&&&&&&&&&&&&&&&&&& &/parameter&
&&&&&&&&&&&&&&&&&&&& &parameter&
&&&&&&&&&&&&&&&&&&&&&&&&&&& &name&url&/name&
&&&&&&&&&&&&&&&&&&&&&&&&&&& &value&jdbc:jtds:sqlserver://127.0.0.1:1433/pubs&/value&
&&&&&&&&&&&&&&&&&&&& &/parameter&
&&&&&&&&&&&&& &/ResourceParams&
&&&&&& &/Context&
&Context path=&#8220;/MyWeb&#8221; docBase=&#8220;MyWeb&#8221; debug=&#21; reloadable=&#8220;true&#8221; crossContext=&#8220;true&#8221;&1) path $CATALINA_HOME/webappstest2) docBase 3) reloader 4) maxActive 05) maxIdle 06) maxWait 17) removeAbandoned 8) removeAbandonedTimeout 9) driverClassName JDBC10) url
Myconn.java
package db_
import javax.naming.C
import javax.naming.InitialC
import javax.sql.DataS
import java.sql.C
import java.sql.ResultS
import java.sql.SQLE
import java.sql.S
public class Myconn {
&&& private Context ctx = null;
&&& private DataSource ds = null;
&&& private Connection conn = null;
&&& private Statement stmt = null;
&&& private ResultSet rs = null;
&&& public Myconn() {
&&&&&& try {
&&&&&&&&&& ctx = new InitialContext();
&&&&&&&&&& ds = (DataSource) ctx.lookup("java:comp/env/jdbc/connectDB");
&&&&&&&&&& conn = ds.getConnection();
&&&&&& } catch (Exception e) {
&&&&&&&&&& System.out.println("init---ERROR: " + e.getMessage());
&&& public ResultSet query(String sql){
&&&&&& try {
&&&&&&&&&& stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
&&&&&&&&&& rs = stmt.executeQuery(sql);
&&&&&& } catch (Exception e) {
&&&&&&&&&& System.out.println("query---ERROR:" + e.getMessage());
&&&&&& return rs;
&&& public int updata(String sql){
&&&&&& int n = 0;
&&&&&& try {
&&&&&&&&&& stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
&&&&&&&&&& n = stmt.executeUpdate(sql);
&&&&&& } catch (Exception e) {
&&&&&&&&&& System.out.println("updata---ERROR:" + e.getMessage());
&&&&&& return
&&& public void close() throws SQLException {
&&&&&& if (rs != null)
&&&&&&&&&& rs.close();
&&& &&& if (stmt != null)
&&&&&&&&&& stmt.close();
&&&&&& if (conn != null)
&&&&&&&&&& conn.close();
test.jsp& ()
&%@ page contentType="text/charset=utf-8"%&
&%@ page import="java.sql.ResultSet"%&
&%@ page import="java.text.SimpleDateFormat"%&
&%@ page import="java.util.Date"%&
&%@ page import="db_test.Myconn"%&
&&& Myconn db = new Myconn();
&&& ResultSet rs = null;
&&& String sql = "select * from sales";
&&& SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
&&& Date date = new Date();
&&& &head&
&&&&&& &title&测试连接数据库页&/title&
&&& &/head&
&&& &body&
&&& 今天是:&%=sdf.format(date)%&
&&&&&& try{
&&&&&& out.println("&table border='1' width='400'&");
&&&&&& rs = db.query(sql);
&&&&&&& while(rs.next()){
&&&&&&&&&&&&&&& String col1 = new String(rs.getString(1).getBytes("utf-8"));
&&&&&&&&&& &&&&&String col2 = rs.getString(2);
&&&&&&&&&&&&&&& String col3 = rs.getString(3);
&&&&&&&&&&&&&&& String col4 = rs.getString(4);
&&&&&&& out.println("&tr&&td&" + col1 + "&/td&&td&" + col2 + "&/td&&td&" + col3 + "&/td&&td&" + col4 + "&/td&&/tr&");
& &&&&&&out.println("&/table&");&&&&&&&&
&&&&&& rs.close();
&&&&&& }catch(Exception e){
&&&&&&&&&&& out.println("....Error:"+e.getMessage());
&&& &/body&
&&(字节数: 85724) [原创
15:40:59]&&include.jsp
&%&String pagename = request.getParameter("pagename");&int counter = 0;&if (application.getAttribute(pagename) == null) {&&counter = 1;&&application.setAttribute(pagename, new Integer(counter).toString());&} else {&&String scounter = (String) (application.getAttribute(pagename));&&counter = new Integer(scounter).intValue() + 1;&&application.setAttribute(pagename, new Integer(counter).toString());&}%&
testCounter.jsp
& contentType="text/charset=GB2312"%&&jsp:include page="include.jsp"&&&jsp:param name="pagename" value="testCounter" /&&/jsp:include&&p&&&%&&int count = Integer.parseInt((application.getAttribute("testCounter").toString()));&&out.print("欢迎光临!该页面已被访问" + count + "次。");&%&&/P&欢迎光临!该页面已被访问&%=count %&次。
&&(字节数: 1162) [转贴
15:33:54]&&package db_/************************************************&MD5 算法的Java Bean&@author:Topcat Tuppin&Last Modified:10,Mar,2001&*************************************************/
/*************************************************&md5 类实现了RSA Data Security, Inc.在提交给IETF&的RFC1321中的MD5 message-digest 算法。&*************************************************/
import java.lang.reflect.*;
public class MD5 {&/*& * 下面这些S11-S44实际上是一个4*4的矩阵,在原始的C实现中是用#define 实现的, 这里把它们实现成为static& * final是表示了只读,且能在同一个进程空间内的多个Instance间共享& */&static final int S11 = 7;&static final int S12 = 12;&static final int S13 = 17;&static final int S14 = 22;&static final int S21 = 5;&static final int S22 = 9;&static final int S23 = 14;&static final int S24 = 20;&static final int S31 = 4;&static final int S32 = 11;&static final int S33 = 16;&static final int S34 = 23;&static final int S41 = 6;&static final int S42 = 10;&static final int S43 = 15;&static final int S44 = 21;
&static final byte[] PADDING = { -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,&&&0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,&&&0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,&&&0, 0, 0, 0, 0, 0, 0 };&/*& * 下面的三个成员是MD5计算过程中用到的3个核心数据,在原始的C实现中 被定义到MD5_CTX结构中& */&private long[] state = new long[4]; // state (ABCD)&private long[] count = new long[2]; // number of bits, modulo 2^64 (lsb
&// first)
&private byte[] buffer = new byte[64]; // input buffer&/*& * digestHexStr是MD5的唯一一个公共成员,是最新一次计算结果的 16进制ASCII表示.& */&public String digestHexS
&/*& * digest,是最新一次计算结果的2进制内部表示,表示128bit的MD5值.& */&private byte[] digest = new byte[16];
&/*& * getMD5ofStr是类MD5最主要的公共方法,入口参数是你想要进行MD5变换的字符串& * 返回的是变换完的结果,这个结果是从公共成员digestHexStr取得的.& */&public String getMD5ofStr(String inbuf) {&&md5Init();&&md5Update(inbuf.getBytes(), inbuf.length());&&md5Final();&&digestHexStr = "";&&for (int i = 0; i & 16; i++) {&&&digestHexStr += byteHEX(digest[i]);&&}&&return digestHexS&}
&// 这是MD5这个类的标准构造函数,JavaBean要求有一个public的并且没有参数的构造函数&public MD5() {&&md5Init();&&&}
&/* md5Init是一个初始化函数,初始化核心变量,装入标准的幻数 */&private void md5Init() {&&count[0] = 0L;&&count[1] = 0L;&&& /* Load magic initialization constants.*/&&state[0] = 0xL;&&state[1] = 0xefcdab89L;&&state[2] = 0x98badcfeL;&&state[3] = 0xL;&&&}
&/*& * F, G, H ,I 是4个基本的MD5函数,在原始的MD5的C实现中,由于它们是& * 简单的位运算,可能出于效率的考虑把它们实现成了宏,在java中,我们把它们 实现成了private方法,名字保持了原来C中的。& */
&private long F(long x, long y, long z) {&&return (x & y) | ((~x) & z);&}
&private long G(long x, long y, long z) {&&return (x & z) | (y & (~z));&}
&private long H(long x, long y, long z) {&&return x ^ y ^&}
&private long I(long x, long y, long z) {&&return y ^ (x | (~z));&}
&/*& * FF,GG,HH和II将调用F,G,H,I进行近一步变换 FF, GG, HH, and II transformations for& * rounds 1, 2, 3, and 4. Rotation is separate from addition to prevent& * recomputation.& */
&private long FF(long a, long b, long c, long d, long x, long s, long ac) {&&a += F(b, c, d) + x +&&a = ((int) a && s) | ((int) a &&& (32 - s));&&a +=&&&}
&private long GG(long a, long b, long c, long d, long x, long s, long ac) {&&a += G(b, c, d) + x +&&a = ((int) a && s) | ((int) a &&& (32 - s));&&a +=&&&}
&private long HH(long a, long b, long c, long d, long x, long s, long ac) {&&a += H(b, c, d) + x +&&a = ((int) a && s) | ((int) a &&& (32 - s));&&a +=&&&}
&private long II(long a, long b, long c, long d, long x, long s, long ac) {&&a += I(b, c, d) + x +&&a = ((int) a && s) | ((int) a &&& (32 - s));&&a +=&&&}
&/*& * md5Update是MD5的主计算过程,inbuf是要变换的字节串,inputlen是长度,这个& * 函数由getMD5ofStr调用,调用之前需要调用md5init,因此把它设计成private的& */&private void md5Update(byte[] inbuf, int inputLen) {
&&int i, index, partL&&byte[] block = new byte[64];&&index = (int) (count[0] &&& 3) & 0x3F;&&// /* Update number of bits */&&if ((count[0] += (inputLen && 3)) & (inputLen && 3))&&&count[1]++;&&count[1] += (inputLen &&& 29);
&&partLen = 64 -
&&// Transform as many times as possible.&&if (inputLen &= partLen) {&&&md5Memcpy(buffer, inbuf, index, 0, partLen);&&&md5Transform(buffer);
&&&for (i = partL i + 63 & inputL i += 64) {&&&&md5Memcpy(block, inbuf, 0, i, 64);&&&&md5Transform(block);&&&}&&&index = 0;&&} else&&&i = 0;
&&// /* Buffer remaining input */&&md5Memcpy(buffer, inbuf, index, i, inputLen - i);&}
&/*& * md5Final整理和填写输出结果& */&private void md5Final() {&&byte[] bits = new byte[8];&&int index, padL
&&// /* Save number of bits */&&Encode(bits, count, 8);
&&// /* Pad out to 56 mod 64.&&index = (int) (count[0] &&& 3) & 0x3f;&&padLen = (index & 56) ? (56 - index) : (120 - index);&&md5Update(PADDING, padLen);
&&// /* Append length (before padding) */&&md5Update(bits, 8);
&&// /* Store state in digest */&&Encode(digest, state, 16);
&/*& * md5Memcpy是一个内部使用的byte数组的块拷贝函数,从input的inpos开始把len长度的& * 字节拷贝到output的outpos位置开始& */
&private void md5Memcpy(byte[] output, byte[] input, int outpos, int inpos,&&&int len) {&&&&for (i = 0; i & i++)&&&output[outpos + i] = input[inpos + i];&}
&/*& * md5Transform是MD5核心变换程序,有md5Update调用,block是分块的原始字节& */&private void md5Transform(byte block[]) {&&long a = state[0], b = state[1], c = state[2], d = state[3];&&long[] x = new long[16];&&Decode(x, block, 64);
&&/* Round 1 */&&a = FF(a, b, c, d, x[0], S11, 0xd76aa478L); /* 1 */&&d = FF(d, a, b, c, x[1], S12, 0xe8c7b756L); /* 2 */&&c = FF(c, d, a, b, x[2], S13, 0x242070dbL); /* 3 */&&b = FF(b, c, d, a, x[3], S14, 0xc1bdceeeL); /* 4 */&&a = FF(a, b, c, d, x[4], S11, 0xf57c0fafL); /* 5 */&&d = FF(d, a, b, c, x[5], S12, 0x4787c62aL); /* 6 */&&c = FF(c, d, a, b, x[6], S13, 0xa8304613L); /* 7 */&&b = FF(b, c, d, a, x[7], S14, 0xfd469501L); /* 8 */&&a = FF(a, b, c, d, x[8], S11, 0xL); /* 9 */&&d = FF(d, a, b, c, x[9], S12, 0x8b44f7afL); /* 10 */&&c = FF(c, d, a, b, x[10], S13, 0xffff5bb1L); /* 11 */&&b = FF(b, c, d, a, x[11], S14, 0x895cd7beL); /* 12 */&&a = FF(a, b, c, d, x[12], S11, 0x6b901122L); /* 13 */&&d = FF(d, a, b, c, x[13], S12, 0xfd987193L); /* 14 */&&c = FF(c, d, a, b, x[14], S13, 0xa679438eL); /* 15 */&&b = FF(b, c, d, a, x[15], S14, 0x49b40821L); /* 16 */
&&/* Round 2 */&&a = GG(a, b, c, d, x[1], S21, 0xf61e2562L); /* 17 */&&d = GG(d, a, b, c, x[6], S22, 0xc040b340L); /* 18 */&&c = GG(c, d, a, b, x[11], S23, 0x265e5a51L); /* 19 */&&b = GG(b, c, d, a, x[0], S24, 0xe9b6c7aaL); /* 20 */&&a = GG(a, b, c, d, x[5], S21, 0xd62f105dL); /* 21 */&&d = GG(d, a, b, c, x[10], S22, 0x2441453L); /* 22 */&&c = GG(c, d, a, b, x[15], S23, 0xd8a1e681L); /* 23 */&&b = GG(b, c, d, a, x[4], S24, 0xe7d3fbc8L); /* 24 */&&a = GG(a, b, c, d, x[9], S21, 0x21e1cde6L); /* 25 */&&d = GG(d, a, b, c, x[14], S22, 0xc33707d6L); /* 26 */&&c = GG(c, d, a, b, x[3], S23, 0xf4d50d87L); /* 27 */&&b = GG(b, c, d, a, x[8], S24, 0x455a14edL); /* 28 */&&a = GG(a, b, c, d, x[13], S21, 0xa9e3e905L); /* 29 */&&d = GG(d, a, b, c, x[2], S22, 0xfcefa3f8L); /* 30 */&&c = GG(c, d, a, b, x[7], S23, 0x676f02d9L); /* 31 */&&b = GG(b, c, d, a, x[12], S24, 0x8d2a4c8aL); /* 32 */
&&/* Round 3 */&&a = HH(a, b, c, d, x[5], S31, 0xfffa3942L); /* 33 */&&d = HH(d, a, b, c, x[8], S32, 0xL); /* 34 */&&c = HH(c, d, a, b, x[11], S33, 0x6d9d6122L); /* 35 */&&b = HH(b, c, d, a, x[14], S34, 0xfde5380cL); /* 36 */&&a = HH(a, b, c, d, x[1], S31, 0xa4beea44L); /* 37 */&&d = HH(d, a, b, c, x[4], S32, 0x4bdecfa9L); /* 38 */&&c = HH(c, d, a, b, x[7], S33, 0xf6bb4b60L); /* 39 */&&b = HH(b, c, d, a, x[10], S34, 0xbebfbc70L); /* 40 */&&a = HH(a, b, c, d, x[13], S31, 0x289b7ec6L); /* 41 */&&d = HH(d, a, b, c, x[0], S32, 0xeaa127faL); /* 42 */&&c = HH(c, d, a, b, x[3], S33, 0xd4ef3085L); /* 43 */&&b = HH(b, c, d, a, x[6], S34, 0x4881d05L); /* 44 */&&a = HH(a, b, c, d, x[9], S31, 0xd9d4d039L); /* 45 */&&d = HH(d, a, b, c, x[12], S32, 0xe6db99e5L); /* 46 */&&c = HH(c, d, a, b, x[15], S33, 0x1fa27cf8L); /* 47 */&&b = HH(b, c, d, a, x[2], S34, 0xc4ac5665L); /* 48 */
&&/* Round 4 */&&a = II(a, b, c, d, x[0], S41, 0xf4292244L); /* 49 */&&d = II(d, a, b, c, x[7], S42, 0x432aff97L); /* 50 */&&c = II(c, d, a, b, x[14], S43, 0xab9423a7L); /* 51 */&&b = II(b, c, d, a, x[5], S44, 0xfc93a039L); /* 52 */&&a = II(a, b, c, d, x[12], S41, 0x655b59c3L); /* 53 */&&d = II(d, a, b, c, x[3], S42, 0x8f0ccc92L); /* 54 */&&c = II(c, d, a, b, x[10], S43, 0xffeff47dL); /* 55 */&&b = II(b, c, d, a, x[1], S44, 0x85845dd1L); /* 56 */&&a = II(a, b, c, d, x[8], S41, 0x6fa87e4fL); /* 57 */&&d = II(d, a, b, c, x[15], S42, 0xfe2ce6e0L); /* 58 */&&c = II(c, d, a, b, x[6], S43, 0xa3014314L); /* 59 */&&b = II(b, c, d, a, x[13], S44, 0x4e0811a1L); /* 60 */&&a = II(a, b, c, d, x[4], S41, 0xf7537e82L); /* 61 */&&d = II(d, a, b, c, x[11], S42, 0xbd3af235L); /* 62 */&&c = II(c, d, a, b, x[2], S43, 0x2ad7d2bbL); /* 63 */&&b = II(b, c, d, a, x[9], S44, 0xeb86d391L); /* 64 */
&&state[0] +=&&state[1] +=&&state[2] +=&&state[3] +=&}
&/* Encode把long数组按顺序拆成byte数组,因为java的long类型是64bit的,只拆低32bit,以适应原始C实现的用途 */&private void Encode(byte[] output, long[] input, int len) {&&int i,&&for (i = 0, j = 0; j & i++, j += 4) {&&&output[j] = (byte) (input[i] & 0xffL);&&&output[j + 1] = (byte) ((input[i] &&& 8) & 0xffL);&&&output[j + 2] = (byte) ((input[i] &&& 16) & 0xffL);&&&output[j + 3] = (byte) ((input[i] &&& 24) & 0xffL);&&}&}
&/* Decode把byte数组按顺序合成成long数组,因为java的long类型是64bit的,只合成低32bit,高32bit清零,以适应原始C实现的用途 */&private void Decode(long[] output, byte[] input, int len) {&&int i,&&for (i = 0, j = 0; j & i++, j += 4)&&&output[i] = b2iu(input[j]) | (b2iu(input[j + 1]) && 8)&&&&&| (b2iu(input[j + 2]) && 16) | (b2iu(input[j + 3]) && 24);
&/*& * b2iu是我写的一个把byte按照不考虑正负号的原则的"升位"程序,因为java没有unsigned运算& */&public static long b2iu(byte b) {&&return b & 0 ? b & 0x7F + 128 :&}
&/*& * byteHEX(),用来把一个byte类型的数转换成十六进制的ASCII表示,& * 因为java中的byte的toString无法实现这一点,我们又没有C语言中的 sprintf(outbuf,"%02X",ib)& */&public static String byteHEX(byte ib) {&&char[] Digit = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A','B', 'C', 'D', 'E', 'F' };&&char[] ob = new char[2];&&ob[0] = Digit[(ib &&& 4) & 0X0F];&&ob[1] = Digit[ib & 0X0F];&&String s = new String(ob);&&&}
&public static void main(String args[]) {&&MD5 m = new MD5();&&if (Array.getLength(args) == 0) { // 如果没有参数,执行标准的Test Suite&&&System.out.println("MD5 Test suite:");&&&System.out.println("MD5(\" \"):" + m.getMD5ofStr(""));&&&System.out.println("MD5(\"a\"):" + m.getMD5ofStr("a"));&&&System.out.println("MD5(\"abc\"):" + m.getMD5ofStr("abc"));&&&System.out.println("MD5(\"message digest\"):"+m.getMD5ofStr("message digest"));&&&System.out.println("MD5(\"abcdefghijklmnopqrstuvwxyz\"):"+ m.getMD5ofStr("abcdefghijklmnopqrstuvwxyz"));&&&System.out.println("MD5(\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\"):"&&&&&&&+ m.getMD5ofStr("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));&&} else&&&System.out&&&&&.println("MD5(" + args[0] + ")=" + m.getMD5ofStr(args[0]));&}}
jsp页面使用MD5
&%@ page contentType="text/charset=utf-8"%&&%@ page import="java.io.*" %&&%@ page import="java.sql.*"%&&jsp:useBean id="oMD5" scope="request" class="db_test.MD5" /&&html&&&body&&&&%&&&String userid = request.getParameter("UserID"); // 获取用户输入UserID&&&String password = request.getParameter("Password"); // 获取用户输入的Password&&&String pwdmd5 = oMD5.getMD5ofStr(password); // 计算MD5的值&&&PrintWriter pw = response.getWriter();&&&Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");&&&Connection con = DriverManager.getConnection("jdbc:odbc:community","sa", "sa");&&&Statement stmt = con.createStatement();&&&ResultSet rs = stmt.executeQuery("select * from users where userID ='"+ userid + "' and pwdmd5= '" + pwdmd5 + "'");&&&if (rs.next()) {&&&&pw.print("Login OK");&&&} else {&&&&pw.print("Login Fail");&&&}&&&stmt.close();&&&con.close();&&%&&&/body&&/html&&(字节数: 17873) [转贴
19:08:46]&&1.&MySQL(;Class.forName(&"org.gjt.mm.mysql.Driver"&);&cn&=&DriverManager.getConnection(&"jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName",&sUsr,&sPwd&);&2.&PostgreSQL(;Class.forName(&"org.postgresql.Driver"&);&cn&=&DriverManager.getConnection(&"jdbc:postgresql://MyDbComputerNameOrIP/myDatabaseName",&sUsr,&sPwd&);&3.&Oracle(;Class.forName(&"oracle.jdbc.driver.OracleDriver"&);&cn&=&DriverManager.getConnection(&"jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL",&sUsr,&sPwd&);&4.&Sybase(;Class.forName(&"com.sybase.jdbc2.jdbc.SybDriver"&);&cn&=&DriverManager.getConnection(&"jdbc:sybase:Tds:MyDbComputerNameOrIP:2638",&sUsr,&sPwd&);&//(Default-Username/Password:&"dba"/"sql")&5.&Microsoft&SQLServer(;Class.forName(&"net.sourceforge.jtds.jdbc.Driver"&);&cn&=&DriverManager.getConnection(&"jdbc:jtds:sqlserver://MyDbComputerNameOrIP:1433/master",&sUsr,&sPwd&);&6.&Microsoft&SQLServer(;Class.forName(&"com.microsoft.jdbc.sqlserver.SQLServerDriver"&);&cn&=&DriverManager.getConnection(&"jdbc:microsoft:sqlserver://MyDbComputerNameOrIP:1433;databaseName=master",&sUsr,&sPwd&);&7.&ODBC&Class.forName(&"sun.jdbc.odbc.JdbcOdbcDriver"&);&Connection&cn&=&DriverManager.getConnection(&"jdbc:odbc:"&+&sDsn,&sUsr,&sPwd&);&8.DB2&Class.forName("com.ibm.db2.jdbc.net.DB2Driver");&String&url="jdbc:db2://192.9.200.108:6789/SAMPLE"&cn&=&DriverManager.getConnection(&url,&sUsr,&sPwd&);&9.access由于access并不是作为一项服务运行,所以url的方法对他不适用。access可以通过odbc,也可以通过服务器映射路径的形式找到.mdb文件,参见
作者Blog:&(字节数: 3351) [转贴
19:27:57]&&  1.Women need to cry. And they won't do it alone unless they know you can hear them.&&& 女人需要哭泣,并且只有在你能听到时才哭。
  2.Women especially love a bargain. && 女人特别喜欢便宜货。
  3.Women love to shop. It is the only area of the world where they feel like they're actually in control.&&& 女人喜欢购物,她们觉得那是她们在这个世界上能控制的惟一领域。
  4.Women will always ask questions that have no center answers, in an effort to trap you into feeling guilty.&  女人总是问一些没有正确答案的问题,她们想使你有犯罪感。
  5.Women love to talk. Silence intimidates them and they feelaneed to fill it, even if they have nothing to say.  女人喜欢交谈。沉默使她们不安,她们需要用交谈打破沉默,即使她们没什么可说的。
  6.Women need to feel like there are people worse off thantheyare.&  女人需要感觉到别人不如她们。
  7.Women hate bugs. Even the strong-willed ones need a man around when there's a spider or a wasp involved.   女人讨厌虫子。当看到一只蜘蛛或黄蜂时,即使意志力很强的女人也需要一个男人在身旁。
  8.Women can't keep secrets.  女人不能保守秘密。
  9.Women always go to public rest rooms in groups. It gives themachance to gossip.  女人经常结伴去公共卫生间,这是她们闲谈的好机会。
  10.Women can't refuse to answer a ringing phone, no matterwhatshe's doing.&  女人不会拒绝接听任何来电。电话铃一响,不论正在做什么,她都会去接电话。
  11.Women never understand why men love toys. Men understand that they wouldn't need toys if women had an "on/off" switch.  女人永远不会明白男人为什么喜欢玩具。男人认为,如果女人有开关,他们就不再需要玩具了。
  12.Women think all beer is the same.  女人觉得所有品牌的啤酒都是一个味儿。
  13.Women keep three different shampoos in the shower. After a woman showers, the bathroom will smell like a tropical rain forest.  通常,女人的浴室里总放着3种不同的洗发香波。她们沐浴后,浴室就散发着热带雨林的味道。
  14.Women don't understand the appeal of sports. Men seek entertainment that allows them to escape reality. Women seek entertainment that reminds them of how horrible things could be.  女人不能领略体育节目的魅力。男人从那些能让他们逃离现实的东西中寻找娱乐,女人则从那些能提醒她们现实有多糟糕的东西中寻找娱乐。
  15. If a man goes on a seven-day trip, he'll pack five days worth of clothes and will wear some things twice; if a woman goes on a seven-day trip she'll pack 21 outfits because she doesn't know what she'll feel like wearing each day.  如果一个男人要出门7天,他会带够5天穿的衣服,并且会将一些衣物穿两次。如果一个女人要出门7天,她会带够21天穿的衣服,因为她不知道自己每天喜欢穿什么。
  16.Women brush their hair before bed.  女人在睡觉前梳头。
  17.Women are paid less than men, except for one field: Modeling.  女人的薪水比男人低,只有一个行业例外―――模特。
  18.Women are never wrong. Apologizing is the man's responsibility.  女人永远不会犯错。道歉是男人的责任。
  19.Women do not know anything about cars, even if they drive car themselves.  女人对汽车一无所知,即使她们自己开车。
  20.Women have better rest rooms. They get the nice chairs andredcarpet.  女人的卫生间很讲究,那里有精致的椅子和红地毯。
  21.Women love cats. Men say they love cats, but when women aren't looking, men kick cats.  女人喜欢猫。男人说他们喜欢猫,但当女人看不见的时候,他们就会踢猫。
  22.Women love to talk on the phone. A woman can visit her girlfriend for two weeks, and upon returning home, she will call the same friend and they will talk for three hours.  女人喜欢煲电话粥。一个女人去看她的女朋友,她们一起生活了两个星期,她刚刚回家便会给这个女朋友打电话,她们会聊上3个小时。
  23. A woman will dress up to go shopping, water the plants,empty the garbage, answer the phone, read a book, or get the mail.  女人做什么事之前都会化妆―――购物、给植物浇水、倒垃圾、接电话、读书、收邮件.
  24.Women do NOT want an honest answer to the question,"How do I look?"  在这个问题上女人不想得到诚实的答案―――&#8220;我看上去怎么样?&#8221;
  25."Oh, nothing," has an entirely different meaning in woman-language than it does in man-language.  &#8220;哦,没什么。&#8221;这句话在女人的字典里的意思和在男人字典里的完全不同。
  26.All women will say that they are overweight, but don't agree with them about it.  所有女人都会说自己超重,但千万别对此表示赞同。
  27.Only women understand the need for "guest towels" and the "good china".  只有女人知道为什么&#8220;客用毛巾&#8221;和&#8220;好瓷器&#8221;是必要的。
  28.Women want equal centers, but you rarely hear them clamoringtocover the responsibilities that go with those centers.  女人要求享有与男人同样的权利,但你几乎听不到她们吵嚷着要求承担和男人同样的责任。
  29.Women can get out of speeding tickets by pouting. This will get men arrested.  面对超速行驶的罚单,噘嘴可以使女人免于处罚,却会使男人被拘留。
  30.Women don't really care about a sense of humor in a guydespiteclaims to the contrary.  女人并不真的在乎男人是否有幽默感,尽管她们声称幽默感很重要。
  31.Women will spend hours dressing up to go out, and then they'll go out and spend more time checking out other women. Men can never catch women checking out other men; women will always catch men checking out other women.  女人在出门前将花费数小时化妆,然后她们出门,花更多时间注视其他女人。男人永远不会察觉女人注视着其他男人,而女人总能察觉男人注视着其他女人。
  32.The most embarrassing thing for women is to find another woman wearing the same dress at a formal party.  最让女人尴尬的,就是在一个正式的聚会上发现另一个女人穿着和自己同样的衣服。
&&(字节数: 4839) [转贴
13:27:04]&&  setInterval动作的作用是在播放动画的时,每隔一定时间就调用函数,方法或对象。可以使用本动作更新来自数据库的变量或更新时间显示。setInterval动作的语法格式如下:setInterval(function,interval[,arg1,arg2,......argn])setInterval(object,methodName,interval[,arg1,arg2,.....argn])  第一种格式是标准动作面板中setInterval函数的默认语法,第二种格式是在专家模式动作中使用的方法。  其中的参数function是一个函数名或者一个对匿名函数的引用。object参数指定从Object对象派生的对象。methodName制定object参数中要调用的方法。interval制定对function或methodName调用两次之间的时间,单位是毫秒。后面的arg1等是可选的参数,用于制定传递给function或是methodName的参数。  setInterval它设置的时间间隔小于动画帧速(如每秒10帧,相当于100毫秒),则按照尽可能接近interval的时间间隔调用函数。而且必须使用updateAfterEvent动作来确保以足够的频率刷新屏幕。如果interval大于动画帧速,则只用在每次播放头进入某一帧是才调用,以减小每次刷新屏幕的影响。  下面的例子每隔1秒调用一次匿名函数。   setInterval(function(){trace("每隔1秒钟我就会显示一次")},1000);//这里的function(){}是没有函数名的函数。成为匿名函数,后面的1000是时间间隔,单位是毫秒。  下面的例子为我们展示如何带参数运行。 function show1(){trace("每隔1秒我就会显示一次");}function show2(str){trace(str);}setInterval(show1,1000);setInterval(show2,2000,"每隔2秒我就会显示一次");  上面已经将函数的setInterval方法介绍了。  下面我们将介绍对象的setInterval方法。  首先,写一个setInterval在动作中调用对象的方法的例子,该例子不需要传递参数。 myobj=new Object();//创建一个新的对象myobj.interval=function){trace("每隔1秒我就会显示一次");}//创建对象的方法。setInterval(myobj,"interval",1000);//设定时间间隔调用对象的方法。  接下来介绍如何传递参数。其实道理和函数的传递参数是一样的。 myobj=new Object();myobj.interval-function(str){trace(str);}setInterval(myobj,"interval",2000," 每隔2秒我就会显示一次");   注意。要调用为对象定义的方法时,必须在专家模式中使用第二种语法格式。  这样子的话呢,我们来作一个动态显示时间的画面。可以用下面的代码实现。 setInterval(show,1000);function show(){time=new Date();hour=time.getHours();minu=time.getMinutes();sec=time.get.Seconds();datetime=hour+":"+minu+":"+}//这里的datetime是一个动态文本框的变量名字。   这样子呢,setInterval这个方法大家应该学的很好了。现在呢,我们学习clearInterval.  clearInterval动作的作用是清楚对setInterval函数的调用,它的语法格式如下clearInterval(intervalid);intervalid是调用setInterval函数后返回的对象。  下面举一个简单的例子。 function show(){trace("每隔一秒我就会显示一次");}sh=setInterval(show,1000);clearInterval(sh);   好的至此,学习结束。希望对大家有所帮助。以上代码可以直接复制。&(字节数: 2265) [转贴
18:24:40]&&一,别以为在学生会你能得到你曾经想要的。工作的热情很可能因为你所看到的所经历的一些事而改变,但是也不必惧怕。你有大一一年来适应或者承受,并做出是继续坚持还是退出的决定。
二,大学可能有真实的爱情,但是记住只是可能。很多时候他们是因为别人都谈恋爱而羡慕或者别的原因而在一起。所以,不必为任何分手而受太大的伤,记住,太大的伤,真爱,还是值得追求的。
三,如果你的家庭一般的话,那么记得你在大学有很多意外用钱的地方。比如二专业或者将来的各种班,为了你的家人和你自己的前途,永远别乱花钱。记住,永远。
四,朋友,你大学的朋友很可能就是你将来事业的一部分。他们会帮助你。但是你也应该让自己有帮助他们的实力,所以,你要努力,你和你的朋友会一起在将来打造一个可能很辉煌的事业。很好听是吗?但是记住,你们都要努力。
五,很多事情当你再回忆时会发现其实没什么。所以,不管你当时多么生气愤怒或者别的,都告诉自己不必这样,你会发现其实真的不必。
六,学习,永远别忘记她。不管别人怎么说大学是个提高综合能力的地方云云,如果你学习失败了,你就什么也不是――不排除意外,但你考虑好了吗?你会是那个意外吗?
七,别说脏话,你应该知道习惯的力量。找工作或者和别人接触时,你随便的一个字或者几个字会让你在别人心中的形象大打折扣。
八,好好利用在公共场合说话的机会,展示或者锻炼,都可以。
九,别为你自己和别人下定论,无比重要。你所看到听到的可能只是一面,为这个失去可能的朋友,很不值。
十,如果你发现很久了你一直是一个人去食堂吃饭或者去上自习,别在意,大学里一个人是正常的,你觉得孤独?你的朋友是怕你觉得你没有自由的空间,所以别以为你没有朋友。
十一,很多事情别人通知你了,要说谢谢,没有通知你,不要责怪,因为那些事你其实应该自己弄清楚。
十二,"我请你吃饭"之类的话不要乱说,因为所有人都会当真,不管你自己怎么想,大学里请人吃饭是很平常的事,几乎连请一个自己不怎么认识的人吃饭都很正常.
十三,尊严是最重要的,但是在大学里,要懂得利用这个空间锻炼自己,要让自己的尊严有足够大的承受力,要知道,社会是一个最喜欢打碎人的尊严的地方,除了你自己,没人会为你保留它.
十四,大学是亚社会.对,所以,当你上了高年级后,要让自己有大人的形象,大一的孩子看到你,你要能让他们感觉到你是他们的学长.你很成熟.
十五,你有足够的理由佩服每天早起的人,不信得话,你去做.做到后会发现有很多人佩服你呢.
十六,经常给家里打个电话,即使他们说不想你.
十七,你可以有喝醉的时候,我们可以接受,但是你要明白和真正的朋友一醉才能让伤心事方休,否则,你只会是别人的谈资和笑柄.
十八,如果你四年内很少去图书馆的话,你就等于自己浪费了一大笔一大笔财富.所以,长去那里,随意翻翻,都有收获.
十九,不论男人还是女人,如果在大学里还把容貌当作重要的东西而过分重视的话,可能不会吃亏,但是早晚会吃亏.可能,很可能.
二十,面试时很多老总会问你----如果你能见到老总的话-----你会做什么??也许你现在其实就可以记得这个问题,这样可能以后会好好回答-----尤其对文科学生来说.
二十一,新学期如果你接新生的话,当被问到学校怎么样之类的问题时,你要记住你不但是这个学校的一分子,你更要给你学弟学妹带来信心,你走过大一,你应该知道那时候对学长的信任多深。
二十二,别总抱怨不公平,你的不公平对别人是公平的,辨证法――高三时学的,忘记了?
二十三,别迷恋网络游戏。千万别。
二十四,&#8220;我爱你&#8221;。别对很多人说这句话,在大学里,我的意思是,希望你只对一个人说,这是尊重你爱的人,更是尊重你自己的感情
二十五,大学,因为你呆的地方是大学,所以你有空间承受失败和打击,因此,你应该&#8230;&#8230;真的应该,找找&#8230;&#8230;自信和自傲的区别,可以用一辈子的。
二十六,如果你的个性让很多人对你敬而远之,那么你的个性是失败的,个性的成功在于能吸引,而不是能排斥。
二十七,如果把上课不睡觉当做一种锻炼并且你做到了,那么,你很强,而且记住,其实你应该是这样的,老师再差,也比学生强,因为他们是老师。
二十八,学生会的主席之类的干部,如果你尊重他们,告诉你自己那是因为他们是你的学长而不是因为他们是你的上级,事实上,大家都只是学生而已,只是学生。
二十九,疯狂英语的话:别怕丢人,如果你实在不行就别怕丢人,行的话,建议你们-去追求丢人,那是一种成功的尝试,至于为此笑话你的人,你可以把他们从你将来人生对手的名单中排除了,所以你也不要笑话那些上台丢人的人。
三十,从绝望中寻找希望,人生终将辉煌.  
三十一,如果你不抽烟的话,你的精力将比抽烟的时候好的多,这是绝对的.
三十二,你的确要学的有心计,但是记住,永远记住,在社会上要胜利的唯一的方法永远只是一个,那就是实力,永远不用怀疑.   三十三,面对不公平的东西,不要抱怨,你的不公平可能恰恰是别人的公平.所以,你不如去努力的奋斗,争取你自己最合适的公平.
三十四,人生百态,不要对新的看不惯的东西生气,无所谓的,比如说恋人同居问题,和我们很多人无关的.
三十五,别总请人吃饭,别总让别人请你吃饭______朋友除外!!!!!
三十六,在大学里就开始训练自己的冷静力,这是一种能力的,有大事时,能安静并能快速想出办法的人,很厉害.
三十七,大学的竞争范围是所有的大学生,所以,你知道是否可以放松学习的.
三十八,大了,成熟了,稳重了 ,但是这和激情不矛盾,一种对工作和学习的冲击力及持久力会让你有特殊的魅力和个人实力
三十九,记着 在所谓的学生会里即便你就是主席如果你的四级没过没有毕业证的话白搭 没单位想要你这样的人 单位需要的是工作的人 而不是当官的人 更何况现在的就是主席 学到的是喝酒 抽烟 相互的 吹捧
四十 永远不要嘲笑你的教师无知或者单调,因为有一天当你发现你用瞌睡来嘲弄教师实际上很愚蠢时,你在社会上已经碰了很多钉子了。
四十一 不要幻想自己成为招聘会上的宠儿,当你明白百分之七十的初中生都可以上大学时,你应该明白人们不会去崇拜一个群体的大多数的。
四十二 英语一定要学好,但英语绝对不会是你生活的全部保障,所以多学点东西可能有时会救命的
四十三,你可以看不惯一些东西,但是你应该学会接受――如果你没法改变那一切的话。
四十四,对陌生人,或者把对方当做一张白纸,或者把对方当你的朋友,总之别当做敌人,即使你听到再多的关于他(她)的不好的传闻。
四十五,爱你的人,不管你接不接受,你都应该感谢对方,这是对你们的尊重。
四十六,在晚上,听听收音机也是种快乐和幸福。
四十七: 每个星期一定要抽时间出来锻炼身体的。好处多多。
四十八,如果周围有人嫉妒你,那么你可以把他从你的竞争者之列排除了,嫉妒人之人,难以成大事。
四十九,别去争论,可以回忆一下,你会发现,人不可能赢得争论,可以说,争论所提级的话题都是不值得去争论的。
五十,成功的方法多种多样 ,别不接受你看不惯的方法。
五十一,男人,你长的可以不帅,但你这个人可以帅,而且,那才是真正得帅。(当然,女人也是同样得道理)所以,不必在穿着打扮上花太多心思。
五十二,只有学习潇洒才可能一切潇洒。但是只是可能,因为处世能力过分出众而成功得人是有,但是你必须牢记实力得价值。
五十三,进入大学,就是一个新的环境,接触新的人,你的所有过去对于他们来说是一张白纸,这是你最好的重新塑造自己形象的时候,改掉以前的缺点,没进入一个新的环境,都应该以全新的形象出现。
五十四,为爱坚持的人,记得坚持可以,但是不要为爱受伤。
五十五,或文或武,我是说你要有一样能行得地方,样样通样样松是为人之禁忌。样样通几样更通方是境界。
五十六,QQ是联系朋友的工具,可以是交朋友的工具但是别轻易相信QQ上的友谊更别轻易幻想QQ上朋友得样子。
五十七,还能冲动,表示你还对生活有激情,总是冲动,表示你还不懂生活。
五十八,如果你不能拥有,那么告诉自己别忘记――如果你能承受那伤痛的话。
五十九,虽然班级的概念在大学并不明显,但是也别忘记,你的同学你的朋友。
六十,准备考研,早点比晚点好。
六十一,别抱怨四级六级之类的东西,那是证明你能力的很好的东西。
六十二,要有精英意识,考虑一下,大学的人了,迷恋武侠言情,已经没有意义。
六十三,莫过于梗直,莫过于圆滑。外圆内方即可。
六十五,永远别渴望做个任何人都不得罪的人,有人反对有人支持然后自己做出决定是精彩的人生。
六十六,魄力,要有魄力,即使是失败,也不要让自己的人生平庸。
六十七,喜欢一个人,就勇敢的告诉他或者她,我在天涯说过大学是学习的地方,但是我理解爱情的力量。追求你真正爱的人,只要自己认为值得,那就是值得的。
六十八,应该相信一句话:没有不可能的事情!!!真的没有,只要去做,现在我们是学生,十年后呢??二十年后呢??想想。
六十九,我不去想是否能够成功,既然选择了远方,便只顾风雨兼程。
七十,后悔是一种耗费精神的情绪.后悔是比损失更大的损失,比错误更大的错误.所以不要后悔。
七十一, 我们确实活得艰难,一要承受种种外部的压力,更要面对自己内心的困惑。在苦苦挣扎中,如果有人向你投以理解的目光,你会感到一种生命的暖意,或许仅有短暂的一瞥,就足以使我感奋不已。
七十二,每个人都有潜在的能量,只是很容易:被习惯所掩盖,被时间所迷离,被惰性所消磨.
七十三,于千万人之中,遇见你所遇见的人;于千万年之中,时间的无涯荒野里,没有早一步,也没有晚一步,刚巧赶上了
七十四,你可以选择坚持,也可以选择放弃。没有对错。我是说对爱情来说,但是重要的是坚持你的选择。
七十五,相信时间的力量,可以冲淡很多东西。
七十六,在大学里坚持每天做一件相同的事,很能锻炼我们,试试便知。
七十七,多笑笑,会慢慢让自己真的快乐起来。
七十八,人生有很多次如果,但是没有一次但是.
七十九,当你不懂得放弃的时候,你可以告诉自己你还懂得坚持.
八十,大学的手机是否应该用只有自己有答案.
八十一,永远不要瞧不起大学里的贫困生.
八十二,在大学时代看看学校的招聘会吧.你会感觉到一种前途的危机.
八十三,全是人.全是人.全是人.我只有连说三次全是人才能形容出场面的人数. -------寝室一个大哥向我形容招聘会的场面,后来我去看了.全是人.全是人.全是人.
八十四,越大,我们就会发现对与错越是那么不明显.这不是错,这是事实,而且无法改变,所以这八十四,记得结交每一个值得结交的朋友。
八十五,无聊的时候,别忘记朋友。朋友无聊的时候,别忘记你是他们的朋友。
八十六,社会上要想分出层次,只有一个办法,那就是竞争,你必须努力,否则结局就是被压在社会的底层。&(字节数: 5103) [转贴
14:14:55]&&日,天津中流科技联手红帽中国(Redhat)联合建立开放SOA解决方案中心,共同发布开放SOA解决方案,以帮助客户实施SOA。开放SOA解决方案中心的成立,标志着中国市场上SOA整体解决方案一个新的里程碑的确立,借助两家公司在品牌和渠道上的优势,将为中国的SOA市场的推荐注入新的活力。
中流科技的SOA核心技术套件(中流SOA Suite)包括SOA Portal Server、REST Framework、REST Portlet Framework,SOA Framework等平台软件与开发框架。
中流SOA Suite是建设和实施SOA系统所必须的基础软件平台套件,与国外厂商所提供了SOA技术产品相比,最鲜明的优势特点是其REST(Representational State Transfer)核心架构,这是一种比同类SOA产品更加先进的核心技术架构。由于这种核心架构所带来的松散偶合性、敏捷性、方便实用性、安全性、高性能的特点使中流SOA Suite更加符合软件企业的实际需求。同时,中流SOA Suite也是提升软件开发效率、项目开发质量、降低开发成本、提高成果复用率,增加软件企业利润率的实用工具,其对软件开发者的体验效果是超乎想像的。
SOA是一套迅速普及的政府和企业IT战略,它将帮助政府和企业人员都通过统一的门户平台,安全登录,并得到个性化的服务,政府也可以通过公共数据交换平台方便,安全,可靠向各个下属部门及机关单位传递公文。切实达到了实现公共数据交换,将政府与地市信息系统连成一体,显著提高政府机关的协同办公能力和工作效率。为保障这种开放性技术的实施。中流科技还成立了一支专门的开放源码顾问团队,来保障服务的可靠实施。
随着SOA技}

我要回帖

更多关于 老是想睡觉是什么原因 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信