posts - 23, comments - 0, trackbacks - 0, articles - 3
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

2010年7月16日

lxq@lxq:~/tmp$ tree
.
|-- Makefile
|-- bin
|   `-- Makefile
|-- hello
|   |-- Makefile
|   |-- hello
|   `-- hello.c
`-- tmp

3 directories, 5 files


cat Makefile
SRCBASE := $(shell pwd) #获取当前目录
ELEASEDIR := $(shell (cd $(SRCBASE)/.. && pwd -P))
print:
        echo ${ELEASEDIR}
install: all
        install -d ${ELEASEDIR}/tmp
        $(MAKE) -C ./hello clean #切换到hello目录执行clean目标
        $(MAKE) -C ./hello hello #切换到hello目录执行hello目标
        $(MAKE) -C ./hello $@ #切换到hello目录执行install目标
all clean:
ifneq ($(wildcard hell),) #如果有hell这个文件就执行里面的动作
        $(MAKE) -C ./bin $@ #切换到hello目录执行all\clean目标
endif
.PHONY: all clean install

cat hello/Makefile
clean:
ifneq ($(wildcard hello),)
        rm hello
endif
hello:
        gcc -o hello hello.c
install:
        -cp hello ../bin/

cat hello/hello.c
#include <stdio.h>
int main()
{
        printf("hello");
        exit(0);
}









posted @ 2010-07-16 20:01 beauty9235 阅读(266) | 评论 (0)编辑 收藏

新员工培训建议
开始模式
开发的软件(VI,代码
开发的技巧(如VI的使用,如果新员工较熟悉,可略过)
1.代码规范 编码质量要求
关于代码文档 发送 由经验比较丰富的程序员讲解一下要求,对新员工的前几次编码进行检查

2。项目架构
项目的文档(原理图,开发文档)
项目的整体架构
 1。(硬件构成 CPU,模块,最好有相关的原理图)
 2。软件整体结构,可从makefile编译开始讲起
 用到的开源的软件包,将各种二进制文件打包,数据流程,进程启动通信机制(如果有相应的架构图,流程图最好)

与工作相关的(现在或将来要做的和急需要了解的协议,资料)

posted @ 2010-07-16 19:32 beauty9235 阅读(510) | 评论 (0)编辑 收藏

2008年8月18日


作者: beauty9235  链接:http://beauty9235.javaeye.com/blog/229658  发表时间: 2008年04月30日

声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!

List list = new ArrayList();
        SearchTotalWorkfile swt 
= new SearchTotalWorkfile();
        swt.setFiletime(
"2008-03-08");
        swt.setFiles(
new Long(1));
        swt.setCustomers(
new Long(109));
        list.add(swt);
         swt 
= new SearchTotalWorkfile();
        swt.setFiletime(
"2008-02-04");
        swt.setFiles(
new Long(4));
        swt.setCustomers(
new Long(96));
        list.add(swt);
        swt 
= new SearchTotalWorkfile();
        swt.setFiletime(
"2008-03-06");
        swt.setFiles(
new Long(4));
        swt.setCustomers(
new Long(96));
        list.add(swt);
          swt 
= new SearchTotalWorkfile();
        swt.setFiletime(
"2008-03-07");
        swt.setFiles(
new Long(8));
        swt.setCustomers(
new Long(217));
        list.add(swt);
        Collections.sort(list, 
new Comparator() {
            
public int compare(Object o1, Object o2) {
                
int i = 0;
                
try {
                    Date l1 
= DateUtils.parseDate(((SearchTotalWorkfile) o1).getFiletime(), new String[]{"yyyy-MM-dd"});
                    Date l2 
= DateUtils.parseDate(((SearchTotalWorkfile) o2).getFiletime(), new String[]{"yyyy-MM-dd"});
                    String s1
=  ((SearchTotalWorkfile) o1).getFiletime();
                    String s2
=  ((SearchTotalWorkfile) o2).getFiletime();
                    i 
= s2.compareTo(s1);
                }
 catch (Exception e) {

                }

                
return i;

            }


        }
);
        log.debug(list); 

本文的讨论也很精彩,浏览讨论>>


JavaEye推荐



posted @ 2008-08-18 17:05 beauty9235 阅读(439) | 评论 (0)编辑 收藏


作者: beauty9235  链接:http://beauty9235.javaeye.com/blog/229657  发表时间: 2008年05月23日

声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!

proxool是一个开放的Java SQL Driver驱动程序,提供了对你选择的其它类型的驱动程序的连接池封装。可以非常简单的移植到现存的代码中。完全可配置。快速,成熟,健壮。可以透明地为你现存的JDBC驱动程序增加连接池功能。

1.直接在Java写

 

private Connection conn = null;
static {
            
try {
                Class.forName(
"org.logicalcobwebs.proxool.ProxoolDriver");
            }

            
catch(ClassNotFoundException e) {
                log.debug(
"can not find db driver"+e);
            }

        }

    
void getConnection() {
        String dataDriver 
= "com.mysql.jdbc.Driver";
        String dataURL 
= "jdbc:mysql://localhost:3306/test";
        String user 
= "root";
        String pwd 
= "";
        
try {
            conn 
= DriverManager.getConnection("proxool.example:" + dataDriver + ":" + dataURL, user, pwd);
        }
 catch (SQLException e) {
            log.debug(e);
        }

    }

2.spring 配置文件里写
context.xml

 

<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource" destroy-method="close">
       
<property name="driver">
         
<value>com.mysql.jdbc.Driver</value>
       
</property>
       
<property name="driverUrl">
         
<value>jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=utf8</value>
       
</property>
       
<property name="user">
         
<value>root</value>
       
</property>
       
<property name="password">
         
<value></value>
       
</property>
       
<property name="alias">
         
<value>example</value>
       
</property>
       
<property name="houseKeepingSleepTime">
         
<value>90000</value>
       
</property>
       
<property name="prototypeCount">
         
<value>5</value>
       
</property>
       
<property name="maximumConnectionCount">
         
<value>100</value>
       
</property>
       
<property name="minimumConnectionCount">
         
<value>10</value>
       
</property>
       
<property name="trace">
         
<value>true</value>
    
</property>
    
</bean>    

3.结合数据池程序监控
web.xml

 

<servlet>
        
<servlet-name>proxoolServletConfigurator</servlet-name>
        
<servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>
        
<init-param>
            
<param-name>propertyFile</param-name>
            
<param-value>WEB-INF/classes/proxool.properties</param-value>
        
</init-param>
        
<load-on-startup>1</load-on-startup>
    
</servlet>
    
<servlet>
        
<servlet-name>proxool</servlet-name>
        
<servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
    
</servlet>
  
<servlet-mapping>
        
<servlet-name>proxool</servlet-name>
        
<url-pattern>/proxool</url-pattern>
    
</servlet-mapping>    

proxool.properties

 jdbc-0.proxool.alias=spring_proxool
jdbc-0.proxool.driver-class=com.mysql.jdbc.Driver
jdbc-0.proxool.driver-url=jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=utf8
jdbc-0.user=root
jdbc-0.password=
jdbc-0.proxool.maximum-connection-count=100
jdbc-0.proxool.prototype-count=4
jdbc-0.proxool.house-keeping-test-sql=select CURRENT_DATE
jdbc-0.proxool.verbose=true
jdbc-0.proxool.statistics=10s,1m,1d
jdbc-0.proxool.statistics-log-level=ERROR

spring里的配置

 

 <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close"
          singleton
="true">
        
<property name="driverClassName">
            
<value>org.logicalcobwebs.proxool.ProxoolDriver</value>
        
</property>
        
<property name="url">
            
<value>proxool.spring_proxool</value>
        
</property>
    
</bean>

普通的java获得Connection

 

 public Connection getConnection() {
        Connection conn 
= null;
        
try {
        conn 
= DriverManager.getConnection("proxool.spring_proxool");
              }
 catch (SQLException e) {
            log.debug(e);
        }
 
        
return conn;
    }
参考资料http://www.memezilla.com/2005/05/18/proxool-in-practice
本文的讨论也很精彩,浏览讨论>>


JavaEye推荐



posted @ 2008-08-18 17:05 beauty9235 阅读(473) | 评论 (0)编辑 收藏


作者: beauty9235  链接:http://beauty9235.javaeye.com/blog/229654  发表时间: 2008年05月23日

声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!

事务代理标准写法

 

<!--DAO层接口实现  -->
<bean id="userDAO" class="net.test.dao.UserDAO">
       
<property name="sessionFactory">
              
<ref local="sessionFactory" />
       
</property>
</bean>
 
<!--业务层接口实现,把DAO注入到Service里面 --> 
<bean name="userServiceTarget" class="net.test.service.UserService">
       
<property name="userDAO">
              
<ref bean="userDAO" />
       
</property>
</bean>
<!--spring代理业务层的事务管理 -->
<bean id="userServiceProxy"  class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
       
<property name="transactionManager">
              
<ref local="transactionManager" />
       
</property>
       
<property name="transactionAttributes">
              
<props>
                    
<prop key="insert*">PROPAGATION_REQUIRED</prop>
                    
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
              
</props>
       
</property>
       
<property name="target">
              
<ref bean="userServiceTarget" />
       
</property>
</bean>

事务代理简写法

 

<bean id="baseTxProxy" lazy-init="true"
        class
="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
        
<property name="transactionManager">
            
<ref bean="transactionManager" />
        
</property>
        
<property name="transactionAttributes">
            
<props>
                
<prop key="insert*">PROPAGATION_REQUIRED</prop>
                
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
            
</props>
        
</property>
    
</bean>
    
<bean id="userDAO" class="net.test.dao.UserDAO">
        
<property name="sessionFactory">
            
<ref local="sessionFactory" />
        
</property>
    
</bean>
    
<bean id="userServiceProxy" parent="baseTxProxy">
        
<property name="target">
            
<bean class="net.test.service.UserService">
                
<property name="userDAO">
                    
<ref local="userDAO" />
                
</property>
            
</bean>
        
</property>
    
</bean>

事务自动化代理写法

 

<!-- 定义事务拦截器bean -->
    
<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
        
<property name="transactionManager" ref="transactionManager"/>
        
<property name="transactionAttributes">
            
<props>
                
<prop key="insert*">PROPAGATION_REQUIRED</prop>
                
<prop key="update*">PROPAGATION_REQUIRED</prop>
                
<prop key="delete*">PROPAGATION_REQUIRED</prop>
                
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
                
<prop key="query*">PROPAGATION_REQUIRED,readOnly</prop>
                
<prop key="*">PROPAGATION_REQUIRED</prop>
            
</props>
        
</property>
    
</bean>
    
<!--定义BeanNameAutoProxyCreator-->
    
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
        
<property name="beanNames">
        
<!--
             所有名字以DAO,Service结尾的bean,
            将由该"bean后处理器"为其创建事务代理;
            实际上应该在业务层进行事务管理,
            这里只是举一个简单例子 
            
-->
            
<value>*DAO,*ServiceProxy</value>
        
</property>
        
<!--下面定义BeanNameAutoProxyCreator所需的事务拦截器-->
        
<property name="interceptorNames">
            
<list>
            
<!--可以增加其他的拦截器-->
            
<value>transactionInterceptor</value>
            
</list>
        
</property>
    
</bean>
    
<bean id="userDAO" class="net.test.dao.UserDAO">
        
<property name="sessionFactory">
            
<ref local="sessionFactory" />
        
</property>
    
</bean>
    
<bean id="userServiceProxy" class="net.test.service.UserService">
        
<property name="userDAO">
            
<ref bean="userDAO" />
        
</property>
    
</bean>

本文的讨论也很精彩,浏览讨论>>


JavaEye推荐



posted @ 2008-08-18 17:05 beauty9235 阅读(1023) | 评论 (0)编辑 收藏


作者: beauty9235  链接:http://beauty9235.javaeye.com/blog/229651  发表时间: 2008年06月09日

声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!

过滤器总结
一、Servlet过滤器的概念:

Servlet过滤器是在Java Servlet规范2.3中定义的,它能够对Servlet容器的请求和响应对象进行检查和修改。   

Servlet过滤器本身并不产生请求和响应对象,它只能提供过滤作用。Servlet过期能够在Servlet被调用之前检查Request对象,修改Request Header和Request内容;在Servlet被调用之后检查Response对象,修改Response Header和Response内容。

Servlet过期负责过滤的Web组件可以是Servlet、JSP或者HTML文件。 

 

二、Servlet过滤器的特点:

A.Servlet过滤器可以检查和修改ServletRequest和ServletResponse对象
B.Servlet过滤器可以被指定和特定的URL关联,只有当客户请求访问该URL时,才会触发过滤器
C.Servlet过滤器可以被串联在一起,形成管道效应,协同修改请求和响应对象

 

三、Servlet过滤器的作用:

A.查询请求并作出相应的行动。
B.阻塞请求-响应对,使其不能进一步传递。
C.修改请求的头部和数据。用户可以提供自定义的请求。
D.修改响应的头部和数据。用户可以通过提供定制的响应版本实现。
E.与外部资源进行交互。

 

四、Servlet过滤器的适用场合:

A.认证过滤
B.登录和审核过滤
C.图像转换过滤
D.数据压缩过滤
E.加密过滤
F.令牌过滤
G.资源访问触发事件过滤
H.XSL/T过滤
I.Mime-type过滤

 

五、Servlet过滤器接口的构成:

所有的Servlet过滤器类都必须实现javax.servlet.Filter接口。这个接口含有3个过滤器类必须实现的方法:

A.init(FilterConfig):
这是Servlet过滤器的初始化方法,Servlet容器创建Servlet过滤器实例后将调用这个方法。在这个方法中可以读取web.xml文件中Servlet过滤器的初始化参数

B.doFilter(ServletRequest,ServletResponse,FilterChain):
这个方法完成实际的过滤操作,当客户请求访问于过滤器关联的URL时,Servlet容器将先调用过滤器的doFilter方法。FilterChain参数用于访问后续过滤器

B.destroy():
Servlet容器在销毁过滤器实例前调用该方法,这个方法中可以释放Servlet过滤器占用的资源

 

六、Servlet过滤器的创建步骤:

A.实现javax.servlet.Filter接口
B.实现init方法,读取过滤器的初始化函数
C.实现doFilter方法,完成对请求或过滤的响应
D.调用FilterChain接口对象的doFilter方法,向后续的过滤器传递请求或响应
E.销毁过滤器

 

七、Servlet过滤器对请求的过滤:

A.Servlet容器创建一个过滤器实例
B.过滤器实例调用init方法,读取过滤器的初始化参数
C.过滤器实例调用doFilter方法,根据初始化参数的值判断该请求是否合法
D.如果该请求不合法则阻塞该请求
E.如果该请求合法则调用chain.doFilter方法将该请求向后续传递

 

八、Servlet过滤器对响应的过滤:

A.过滤器截获客户端的请求
B.重新封装ServletResponse,在封装后的ServletResponse中提供用户自定义的输出流
C.将请求向后续传递
D.Web组件产生响应
E.从封装后的ServletResponse中获取用户自定义的输出流
F.将响应内容通过用户自定义的输出流写入到缓冲流中
G.在缓冲流中修改响应的内容后清空缓冲流,输出响应内容


九、Servlet过滤器的发布:

A.发布Servlet过滤器时,必须在web.xml文件中加入<filter>元素和<filter-mapping>元素。

B.<filter>元素用来定义一个过滤器:
属性                   含义
filter-name    指定过滤器的名字
filter-class    指定过滤器的类名
init-param    为过滤器实例提供初始化参数,可以有多个

C.<filter-mapping>元素用于将过滤器和URL关联:
属性                     含义
filter-name    指定过滤器的名字
url-pattern    指定和过滤器关联的URL,为"/"表示所有URL

 

十一、Servlet过滤器使用的注意事项

A.由于Filter、FilterConfig、FilterChain都是位于javax.servlet包下,并非HTTP包所特有的,所以其中所用到的请求、响应对象ServletRequest、ServletResponse在使用前都必须先转换成HttpServletRequest、HttpServletResponse再进行下一步操作。

B.在web.xml中配置Servlet和Servlet过滤器,应该先声明过滤器元素,再声明Servlet元素


C.如果要在Servlet中观察过滤器生成的日志,应该确保在server.xml的localhost对应的<host>元素中配置如下<logger>元素:
<Logger className = "org.apache.catalina.logger.FileLogger"
directory = "logs" prefix = "localhost_log."suffix=".txt"
timestamp = "true"/>

常用的过滤器实例:

//对整站编码的过滤
public void doFilter(ServletRequest request, ServletResponse sresponse,FilterChain chain) {
  try{
   request.setCharacterEncoding("GBK");
   chain.doFilter(request, sresponse);
  }catch(Exception e){
   e.printStackTrace();
  }
 }
//对用户登陆进行验证 
 public void doFilter(ServletRequest srequest, ServletResponse sresponse,FilterChain chain) {
  try {
   HttpServletRequest request = (HttpServletRequest) srequest;
   HttpServletResponse response = (HttpServletResponse) sresponse;
   HttpSession session = request.getSession();
   User user = (User) session.getAttribute("user");
   if (user == null) { 
     response.sendRedirect("/test/index.html"); 
   } else {
    chain.doFilter(request, response);
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
//对用户权限进行过滤 
public void doFilter(ServletRequest srequest, ServletResponse sresponse,FilterChain chain) {
  try {
   HttpServletRequest requst = (HttpServletRequest) srequest;
   HttpServletResponse response = (HttpServletResponse) sresponse;
   HttpSession session = requst.getSession();
   User user = (User) session.getAttribute("user");
   String ad=user.getIsAdmin().toString();
   if (user == null || ad.equals("0")) { 
     response.sendRedirect("/test/main.jsp");
   } else {
    chain.doFilter(srequest, sresponse);
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
 } 

web.xml中的配置


    encodingfilter
    filter.EncodingFilter
  
  
  firstfilter
  filter.FirstFilter
  
  
  secondfilter
  filter.SecondFilter
  
  
    encodingfilter
    /*
  
  
    firstfilter
    /web/*
  
    
    secondfilter
    /web/Charge.jsp
   

本文的讨论也很精彩,浏览讨论>>


JavaEye推荐



posted @ 2008-08-18 17:05 beauty9235 阅读(205) | 评论 (0)编辑 收藏


作者: beauty9235  链接:http://beauty9235.javaeye.com/blog/229649  发表时间: 2008年06月10日

声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!

commons-logging和log4j总结

简单的说log4j就是帮助开发人员进行日志输出管理的API类库。它最重要的特点就

可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地以及日志信息的输出格式。

Log4j除了可以记录程序运行日志信息外还有一重要的功能就是用来显示调试信息。程序员经常会遇到脱离java ide环境调试程序的情况,这时大多数人会选择使用System.out.println语句输出某个变量值的方法进行调试。这样会带来一个非常麻烦的问题:一旦哪天程序员决定不要显示这些System.out.println的东西了就只能一行行的把这些垃圾语句注释掉。若哪天又需调试变量值,则只能再一行行去掉这些注释恢复System.out.println语句。使用log4j可以很好的处理类似情况。

log4j使用方法


  1、定义配置文件

   首先使用配置文件将使我们的应用程序更加灵活配置log日志输出方式包括输出优先级、输出目的地、输出格式。Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件log4j.properties(键=值)。下面将介绍使用log4j.properties文件作为配置文件的方法:

  ①配置根Logger,其语法为:0

  log4j.rootLogger = [ level ] , appenderName, appenderName, …

  其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。 appenderName就是指定日志信息输出到哪个地方。可同时指定多个输出目的地。

  ②配置日志信息输出目的地Appender,其语法为:

  log4j.appender.appenderName = fully.qualified.name.of.appender.class
  log4j.appender.appenderName.option1 = value1
  …
  log4j.appender.appenderName.option = valueN

  其中,Log4j提供的appender有以下几种:
  org.apache.log4j.ConsoleAppender(控制台),
  org.apache.log4j.FileAppender(文件),
  org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
  org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
  org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

  ③配置日志信息的格式(布局),其语法为:

  log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
  log4j.appender.appenderName.layout.option1 = value1
  …
  log4j.appender.appenderName.layout.option = valueN

  其中,Log4j提供的layout有以下几种:
  org.apache.log4j.HTMLLayout(以HTML表格形式布局),
  org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
  org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
  org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

  Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下: %m 输出代码中指定的消息

%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)
%c 输出日志信息所属的类的全名
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28
%f 输出日志信息所属的类的类名
%m 输出代码中指定的信息,如log(message)中的message
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推
%r 输出自应用启动到输出该日志信息所耗费的毫秒数
%t 输出产生该日志事件的线程名 
2 .程序中如何打印出Log日志
结合 commons-logging.jar log4j-1.2.9.jar
Log log = LogFactory.getLog(Test.class);
log.debug("XXXX");

配置实例log4j.properties
log4j.rootLogger=DEBUG, stdout,R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm}]%-5p(%F:%L) - %m%n
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=log.txt
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm}]%-5p(%F:%L) - %m%n



本文的讨论也很精彩,浏览讨论>>


JavaEye推荐



posted @ 2008-08-18 17:05 beauty9235 阅读(211) | 评论 (0)编辑 收藏


作者: beauty9235  链接:http://beauty9235.javaeye.com/blog/229647  发表时间: 2008年06月19日

声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!

就网站建设方面与广大读者一起探讨,如网站规划、域名选择及软硬件平台对提升浏览率的作用问题。

-、网站规划及域名选择

网站规划的第一步是选择域名。域名被视为企业的网上商标,其重要性不言而喻。一般来说,注册一个好的域名要注意以下几点:

1、 使用企业或机构的注册商标名称。如IBM、Microsoft;

2、 使用企业或机构名称的中、英文缩写。如香港印艺学会域名www.gaahk.org.hk即本会英文名称Graphic Arts Association of Hong Kong的缩写;

3、 与企业广告语一致的英文内容;

4、 域名力求简短、便于记忆,一般以5--8个字母为佳;

5、 注册域名时别忘了注册几个与公司或商标名称相近的保护性域名 。

注册域名一般是先拟订好几个中意的域名 ,然后到一些提供域名查询的网站查询该域名是否被注册。《世界网络》的在线测试栏目(http://www.linkwan.com.cn/gb/broadmeter/)就提供域名查询服务。

可供查询的域名包括国际域名 (以.com .net .org 结尾),国内域名 (以.cn结尾)以及香港本地域名 (以.hk结尾)。如果域名已经被注册,则会列出该域名的详细注册资讯;如果域名没有被注册,则可以直接点击下面的链结进入“世界网络”的两岸三地的域名注册代理机构列表中(http://www.linkwan.com/gb/broadmarket/service/vhost/),选择合适的域名 注册代理机构注册。

香港地区朋友可以访问http://networksolutions.com网站直接注册并用信用卡支付注册费。国际域名 每年US$35,五年US$95。也可委托香港知名网页储存商Newsbook Limited 代办, (http://www.newsbook.net),国际域名 每两年HK$256,香港本地域名 每年HK$200,国内域名 每两年HK$800。Newsbook Limited优惠印艺学会会员,国际域名 每两年HK$160,国内域名 每两年HK$500。

网站规划的另外一个方面就是合理规划建站方向,确定网站类型,通常有以下几种常见的网站类型:

1、 产品展示型:通过分类、建立索引和搜索功能,将产品的图片及相关文字有条理地组织起来,形成便于查寻的在线商品目录,适用于以生产、经销为主的企业和店面。

2、 资讯发布型:这类网站相当于一个新闻中心,及时发布关于某一领域或行业的最新动态消息,或者综合性新闻,一般适合较专业性的站点。

3、 服务中心型:这类网站通常包含一个详尽的服务说明和FAQ(常见问题解答),并通过一些交互程式完成订单提交、在线支付、在线服务的定制和管理、软件升级等工作,并且提供一个意见反馈视窗(在线留言或电子邮件),用来解答问题和处理用户意见,从而形成一个友好、便捷的在线服务中心。

4、 论坛型:针对某些话题(或课题)的讨论型网站,为业内人士、专家、爱好者或普通大众提供一个讨论和发表看法的场所,例如发烧友论坛、学术论坛等。

5、 网上商城型:这种网站实际上是产品展示型网站的扩展,在清晰而详尽的商品目录的基础上,实现在线支付功能,并提供一种比较完善的订单处理机制,以确保订单的正确处理和货物的投递。与一般的企业用产品展示型网站相比,网上商城的商品数量通常庞大得多,而且一般是面向大众的,为了能让用户在失去耐心之前迅速地找到想要的商品,必须建立一个强大的商品搜索引擎。

根据建站不同的目的,我们要选择合适的软硬件平台。保证访问的稳定性和持续性是网站获得口碑和持续提高访问量的前提。不同网站的类型可以考虑不同软硬件平台,以期获得最大的性价比。

二、软件平台的选择

网站软件平台的选择主要是在网站功能需求和费用之间寻求最大的性价比。根据网站功能的规划,我们可以在作业系统、动态页面技术、资料库系统等几个方面做出选择。

目前普通网站的伺服器作业系统以微软的Windows系统和Linux占大多数。Windows优点是操作简便,为大家熟知,配置和管理伺服器容易上手,但是费用较贵,而且需要的硬件配置也较Linux要求高。Linux最大的优点是其全免费而且可供配套的免费软件丰富,缺点是操作复杂,需要专门的技术人员维护。 读者可以根据网站建设目标规划和财务预算作合理选择。如果有相关技术人员,可以考虑使用Linux系统,配合php或jsp动态网页技术和MySQL资料库系统。

当然,对于大多数企业来说,以Windows系统作为网站伺服器,可以降低维护成本和更新难度。如果目标是“产品展示型”网站,只需采用静态页面网站。不用使用动态网页技术,页面制作简单。如果需要制作“资讯发布型”或“服务中心型”网站,则可以适当使用动态网页技术(ASP技术)和微软office中的小型资料库系统Access即可实现。如果考虑“论坛型”和“网上商城型”网站,则建议使用一些大型的资料库如微软的SQL Server或甲骨文的Oracle资料库,以提供稳定的服务和支撑大的访问量和资料处理需求。

在软件平台的建设方面还需要考虑到系统的安全性,所以伺服器系统一定要注意安装防毒软件并定期升级系统及安装(Service Pack)补丁程式,以防止黑客利用系统的漏洞入侵网站。

软件平台根据印刷行业特别的需求,可能需要一些特别的网络技术支援。如Web FTP,用于交收印刷产品电子文档,香港的汇能印艺 www.artechgraphics.com.hk 已经有实际应用。另外,企业为降低伺服器成本,利用现有动态IP(互联网络通讯协定)宽带上网的电脑充当伺服器作为FTP(档案传送协定)伺服器供客户传送印刷文档,可以考虑使用动态域名 技术,该技术是将一个特定的域名 和您电脑当前的IP做对应,每当您的电脑在线,就会定时刷新域名 所对应的IP,使得访问该域名 的用户都能转向到当前您的电脑所使用的IP。DNS2Go就是利用这项技术提供服务的网站之一。读者有兴趣可以访问世界网络(http://www.linkwan.com/gb/broadtech/article/dns2go.htm)了解详细的使用方法。

三、硬件平台的选择

网站硬件平台的选择很大程度上决定了网站能够提供服务的能力和稳定性。所以选择硬件平台之前可以根据网站的规划目标预测一下访问者的流量,以及考虑所选择的软件平台的系统负荷合理选择硬件平台。

目前可供选择的硬件平台方式大致有以下几种:虚拟主机、伺服器租用、自购品牌伺服器托管、DIY组装伺服器托管、租用专线自建机房。

1. 虚拟主机

采用这种方式适应于预期访问量不是很大,页面多为静态页面,系统负荷较小的网站。此方式租用费最为低廉,且无需维护知识,维护成本低,适合小型的网站采用。目前两岸三地有很多虚拟主机商提供此项服务,有兴趣的读者可以到http://www.linkwan.com/gb/broadmarket/service/vhost/查询,香港地区的用户推荐Newsbook Limited (http://www.newsbook.net),印艺学会会员享受八折优惠。

2. 伺服器租用

包括伺服器租用连托管服务计划。一般无须购买硬件(伺服器)的费用,月费只需HK$1300左右(价格视乎伺服器配置而定)。伺服器性能可满足一般的需求,特别适合印刷厂作网站及设置FTP伺服器。由于租用伺服器连托管,公司技术人员不必有对伺服器有太专业知识,此方案最实用,广受欢迎。

3. 自买品牌伺服器托管

选择1U/2U品牌厂机伺服器,对于企业用户来说是不失为最快捷稳当做法。品牌伺服器可选择IBM、HP、SUN、DELL等。品牌伺服器质量有保证,而且售后服务周到。相比伺服器租用,虽然前期要投入购置费用,但是月托管费用较低,适合需求稳定、伺服器长时间运作的企业网站。

4. DIY组装伺服器托管

此方式适合具备一定硬件技术人员的企业。性价比对购买品牌伺服器来说占很大优势。当前推介配置Intel S875WP1-E主板,P4 3.2G(800 FSB) CPU,1G DDR400 RAM,WD36DG一万转36G SATA硬碟,连1U机箱,总价格约HK$8,800。文件吞吐率270Mbps左右,整数和浮点性能都达到较高的水准。选用优质机箱配合强风量(CFM) CPU散热风扇、小型鼓风机(BLOWER),上述配置CPU温度idle温度 32度 ,full loading 温度58度,完全满足长期运转的需要。有兴趣读者可以联系本文作者,探讨经验。

5. 租用专线自建机房

此方式适合有一定技术实力和经济实力的大型企业。通常租用宽频服务供应商提供的专用数据线路,在自身办公地点建立数据中心(机房),对内提供企业自身IT服务,对外提供网站服务,邮件服务以及FTP等。

以上几种方式在硬件安全性方面,无论是托管环境还是自建机房一定要具备温度调节、湿度调节装备以及断电保护装置(USP),以确保稳定性以及资料安全。

下面介绍一些对硬件网络服务性能进行测试的一些软件,希望能够帮助读者分析伺服器硬件是否满足性能要求。

NETMECHANIC.COM伺服器测试,此网站提供伺服器性能测试(Server Check)的免费服务。您只需将要测试的网站的域名 以及您的Email地址填写提交,netmechanic.com的伺服器即会在以后的8小时内每隔15分钟监测您指定网站的伺服器。并在8小时以后将检测结果发送到您指定的Email地址。可以到http://www.linkwan.com/gb/broadmeter/htmltest/netmechanic.htm参看说明提交测试。本测试仅提供作本地网站相对参考比较,因为测试是由美国发起,对于测试香港或内地的速度可能与当地访问差别很大。

还有一些在伺服器安装的伺服器性能测试工具,以动态页面技术制作,安装在被测试的伺服器web伺服器上即可测试。Windows系统推荐使用“阿江ASP探针”(演示>>),此工具可以探测伺服器基本资讯;伺服器元件支援情况;伺服器硬盘讯息;当前文件夹资讯;伺服器脚本解释和执行速度。Linux系统下推荐使用C1G的PHP探针,可以进行PHP web伺服器的特性、PHP基本特性、元件支援状况、伺服器性能检测等测试。另有一款可以在远端电脑上安装的监视伺服器状态的软件sMonitor 3.08,此软件可以在您的PC连接上网际网络后,不断地经常监视伺服器主机网络状况,包括监视检查Ping、FTP、HTTP、SMTP、POP3、DNS等伺服器主机。sMonitor 3.08可以测试和监视伺服器的稳定度。这三个软件均可以到http://www.linkwan.com/gb/download/下载,套装软件包括相关的使用说明和作者资讯。

四、网络拓扑(Topology)位置的选择

不论是虚拟空间或托管伺服器,都要选择放置在好的网络拓扑位置,以发挥其功效。简单来说就是选择好的资料中心非常重要。如何对数据中心的性能做评测呢?下面介绍几点供读者参考。

1. 收集资料,了解数据中心出口带宽。

这些资料可以帮助我们根据网站的预期访问者情况选择合适的数据中心地理位置。目前“世界网络”网站中有内地、香港、台湾等地的相关资料,读者可以参考(http://www.linkwan.com/gb/broadmarket/)。 香港的内部交换带宽可以看http://www.linkwan.com/gb/broadmarket/bandwidth/hkinteral.htm,香港的国际专用线路容量可以看http://www.linkwan.com/gb/broadmarket/bandwidth/hkoversea.htm等等。香港有五大宽频上网ISP,分别是网上行 www.netvigator.com、和记环球电讯 www.hgc.com.hk、有线宽频 www.i-cable.com、香港宽频 www.hkbn.net和So-net www.so-net.com.hk ,就香港本地应用速度来看,速度相差不远,有线宽频速度略好。就海外的上网速度而言,网上行占尽优势。

香港网络骨干主要是用电讯盈科与和记环球电讯网络。近年来香港海外出口接驳商不断增加,例:新加坡电讯、NTT、MCI,但目前海外出口仍以恒通Reach 、和记环球电讯为主流。宽频连线速度主要取决网络骨干品质和连接HKIX、海外出口流量、ISP伺服器等条件。在浏览中国大陆网站及交收电子档案方面,网上行有明显优势,香港宽频则有时浏览中国大陆网站则有时不畅顺(其原因是要经由美国才连接到中国大陆网站)。

内地方面,2003年底计中国国际出口带宽的总容量为27,689M (大部份是中国电信拥有),读者可以到“世界网络”参看最新带宽图(http://www.linkwan.com/gb/broadmarket/bandwidth/cnnic.htm),至台湾2.13G 、至香港 4.672G 、至澳门45M 以及至美国13.997G。虽然近年来网通、联通、长城宽带、铁通均有数据中心,收费也较便宜,但如希望较好出口带宽的话还是选中国电信系统资料中心为宜。

台湾地区出口以美国为主,近年两岸三地交流/贸易增长多,频宽也不断增加。当地数据中心对虚拟空间和伺服器托管收费较贵,提供本地线路网络服务的网络公司也不多。 如有需要在台湾找虚拟空间或伺服器托管,其中一间战国策www.hotels.com.tw 收费及速度还可以。

2. 通过一些显示路由和测试速度的软件比较

利用软件方法测试各数据中心的实际速度不失为客观评价资料中心优劣的一个重要手段。下面介绍几个适用的软件方法供读者参考。

最简单使用的工具莫过于使用Ping测试资料中心的反应速度。Ping是测试网络联接状况以及资讯包发送和接收状况非常有用的工具,是网络测试最常用的命令。Ping向目标伺服器(位址)发送一个回送请求资料包,要求目标伺服器收到请求后给予答复,从而判断网络的回应时间。详细使用方法及技巧可以参看http://www.linkwan.com/gb/broadmeter/article/pinghelp.htm。

“世界网络”已与美国Fortel公司达成协定,成为该公司VisualRoute路由软件在亚太地区的测试点。已在北京、台北、香港、上海四地建立了一整套路由测试系统(http://www.linkwan.com/vrhk/)。该软件可以清晰显示例如从北京、台北、香港、上海等地到您想访问的网址,路由线路并用图形的形式表现出来,可以清晰看到访问路径,以此也可以对一个数据中心的路由情况做一个直观了解。

此外,“世界网络”的速度测试也是一个比较各地连线速度的好工具。目前该网站收集了1000多个速度测试点的资讯,其中不乏虚拟主机或托管提供商的测试点。读者可以到http://www.linkwan.com/gb/broadmeter/SpeedAuto/,自己亲自测试一下到各地的连线速度,为选择一个好的数据中心做比较。

要测试至香港的连线速度,读者可到电讯盈科http://home.netvigator.com/~cfs05/ 或世界网络 http://www.linkwan.com/gb/broadmeter/SpeedAuto/default.asp?keyword=香港 进行速度测试。

总而言之,一个好的域名 应有较强的标示性、易懂易记,并与网站内容相符,会为提升浏览率奠下基础;同时,一个切合实际的、优秀的软硬件平台和网络方案将为资讯的流通建立可靠平台。


本文的讨论也很精彩,浏览讨论>>


JavaEye推荐



posted @ 2008-08-18 17:05 beauty9235 阅读(332) | 评论 (0)编辑 收藏


作者: beauty9235  链接:http://beauty9235.javaeye.com/blog/229643  发表时间: 2008年06月19日

声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!

建立网站的目的虽各有不同,但小至个人主页,大至世界顶尖产品制造商的网站,都有一个共同的目的-那就是希望有大量的人来浏览自己的网站。商业网站在设立时更是谨慎考虑,如:怎样方便客户随时随地查阅新产品的资料;怎样让潜在的客户更容易地找到自己的网站等等。中国有句老话“酒香也怕巷子深”,在数以亿计、浩如苄海的Internet潮中,如何令自己的网站异军突起?如何以最低的成本做到最大的效果?网络推广一直是业界关心最多、议论最多的话题之一。

网络推广的目的是使网站的浏览率不断提升,浏览率是网站广告收费的重要依据,也是评估网站价值的重要依据之一。而浏览率的80%-90%来自於网站在各大搜索引擎中的排名,一般来讲排名在20名之外的网站被访问到的概率将大大下降,排名在100名之外的网站将鲜有人问津。於是,我们总是想让自己的网站信息优先出现在搜索结果中,以便吸引更多访问者。也便有了专门的顾问公司帮客户进行网络推广服务,以提高在搜索引擎中的排位。

一直以来,人们关注的焦点是某一特定网站在各大搜索引擎中(如Google、Yahoo!、AltaVista、MSN等)的排位问题,但这一排位是基於关键字(Keywords)搜索结果的,由於关键字选用上的随意性或文化差异因素,往往导致搜索结果和排位的不同,而且各个搜索引擎的排位规则、更新周期和收录的URL不尽相同,缺乏一个评价指标来对一个网站的世界排名进行综合评估,这时便需要参考Alexa所提供的网站浏览率及网站世界排名数据。

网站世界排名权威-Alexa

Alexa(www.alexa.com)是一家专门发布网站世界排名的网站。以搜索引擎起家的Alexa创建於1996年4月,目的是让互联网网友在分享虚拟世界资源的同时,更多地参与互联网资源的组织。2002年5月Alexa放弃了自己的搜索引擎转而与Google合作。Alexa每天在网上搜集超过1,000GB的信息,然后进行整合发布,现在他搜集的URL数量已经超过了Google。下图是他们自己给出的一个信息量比较图。纵轴为已有的URL地址数量,以十亿为单位。也就是说在量上,Alexa位居世界四大搜索引擎第一位,已超过35亿。

虽然Alexa的搜索引擎很好用,但是网站浏览率统计和世界排名却是它最吸引人的地方,Alexa不仅给出多达几十亿的网址链接,而且为其中的每一个网站进行了排名。可以说,Alexa是当前拥有URL数量最庞大,排名信息发布最详尽的网站。

Alexa的网站世界排名主要分两种:综合排名和分类排名。综合排名也叫绝对排名,即特定的一个网站在所有网站中的名次。Alexa每三个月公布一次新的网站综合排名。此排名的依据是用户链接数(Users Reach)和页面浏览数(Page Views)三个月累积的几何平均值。如当前世界排名最靠前的网站:雅虎(www.yahoo.com)高居榜首(每日Internet用户中每百万人平均有308,000人会访问雅虎),MSN(www.msn.com)紧跟其后,第五名是最有名的搜索引擎Google(www.google.com)等。

Alexa分类排名,一是按主题分类,比如新闻、娱乐、购物等,Alexa给出某个特定网站在同一类网站中的名次。Alexa将其收集到的网站共分了16个大类,每个类下又分为多个主题。二是按语言分类,目前共分21种语言,比如英文网站、中文网站等,给出特定站点在所有此类语言网站中的名次,其中中文网站分成简体和繁体两种来统计。对於中文网站的排名,目前只发布排在前100名的网站名单。两岸三地一些著名中文网站当前的世界排名情况如下。

新浪www.sina.com.cn 7名

网易www.163.com 11名

搜狐www.sohu.com 12名

Tom.com www.tom.com 17名

HiNet www.hinet.net 43名

网路家庭www.pchome.com.tw 56名

番薯藤www.yam.com 115名

澳门彩票www.macauslot.com 208名

联合早报www.zaobao.com 234名

凤凰卫视www.phoenixtv.com 287名

网上行www.netvigator.com 358名

MSN 香港www.msn.com.hk 442名

Alexa工具条及Alexa使用详解

Alexa的浏览率统计是根据用户安装Alexa工具条(Alexa Toolbar)的信息反馈及参考IP来源的区域分布作基数综合统计来排名。如果IE中嵌入了Alexa工具条,那么每访问一个网站,其综合排名就会显示出来。我们可到下列地址下载Alexa工具条:http://download.alexa.com/alexa7/startpage.html?p=TrafficDet_W_t_40_B2

以世界网络(www.linkwan.com)为例,显示其综合排名为6,014(2004年2月3日数据,下同)。

如果通过Alexa查看一个网站,首先看到的就是该网站的综合排名,并且配有当日网站首页截图,和网站内容的简单文字说明。Alexa还会根据网民对网站的评论,在综合排名信息中,用"星"来给网站评一个等级,最高为"5星"。

Alexa将综合排名500强网站在自己网站上强力推荐。每个通过Alexa访问的网站,Alexa首先给出了有关该网站的信息:综合排名、相关网站链接、网站基本情况、联系方式、关於该网站的评论等。如以下是linkwan.com站点的信息:

上图显示了网友最多从哪些站点访问到该站,下图显示了该站的基本情况。

通过网页上的链接"See Traffic Details",可以查看到有关该网站浏览率的详细统计数据和图表。以世界网络(http://www.linkwan.com)为例,除了网站综合排名简介外,还有如下信息:

1.距当日最近的前3个月、前6个月、一年和二年的访问量排名数据。下图为linkwan.com自2004年2月3日上溯6个月来的访问量排名走势图:

由上图可见,linkwan.com的访问量排名总体呈上升趋势,连续2个多月排名在6000名左右。

2.综合排名统计表,包括:今日排名、1周前排名、3个月前排名,以及与上一季度比较排名是上升还是下降。以下是linkwan.com的综合排名。

3.当日访问用户数、一周前每日平均访问用户数、前三个月的每日平均访问用户数(每百万人为单位)和当日、前一周、前三个月按访问用户数的排名,以及3个月来这些数量的变化。如下图所示:

4.每个用户平均浏览页面数,分为:当日、前一周、前3个月分别统计。

除此之外,还有按被访页面数的排名,3个月来页面浏览量和以此为排名的名次两项变化。

既然Alexa世界排名能提供如此详尽的浏览率及世界排名信息,大家如果想在自己网站公开自己Alexa世界排名,可安装上Alexa按键吧!因此就把Alexa排名按键为各位介绍一下(安装此按键不影响世界排名)。

排名按键可显示网站的排名。如世界网络(http://www.linkwan.com)的排名为6,014位,一般显示的排名是两天前的排名。如果希望显示你的网站的排名信息,只需将代码中红色文字(网址)部分替换成你的网站地址,并放在网站相应的位置即可。

各位可在下列地址:http://www.alexa.com/site/site_stats/signup详细了解Alexa按键的相关信息。

提升网站的浏览率

如此大量的网站地址,如此详尽的数据和统计,确立了Alexa的网站世界排名的权威。Alexa给出的排名无疑吊起众多与网站密切相关者的胃口。人们难免会思考:为什么我们的网站排在他们的之后?怎样才能排得靠前一些?怎样才能提升网站的浏览率?也有人会问:这个排名科学吗?公正吗?为此,我们有必要了解一下Alexa的浏览率统计和排名机制。

一.Alexa浏览率统计和排名的先决条件

Alexa的网站排名是按照每个特定网站的被浏览率进行排名的。浏览率越大,排名越靠前。

浏览率是针对定义在域上的网站进行统计的。如:www.sina.com.cn、news.sina.com.cn 和tech.sina.com.cn将被视作同一网站进行计数,因为它们同属於sina.com.cn这个域。但是也有例外,如个人主页,如果系统能够自动从URL地址分辨的话,将被视为彼此独立的网站。

提供同样内容的网站将被视为同一网站计算。比如,大中华印艺网使用www.cgan.com和www.cgan.org两个域名发布同样的内容,那么将被作为同一个网站来计算。

纳入统计的访问量仅来自使用Alexa工具栏(Alexa Toolbar)的用户。也就是说,只有用户下载了Alexa工具栏,并将其嵌入自己的浏览器。这样,该用户访问某个网站的话,访问的记录才能算作被访问网站的访问量。据Alexa统计,现在使用该工具栏的用户达数百万。

Alexa工具栏仅在windows操作系统下,Internet Explorer浏览器中使用有效,使用其它操作系统或者浏览器的访问将不能被计数。

遇到有安全保护或加密的站点,Alexa工具栏将自动关闭,因此那些安全系数高的网站,Alexa将不能对其进行搜索和统计排名。

二.Alexa浏览率算法

某个特定网站被排名时,依据的浏览率数据是基於该网站3个月访问量记录的累积。也就是说Alexa每三个月发布一次排名结果,即通常说的名次。它的计算主要取决於访问用户数(Users Reach)和页面浏览数(Page Views)。Alexa系统每天对每个网站的访问用户数和页面浏览数进行统计,通过这两个量的三个月累积值的几何平均得出当前名次。

访问用户数(Users Reach)指通过Internet访问某个特定网站的人数。用访问某个特定网站的人数占所有Internet用户数的比例来表示。即:访问用户数=(访问人数/全部Alexa用户数)x 100%,Alexa以每百万人作为计数单位。以世界网络(linkwan.com)为例,如果它的访问用户数为2%的话,就是说,随意抽取一百万的Internet用户,其中有20,000人访问世界网络。

页面浏览数(Page Views)是指用户访问了某个特定网站的多少个页面。是所有访问该网站的用户浏览的页面数之和。每个用户浏览的页面数取平均值,是所有访问该网站的用户每天每人浏览的独立页面数的平均。同一人、同一天、对同一页面的多次浏览只记一次。

三.影响Alexa排名的其他因素

Alexa Toolbar的采用率在全球各地有所差异,受用户的语言、地域、文化等各方面的影响。因此英文网站相对於其它语言的网站,访问量数据更容易被充分地统计。

容易受网站对自己宣传的程度、做广告的多少、别的网站为其建立链接的多少的影响。

排名的网站最好主动将自己的URL地址添加到Alexa中,否则访问量的统计会受到影响,而且Alexa不提供这些网站访问量的详细统计。

浏览率太小的网站统计数字可能不准确,总体上排名越靠前(浏览率越大)的网站统计数字就越可靠。一般来说,月访问量1000以下或排名100,000以后的网站统计数字是不准确的。 可以肯定,任何的计算方法都不完美,所以我们也无法评述Alexa排名的公正性和科学性。但既然Alexa将相关统计信息通过Internet全球公开发布,大家又都用Alexa的统计作为标杆,从中国到世界各国权威的新闻媒体在讨论一个著名网站的规模时,莫不以Alexa为标准。世界上也没有第二个像Alexa那样的网站不需要你在网页中插入他的代码等等来计算排名,他对全世界所有网站一视同仁,我们就姑且相信其专业性和权威性。

最重要的是,您是否找到了提升自己网站浏览率和使排名靠前的方法?希望通过以上的介绍,对大家有所启发。当然,并不是通过对Alexa的了解和相关工具的使用,就可以保证网站浏览率和排名的提升,浏览率也与网站的品牌、规模和内容、专业程度、网页质量、服务器等很多因素相关,后将继续为大家介绍。


本文的讨论也很精彩,浏览讨论>>


JavaEye推荐



posted @ 2008-08-18 17:04 beauty9235 阅读(136) | 评论 (0)编辑 收藏


作者: beauty9235  链接:http://beauty9235.javaeye.com/blog/229641  发表时间: 2008年06月19日

声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!

企业建站还需要考虑诸如规划网站内容、网络应用,以及如何改进,甚至变革企业的经营管理模式以适应随之而来的网络经济浪潮等问题。

目前,全世界的网站总数已超过了6,000万个,其中也包括了数以万计的印刷类网站,并且还在不断地增加。因此,搜索引擎对于那些在互联网上寻找信息的人们已经变得越来越重要了。如何使自己的网站脱颖而出,并取得成效,关键是提升网站的知名度和浏览率,而对网站内容进行详细规划和网络应用则是提高网站浏览率的重要途径。企业网站就如同企业在网上的产品橱窗,一是要让你的网站很容易被找到;二是要让感兴趣的潜在客户不虚此行,找到有用的资料和得到想要的服务。

从最新的网络统计分析报告中得知,网站访问率的78%来自于搜索引擎,而网站在搜索引擎中的排位与网站的内容有很大的关系。本期笔者将就网站内容规划、网络应用以及提高搜索引擎排名的一些小技巧谈谈自己的经验所得。

一.网站内容规划

1.网站内容的组织原则

网站内容的组织并不是现成的企业简介和产品目录的翻版。笔者就见过很多企业的网站并没有很好地组织网站的内容,这恰好也是这些网站访问量低的一个重要原因。

知己知彼,百战不殆。建站之初,你必须花点力气,通过搜索引擎找出同类网站排名前20位的名单,逐个访问名单上所有的网站,然后做一个简单的表格,列出你认为是竞争对手的企业名称、所在地、产品搜述、产品价格、网站特点等等,从中找出你的产品优于或不同于其他竞争对手产品的优点或特色;同时,你也应该清楚地认识到自己产品的不足之处,思考如何改进使产品更具竞争力,并制定出如何改进的方案。这实际上也是一个企业找出如何与网络相结合的经营策略,以适应日益竞争的国际化市场。

在充分了解了网上竞争对手的情况并研究了他们的产品和网页的基础后,你就可以集众家之所长,参照以下内容组织原则,制订出更能体现产品特点的网页内容。

网站内容的组织原则:

清晰性:网站内容必须简洁明暸,直奔主题,非常有效地讲清楚你想说的内容。

创造性:你的观点会使访问者产生共鸣,发出内心的认同吗?这是访问者判断一间公司是否有实力,从而影响到购买动机的重要依据。

突出三个重点:

突出你的产品的优点和与众不同的特色;

突出帮助访问者辨别、判断同类产品优劣方面的内容;

突出内容的无庸置疑的正确性。

2.网站内容的组织方法-栏目设置

网站内容组织或取舍的方法是将网站想象成企业的产品陈列室,如果你是推销员,那么你将如何向客户推销你的产品吗?

A.首先问自己三个问题

访问者访问我的网站的目的是甚么?

从网上获取资讯始终是访问者的主要目的之一。因此你的网站内容必须提供和你的产品或服务相关的丰富资讯。以专业角度去描述产品的规格和性能,和同类产品或服务相比较,告诉访问者各自的优点之处及不同特点,帮助访问者做出最好的选择。

访问者为甚么要经常访问我的网站?

一般情况下,访问者要在访问你的网站4-5次后,才会有实质性的购买行动。因此,你的网站要让他们觉得值得回访。不断更新你的产品或服务资讯,不断力上你认为会吸引访问者的内容,加深良好印象,会使你的潜在客户回访网站。

访问者在众多的同类产品或服务中,为甚么会选择我的产品或服务?

详细描述你产品或服务的特点,给出确凿的资料。如果你的产品或服务没有特色,那么潜在客户购买你的产品或服务的动机将会大大降低。

认真地回答以上三个问题,就可以清楚地知道自己的产品有哪些优势,并在内容组织及栏目设置中尽量体现。

B.按重要程度列出答案所需的内容、资料,有时还需要图示或加入产品图片。如果有必要,将上述问题整理成问卷,分发给同事、客户、朋友去做。

C.将他们的答案分门别类的整理出来,再根据上述"网站内容的组织原则"重新取舍,并尽可能地提出共性的东西,这样需要哪些栏目和内容就很清楚了。如有需要,提请有关部门提供栏目所需的内容和资料。

D.网站栏目的设置一定要突出重要,方便用户。网站栏目的实质是一个网站内容的大纲索引,就好比一本书的目录,集中了各个章节的名称及页码,索引应该引导浏览者寻找网站里最主要有用的东西。在设置栏目时,要仔细考虑内容的轻重缓急,合理安排,突出重点。

值得一提的是笔者见过太多的网站只是说自己的产品最好、规模最大等等,却找不出任何支持其说法的资料;也有很多网站经常说自己的产品或服务最好,价格又最低,却没有实例来证明。以笔者的经验来看,网站推荐产品的手法大致可分为两类:第一,以优良的品质取胜,最好的产品或服务往往需要最好的生产工艺、原材料和人力投入,而这些将大大增加产品的成本,也提高了产品的价格,但推荐者要令客人明白这是值得的,因为高价保证了产品有一定的品质。第二,网站可以以价廉物美的手法来推销,通过大规模或特殊的生产方式以达致产品质优价廉,从而增加客人对产品的吸引力和信心。

二.关键字和链结

1.关键字

在制作网页之前(不是在制作好网页之后),确定你的关键字。首先列出前十强竞争对手的关键字和链结伙伴,分析他们的首页设置和内容,然后制定出赶超他们的方案,然后以最重要的25个左右的关键字为基本元素来组织你的网页内容,包括:

网页媒介标签META的应用

大部分搜索引擎例如Alta Vista是以正文的头几百个字与标题(Title)、页面描述(Description)和关键字(Keywords)的符合程度来决定网页的搜索结果排位,而Excit、Yahoo是纯粹以搜索的关键字与正文的相关程度及在正文中的重复频率来决定搜索结果的排位。

META标签(metatag)的作用是提供有关HTML文档资讯,它所包含的内容并不出现在网页上。有很多网页制作者很少注意这个标签,因为它并没有影响网页的外观。META最大的作用就是提供搜索引擎关于本站的描述关建字。简单地说,当搜索引擎搜索到你的网站时,会首先检查META所描述的关键字,然后把这些关键字加入到资料库中。所以适当地利用META标签会让你在搜索引擎中被搜索到的机会大大增加。

 

META标签的用法是这样的:

<metaname="Keywords"CONTENT="关键字,关键字,关键字">

在CONTENT处,你尽可能把热门的关键字列在这里。比如与印刷相关的网站,放入"Print(印刷)"。这还有个技巧,你可以重复某一个关键字,这样可以提高自己网站的排行位置,如:

<metaname="Keywords"CONTENT="print,print,print,...>下面,让我们以全球最著名的搜索引擎-雅虎(http://cn.yahoo.com/)为例,在搜索框中输入"印刷"关键字,搜索结果中排名最前两位的是"慧聪网印刷行业频道"和"中国印刷市场",用浏览器工具栏中的"查看一原始档案"看看这些排名最前的竞争对手是如何使用META标签的。

"中国印刷市场"的META标签:

<title>中国印刷市场/印刷包装企业大全:印刷厂/包装厂/印刷机/包装机械/印刷技术/包装技术/印刷材料/包装材料/网上印刷报价<title>

<meta http-equiv="Content-Type"content="text/html;charset=gb2312">

<meta name="KEYWORDS"content="中国印刷市场,印刷公司,印刷设备厂商,印刷院校,China print market,印刷相关法律,印刷社会团体,印刷网站,印刷杂志">

<meta name="DESCRIPTION"content="全面介绍中国印刷市场业界行情,中国印刷企业名录,印刷设备厂商,印刷材料供应,印刷市场供需,印刷网上报价,印刷技术报道,印刷专业院校,印刷相关法律,印刷社会团体,印刷网站介绍,印刷专业期刊杂志等,为中国印刷及相关产业提供全方位的服务。">

可以看出,在其13个关键字中,竟然包含了12个"印刷",另外一个关键字也有英文的印刷单词(China print market),如此多的关键字设计,当然会有好的搜索引擎排位。反之,让我们再看看3-5位的META标签,居然3个网站都没有使用keywords和description标签。相信如果使用META标签后,其网站排位应会有所提升。

在不影响内容的前提下,在网页内容中尽可能多些重复这些关键字。

由于现在新的搜索引擎(如Google、Alexa)不再关注META标筮了,可能是认为那是个骗局,所以机器人(或称"网络爬虫",一种仿照人类浏览网页行为设计的程式,随时随地游走于网络之间,可以自行进入网站读取网页资讯的软体)避开了META标签,只是来扫描你的网页,并把出现最多的词作为关键字,或者把网页顶部的词作为关键字。这样,META失去了作用,那么怎么办呢?其实,这没有问题,"道高一尺,魔高一丈",我们还有更多的方法"欺骗"机器人。

你可以把热门的关键字放到网页开始的地方。一般的做法是将网站的栏目功能表放在首页,因为这些栏目名称包含了反映网站主要内容的关键字(记得使用文本方式,有些网页设计者为了美化外观就把栏自功能表设计成图片,这样搜索引擎就读不到了)。这样机器人就能看到很多关键字了。我们也可以设法把关键字隐藏到网页面,怎样做?很简单,把关键字与背景颜色弄成一致就可以了。

还有一个更好的方法,专门制作一个网页,把你知道的关键字全部放在这个网页上,想怎么放就怎么放,因为这一页只是给机器人看的,你可以利用以上方法设置关键字。要记住,你还要做一个链结,将这一关键字页连接到你的网站,这样做的目的是你可以尽可能提供机器人最全面,最好,最热的关键字,而这一页是没有人看到的,只是让机器人知道这些关键字与网站有关。

2.链结

链结交换被许多网站利用,但即使用了链结,也并没有带来更多的访客,原因何在呢?

首先,让我们来看第一种链结-友情链结,这是目前使用最多的链结交换。许多站点互相交换着LOGO(甚至还有联盟呢!),但可惜的是有些链结并没有起到太大的作用。所以,很多站点提出了条件。第一,访问量相当;第二,首页交换。以笔者的经验,当与一个站点交换链结时,要注意对方把我的LOGO放到了友情链结的那一页或是首页。专门的友情链结那一页包含了许多其他的链结交换,在众多的交换LOGO中很少会有人会注意到你,并且很少会有人访问友情链结页。一般来说,友情链结页是给机器人读的,要想通过链结交换带来访客,还得遵从上面两个条件:首页交换和访问量相当。

接下来,第二种就是所谓的商业链结交换了。提供这种服务的交换商有很多,国内的,国外的,交换的规则很简单,表面上是很公平的,至少我还没有发现问题,所姈也没有更多的技巧给你,只是提醒你,选择一个热门的链结交换商,这是个很简单的技巧,但并没有多少人注意。值得一提的是,链结交换并不会带来直接的访问量,但可以提高网站的搜索引擎排名。因为,多数搜索引擎规则中认为,你被链结的次数越多,就证明你的网站越知名,越受人欢迎,网站排位自然会被推前。所以,交换链结时千万记得检查别人是否回链到你的网站。

三.网络应用

网站犹如企业门户,除了具有企业形象视窗、产品宣传和通讯联络功能外,网站还可以提供许多其他的网络应用。从广告发布,生意招揽到网上报价;从档案收发、看样校对到远端备份;从物料采购,外发加工到送货收款,网络应用正日益发展壮大,无处不及。

尽管本文探讨的主题是如何通过网站内容的组织规划来提升网站的浏览率,非网络应用专文,但广义说网络应用也是网站内容的一部分。现今网络界精英们也纷纷意识到从"内容为主"转向"应用为主",此乃网络发展最新趋势,印刷人应及早准备。因此,笔者就目前印刷企业网站可实施的一些基本可行的网络应用作一简要介绍,以期抛砖引玉,引起印刷同人的注意,积极探讨和实践网络技术在印刷界的应用,争取更多商机。

1.清楚的操作介面及网页内容查询功能

一个好的网站必须要有良好的操作介面,能使浏览者在最短时间进入要想去浏览的区域。在有些网站内,查询往往答非所问,若能让浏览者在短时间内查询到想要的主题是重要关键,故提供强力的查询功能是网站需着眼的方向。

首页设计要简单大方,有些网站在进入首页时使用FLASH设计的动画或JAVA点选往往要花去数十秒才能出现画面,这样的设计虽然很酷,但容易引起读者的抱怨网站速度太慢。

2.查询与回馈互动环境

网站要考虑到适当的互动,这项功能可加强浏览者的意愿与兴趣。以后才会经常进网站来浏览。设立动态互动的问题谘询/反馈页面,倾听客户声音,保持良好、及时的沟通。具体应用可参看http://www.brainnew.com.tw。

3.产品查询、展示功能

网站是企业产品展示橱窗,可通过公司设备、先进技术、设计创意、质量控制和作业规格等更好地突出产品特点。开发产品查询系统,让客户可自行键入相关资料以查询所需的产品,必要时配以精美的样品图和价格资料,甚至采3D视像技术,充分展示你产品的优势。

对商务型网站而言,产品销售是第一要务,若能使用最少篇幅将产品的特性表达清楚,对商品的销售有很大的助益。有些网站对它们的商品无法用简短的文字介绍清楚,在竞争上就失去了优势。

4.网上接单

可开发应用网上产品查询、自动报价、接订单和订单管理系统。进一步的应用还有在线支付、邮购寄发,甚至物流配送到府等。

作为一个网上接单的例子,让我们来看看内地的一家输出公司-深圳龙辉菲林输出中心(http://www.szlh158.com/)的具体运作。该公司的主要业务就是为客户提供菲林输出服务,其网站的主要功能就是提供一个在线上接订单的功能,并提供了简单的用户注册机制。进入了落订单介面,我们可以看到用户可以通过网页的交互介面设置订单内容,包括文件格式、尺寸、分色、线数、阴阳片、药膜面、打样与否、打样纸要求等等,并且能够选择要出菲林的文件上传,从而初步实现了电子商务的基本功能-客户在线上落订单。

当然,更进一步的应用还可以扩展为购物车、订单管理、客户管理、线上支付等。

5.档案传输和远端备份(FTP伺服器)

网站可设置专门的FTP伺服器,公司业务档案可以上载存于伺服器,员工可按授权程度随时下载读取档案。基于保密目的,应将公司档案加密上传备份。

现在一般的虚拟主机提供商和一些拥有主机的专业网站都可以提供FTP服务,根据用户的需要开设一定大子限额的空间,用户就可以使用FTP软体自由上传和下载文件资料了。明峻科技有限公司【传文易】文件管理系统http://cht.mydocuit.com.hk目前就可以提供此类服务。

6.网上教育网站建立内部使用系统,公司员工可用分配的用户名、密码登录进入,读取下载内部培训资料或交流,下载软体程式,观看VCD教材等。

四.提高网站浏览率的小技巧

1.间接网页策略

看了本文后,你应该可以对你的网页如内容规划、META标签和链结、网络应用等进行改善了吧。假设大家的网页设计已经优化,功能上也相差无几,那么网站的展现机会就几乎均等了。所以最近大型企业网站均趋向采取化整为零的间接网页策略,并视此为秘密武器未向世人公开。

所谓间接网页策略,就好比一根钓鱼杆装上好几个钓鱼饵。例如Procter &Gamble为全球性日用品公司,产品包罗万象,Procter &Gamble当然有一个主网页,包括产品和公司机构,但设计再完美仍只是一个网页,所以该公司就依据消费大众的普通需求设计了很多支网页并链结到搜索引擎。例如在搜索引擎中打入Shampoo,就会出现"Head &Shoulders、A Year of Beautiful Hair Sweepstakes"。此网页是一个Procter &Gamble的名牌洗发精;又例如Head &Shoulders挂名举办抽奖活动,并于页尾加上链结到公司主网页(Procter &Gamble)的链结按钮,如此只要将公司主网页链结按钮布置在所有的日用品专案中,自然可以大幅提升主网页的浏览率。

2.专门的友情链结页

第二节"关链字和链结"已经讲到了,尽管友情链结页并不会带来多少直接的访问量,但可以提高网站的搜索引擎排名。所以作为一个网站不可或缺的一个通用栏目,笔者还是建议你设立专门的友情链结页。

3.本地化服务和多语种版本

如果你有做过市场行销工作的经验,你就知道本地化服务有多重要了。市场营销理论,也有提及:客户对产品了解越多越会产生安全感,也就越有可能购买。因此,你应该明确地知道目标市场所在,然后尽可能地根据目标市场所在地的文化观念和消费习惯开发当地语言版本的网站,内容要生动活泼,符合一般群众需求。例如你有40%的客户来自日本,你完全有理由开发一个日本语文的网站。如进入一个自己既不熟悉又很难看懂的网站,大多数人会掉头就走,更不会有兴趣在这网站订购东西了

除了以上直接的原因,与间接网页策略一样,多语种版本可以为你带来额外的访问量。即使鄦的产品或服务只针对香港,内地市场,而且暂时还没有产品外销的计划,那是不是只制作中文网页就足够了呢?其实不是这样的,从提升网站浏览率的角度来看,起码要制作中,英文两个版本的网页。因为网络发源于英文国家-美国,目前英文仍是基本的网络语言,全球著名的搜索引擎商,使用最多的搜索引擎也是英文为主的,你可以将英文版的网页向英文搜索引擎商登记,香港、内地、外国用户会通过英文搜索引擎搜索到你的网页,然后看中文版内容。因此,笔者强烈建议所有的网页都最好至少制作中、英文两个版本。并且,你也许会吸引到国外客户,有意外的收获。

另外,考虑到新的搜索引擎Alexa的排位规则(以同一域名计算网站流量)和网站需要一致的网络标识,多语种版本最好采用与主站一样的域名,或是在域名下设立语种目录,或是使用子域名。例如:雅虎采用的是子域名设计。

主站:http://www.yahoo.com/

中文版(雅虎中国):http://cn.yahoo.com/、http://www.yahoo.com.cn

日文版:http://jp.yahoo.com

如果采用的是语种目录形式的话,式样可能会是这样的

主站:http://www.yahoo.com/

中文版:http://www.yahoo.com/cn/

日文版:http://www.yahoo.com/jp/

完成了网站的规划设计和建设发布,你大可以坐下来休息一下,一边喝着咖啡一边欣赏着自己的网站,但千万不要以为这样就大功告成,可以回家睡大觉,等着订单滚滚而来。其实,这只完成了全部工作的一半,后续工作除了网站内容的持续改进外,还有大量的网站宣传工作要做。例如:主动向搜索引擎商登记注册你的网站,增加链结和以网站访问日志报告作为持续改进网站的客观依据,刊登付费广告推广、网络排名关键字购买等等,


本文的讨论也很精彩,浏览讨论>>


JavaEye推荐



posted @ 2008-08-18 17:04 beauty9235 阅读(219) | 评论 (0)编辑 收藏