JAVA网站制作之实例代码:JSP高会见量下的计数程序
比如模式、敏捷方法什么的,这些思想好,但是实施的人没有理解而且没有正确运用这些知识导致了开发周期的延长。比如说对象,通过getName()方法不能获取对象的名字。js|程序|会见 偶然要为每篇文章统计其点击次数,假如每次扫瞄都要更新一次库的话,那功能在会见量很年夜的情形下,服务器的压力就会很年夜了,对照好一点的办法就是先将要更新的数据缓存起来,然后每隔一段工夫再使用数据库的批量处置,批量更新库。源码以下:CountBean.java
/*
*CountData.java
*
*Createdon2006年10月18日,下战书4:44
*
*Tochangethistemplate,chooseTools|Optionsandlocatethetemplateunder
*theSourceCreationandManagementnode.Right-clickthetemplateandchoose
*Open.YoucanthenmakechangestothetemplateintheSourceEditor.
*/
packagecom.tot.count;
/**
*
*/
publicclassCountBean{
privateStringcountType;
intcountId;
/**CreatesanewinstanceofCountData*/
publicCountBean(){}
publicvoidsetCountType(StringcountTypes){
this.countType=countTypes;
}
publicvoidsetCountId(intcountIds){
this.countId=countIds;
}
publicStringgetCountType(){
returncountType;
}
publicintgetCountId(){
returncountId;
}
}
CountCache.java
/*
*CountCache.java
*
*Createdon2006年10月18日,下战书5:01
*
*Tochangethistemplate,chooseTools|Optionsandlocatethetemplateunder
*theSourceCreationandManagementnode.Right-clickthetemplateandchoose
*Open.YoucanthenmakechangestothetemplateintheSourceEditor.
*/
packagecom.tot.count;
importjava.util.*;
/**
*
*/
publicclassCountCache{
publicstaticLinkedListlist=newLinkedList();
/**CreatesanewinstanceofCountCache*/
publicCountCache(){}
publicstaticvoidadd(CountBeancb){
if(cb!=null){
list.add(cb);
}
}
}
CountControl.java
/*
*CountThread.java
*
*Createdon2006年10月18日,下战书4:57
*
*Tochangethistemplate,chooseTools|Optionsandlocatethetemplateunder
*theSourceCreationandManagementnode.Right-clickthetemplateandchoose
*Open.YoucanthenmakechangestothetemplateintheSourceEditor.
*/
packagecom.tot.count;
importtot.db.DBUtils;
importjava.sql.*;
/**
*/
publicclassCountControl{
privatestaticlonglastExecuteTime=0;//前次更新工夫
privatestaticlongexecuteSep=60000;//界说更新距离工夫,单元毫秒
/**CreatesanewinstanceofCountThread*/
publicCountControl(){}
publicsynchronizedvoidexecuteUpdate(){
Connectionconn=null;
PreparedStatementps=null;
try{
conn=DBUtils.getConnection();
conn.setAutoCommit(false);
ps=conn.prepareStatement("updatet_newssethits=hits+1whereid=?");
for(inti=0;i<CountCache.list.size();i++){
CountBeancb=(CountBean)CountCache.list.getFirst();
CountCache.list.removeFirst();
ps.setInt(1,cb.getCountId());
ps.executeUpdate();⑴
//ps.addBatch();⑵
}
//int[]counts=ps.executeBatch();⑶
conn.commit();
}catch(Exceptione){
e.printStackTrace();
}finally{
try{
if(ps!=null){
ps.clearParameters();
ps.close();
ps=null;
}
}catch(SQLExceptione){}
DBUtils.closeConnection(conn);
}
}
publiclonggetLast(){
returnlastExecuteTime;
}
publicvoidrun(){
longnow=System.currentTimeMillis();
if((now-lastExecuteTime)>executeSep){
//System.out.print("lastExecuteTime:"+lastExecuteTime);
//System.out.print("now:"+now+"
");
//System.out.print("sep="+(now-lastExecuteTime)+"
");
lastExecuteTime=now;
executeUpdate();
}
else{
//System.out.print("waitfor"+(now-lastExecuteTime)+"seconds:"+"
");
}
}
}
//注:假如你的数据库驱动撑持批处置,那末能够将⑵,⑶标志的代码前的正文往失落,同时在代码⑴前加上正文
类写好了,上面是在JSP中以下挪用。
<%
CountBeancb=newCountBean();
cb.setCountId(Integer.parseInt(request.getParameter("cid")));
CountCache.add(cb);
out.print(CountCache.list.size()+"<br>");
CountControlc=newCountControl();
c.run();
out.print(CountCache.list.size()+"<br>");
%>
你对java乐观有点盲目。java的关键就是在服务器上表现优异,而且它提供了整个开发所需要的工具。应该是说,看哪天。net有没有机会赶上java。 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
页:
[1]