扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
hotspot 虚拟机(咱们平时开发用的sun公司的虚拟机,其他两大商用虚拟机是BEA的JRockit和IBM的J9)里面两个字节来限制大小,所以最多65536行,超过javac会无法编译。而且一个Java方法不能超过64k。一般一个Java类不要有太多行数,如果一个Java代码超过几千甚至过万,个人觉得应该考虑一些代码优化方式,比如继承;或者重新构思这个类。代码行数太多可读性查,不利于维护。
成都创新互联公司制作网站网页找三站合一网站制作公司,专注于网页设计,成都网站建设、成都网站制作,网站设计,企业网站搭建,网站开发,建网站业务,680元做网站,已为成百上千服务,成都创新互联公司网站建设将一如既往的为我们的客户提供最优质的网站建设、网络营销推广服务!
最近做网站的开发,需要做网站的访问量统计,以前也做过这方面的东西,不过以前做的时候是在asp下做的,而且只能实现简单的网站历史总访问量的统计,且访问的数据是放在文件一个文件中的,现在在jsp下实现,个人感觉如果再用文件的形式来存贮访问量的话,就有点辱没java语言的强大功能了,所以自己设计了一个网站访问量统计的程序,现帖出如下,希望对jsp开发的同学有帮助
首先说一下设计的思想,由于访问量需要在每个页面进行显示,如果每次都进行文件的读写,或是查询数据库的话,显示是极其浪费资源的,所以以下的程序,采用了缓存的方式,对访问量进行缓存,并在更新缓存的同时同步更新库中的数据,(说点题外话,这一步读者可以自己视情况而改为每隔一定的时间向数据库写一次数据,这样会占用更少的资源,而达到同样的效果,这里笔者只所以没有采用这种方式,是因为当前的java虚拟机还没有一种释放缓存并通知用户程序的机制,也就是说,如果系统资源不足,或是缓存的资源长时间未利用时,java虚拟机很可能会释放缓存,而在释放缓存之前虚拟机并不会通知程序做善后的处理,从而造成数据的丢失,而且虚拟机释放资源的时间也是不确定的,因为如果系统资源充足,有可能即使不用,也会隔很长一段时间系统才会释放缓存资源,所以读者如果采用这
DIV class="h"
%-- 记录网站访问次数 --%
%
Integer counter = (Integer)application.getAttribute("counter"); //先从application里面获取计数器的key的值
if(counter==null){
//如果该值为null,说明第一次访问
application.setAttribute("counter",1);
counter=(Integer)application.getAttribute("counter");
}else {
//如果该值不为空,取出来进行累加
int i = counter.intValue();
i++;
application.setAttribute("counter",i);//累加后再放进去
}
%
% User user =(User)session.getAttribute("users"); %
%="欢迎"+user.getName() % |您是第%=counter.intValue()%位访客
/DIV
谢谢~
public class Counter {
private int count;
// 每访问一次,计数器自加一
public int getCount() {
return ++count;
}
public void setCount(int count) {
this.count = count;
}
}
%-- 定义一个 session 范围内的计数器 记录个人访问信息 --%
jsp:useBean id="personCount" class="com.helloweenvsfei.jspweb.bean.Counter" scope="session" /
%-- 定义一个 application 范围内的计数器 记录所有人的访问信息 --%
jsp:useBean id="totalCount" class="com.helloweenvsfei.jspweb.bean.Counter" scope="application" /
div align="center"
form action="method.jsp" method="get"
fieldset style='width: 300'
legend计数器/legend
table align="center" width="400"
tr
td width=150 align="right" style="font-weight:bold; "您的访问次数:/td
td
%-- 获取个人的 访问次数 --%
jsp:getProperty name="personCount" property="count" / 次
/td
/tr
tr
td width=150 align="right" style="font-weight:bold; "总共的访问次数:/td
td
%-- 获取所有人的 访问次数 --%
jsp:getProperty name="totalCount" property="count" / 次
/td
/tr
/table
/fieldset
/form
/div
希望你能帮到你
优秀的JAVA程序员平常一天至少写150行代码,普通的JAVA程序员,平均一天的有效代码量大概是50~70行, 注意是有效代码。
延展回答:
JAVA程序员广义上是指一群以JAVA为谋生手段的软件开发人员。狭义的说,是指拥有SUN公司JAVA认证的程序员。Sun Java认证分为两个级别:Sun 认证Java程序员和Sun 认证Java开发员。通常要求程序员精通java基础,java高级编程,及常用java设计模式,并深入理解mvc编程模式,了解uml相关知识。
虽然JAVA人才的薪水很高,但是对该类人才需求旺盛的IT企业却很难招聘到合格的JAVA人员。其中,最根本的原因就是许多计算机专业的毕业生在读期间没有掌握实用的技能与经验,距离企业的实际用人需求有较大的差距。因此,计算机专业的大学生欲成为Java程序员,最便捷的一条路就是参加以实战项目为主要教学方法的JAVA职业技能培训,从而有效地缩短同企业具体用人需求之间的差距。
Java平台以其移动性、安全性和开放性受到追捧。据IDC预计,自2001年起的其后5年内,采用Java的IT产品的价值将翻番,在2006年将达到4.53亿美元,年增长率为14.9%。截止到2003年5月,Java注册开发商超过300万人,对JRE(Java运行环境)的下载达7200万次。詹姆斯·戈士林博士预计在3~5年内Java技术开发商将发展到1000万。无线Java也在迅速攀升。
步骤一、建一个表,表名任意,这里取名为:visitorcounter,表的结构如下所示:
+-------+------------------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+------------+----------------+
| id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| vdate | date | NO | | 2000-01-01 | |
| vnum | int(11) | NO | | 0 | |
+-------+------------------+------+-----+------------+----------------+
步骤二、建立一个java类,名字也为:visitorcounter,类的内容如下:
package com.hdzx.pub;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.Date;
public class VisitorCounter {
private final static String TABLE_NAME = "visitorcounter";
private static String today = null;
private static long today_num = 0;
private static long total_num = 0;
//加载访问量
public static void loadNum(){
if(total_num1)
loadTotalNum();
if(today_num1)
loadToadyNum();
}
//加载今日访问量
private static void loadToadyNum() {
// TODO Auto-generated method stub
DBConnect db = null;
ResultSet rs = null;
if(today==null)
today = getTodayDate();
String sql = "select vnum from "+TABLE_NAME+" where vdate='"+today+"'";
try {
db = new DBConnect();
rs = db.executeQuery(sql);
if(rs.next()){
today_num = rs.getLong("vnum");
}
else
{
sql = "insert into "+TABLE_NAME+"(vdate,vnum) values('"+today+"',0)";
db.executeUpdate(sql);
today_num = 0;
}
} catch (Exception e) {
// TODO: handle exception
today_num = 0;
System.out.println("com.hdzx.pub~VisitorCounter.incTotalCounter:获得访问人数");
}
}
//加载总访问量
private static void loadTotalNum() {
// TODO Auto-generated method stub
// TODO Auto-generated method stub
DBConnect db = null;
ResultSet rs = null;
if(today==null)
today = getTodayDate();
String sql = "select vnum from "+TABLE_NAME+" where id=1";
try {
db = new DBConnect();
rs = db.executeQuery(sql);
if(rs.next()){
total_num = rs.getLong("vnum");
}
else
{
total_num = 0;
}
} catch (Exception e) {
// TODO: handle exception
total_num = 0;
System.out.println("com.hdzx.pub~VisitorCounter.incTotalCounter:获得访问人数");
}
}
//增加总的访问量
private static int incTotalCounter(){
int k = 0;
DBConnect db = null;
loadNum();
total_num = total_num+1;
String sql = "update "+TABLE_NAME+" set vnum="+total_num+" where id=1";
try {
db = new DBConnect();
k = db.executeUpdate(sql);
} catch (Exception e) {
// TODO: handle exception
System.out.println("com.hdzx.pub~VisitorCounter.incTotalCounter:增加访问人数");
}
return k;
}
//增加今日的访问量
public static int incTodayCounter(){
int k = 0;
DBConnect db = null;
String sql = null;
loadNum();
today_num += 1;
sql = "update "+TABLE_NAME+" set vnum="+today_num+" where vdate='"+today+"'";
try {
db = new DBConnect();
k = db.executeUpdate(sql);
if(k 0)
incTotalCounter();
} catch (Exception e) {
// TODO: handle exception
System.out.println("com.hdzx.pub~VisitorCounter.incTotalCounter:增加访问人数");
}
return k;
}
//获得今天的日期
private static String getTodayDate(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(new Date());
}
///获得今日访问量
public static long getTodayNum(){
loadNum();
return today_num;
}
//获得总的访问量
public static long getTotalNum(){
loadNum();
return total_num;
}
}
步骤三、经过以上的步骤后,在页面中加入以下的代码,就可以实现网站访问量的统计工作:
if(session.isNew())
{
VisitorCounter.incTodayCounter();
}
%
今日访问量:%=VisitorCounter.getTodayNum() %br/
总的访问量: %=VisitorCounter.getTotalNum() %
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
Copyright © 2002-2023 www.csdahua.cn 快上网建站品牌 QQ:244261566 版权所有 备案号:蜀ICP备19037934号
微信二维码
移动版官网