PHP-JSP性能不完全测试
[ 2005/11/05 22:50 | by ipaddr ]
前几天在CU看到有人比较PHP与JSP,.net,结果表明PHP比JSP,.net性能低下很多。本人认为即使有差距,也不应该有这么大,所以认真测试一下几者间的性能差距。由于很久没用.net了,所以,暂时没有测试.net。
本测试数据真实,但只做为参考。欢迎大家讨论。
除做比较外,也可供PHP,JSP程序员参考,以便优化自己的程序。
本测试由一直漂(ipaddr,bcomcn)原创,欢迎转载,并注明出处。问题反馈:admin.net(at)163.com
由于这博客帖表格页面容易乱,所以,测试报告放另一服务器上,详情请点击:
http://www.makepic.com/phpjsp.htm
http://www.eit.name/other/phpjsp.htm
>>>>>>>>>>>>
本测试数据真实,但只做为参考。欢迎大家讨论。
除做比较外,也可供PHP,JSP程序员参考,以便优化自己的程序。
本测试由一直漂(ipaddr,bcomcn)原创,欢迎转载,并注明出处。问题反馈:admin.net(at)163.com
由于这博客帖表格页面容易乱,所以,测试报告放另一服务器上,详情请点击:
http://www.makepic.com/phpjsp.htm
http://www.eit.name/other/phpjsp.htm
>>>>>>>>>>>>
PHPMyVisites安装
[ 2005/11/03 22:53 | by ipaddr ]
PHPMyVisites安装
phpMyVisites是一个用PHP/MySQL技术开发,采用Gnu GPL.方式发布的关于网站访问量统计的开
源软件.(ipaddr,bcomcn一直漂原创笔记,转载请注明)
访问统计通常可以分为两类,一类是通过访问日志做统计,另外一类,是实时在线统计。phpMyV
isites属于第二类。
phpMyVisites是一个用PHP/MySQL技术开发,所以,安装PHPMyVisites前,你必须要有一个支持P
HP的WEB服务器,以及安装Mysql数据库。
假设你已安装好PHP+Mysql+WEBServer,接下来安装phpMyVities
a.下载
phpmyvisites的官方网站是:http://www.phpmyvisites.net/
从官方网站下载最新版的PHHMyVisites
b.上传
将phpMyvities解压,上传到服务器的WEB目录,假设放在/phpmyvities目录中
c.设置目录权限
phpmyvities安装过程中,需要新建几个文件,所以,安装前要设置好目录属性,以便PHP能访问
和修改文件系统。主要是需要以下几种属性
/phpmyvities 安装目录,需要有写权限,PHPMyVities会在这目录新建几个配置文件。
/phpmyvities/langdispos.php 语言设置需要修改这个文件
/phpmyvities/lang/* 语言设置可以需要上传语言或删除语言
/phpmyvities/graphs/maps 会修改这些图片
在Linux下,可以将这些目录或文件的属主设为apache。
d.配置好MYSQL数据库
设置好用户和权限,建好数据库
e.安装
http://domain/phpmyvities/
按提示安装。安装过程会建几个配置文件。
f.使用
安装完成后,首先需要建一个站点,建好站点后,再获取javascript代码,将javascript代码到
需要统计的网站的页面。一般是放在网站的统一的页脚里面。
附:PHPMyVities中的JPGRAPH乱码解决方案
PHPMyVities使用jpgraph绘图,jpgraph使用GD库绘图,所以,你的PHP要支持GD库。
默认情况下,jpgraph对中文支持得不好,可以按如下方法修改:
1.首先,从Windows的fonts下面将simhei.ttf,simsun.ttc两处字体拷到[PHPMYVISTI]/graphs/f
onts下面,这个字体路径在graphs/jpgraph.php里面定义了,如果在这个文件没有定义TTF_DIR
常量,那么,将这两个字体文件,Linux下拷到/usr/X11R6/lib/X11/fonts/truetype/,Windows
下拷到fonts下面。
2.
将graphs/config_graph.inc.php里的所有FF_VERDANA字体,改为FF_SIMSUN字体
由于座标也有可能是汉字,所以,座标字体也要改成FF_SIMSUN,将$axey_font,$axex_font设置
为FF_SIMSUN(也就是把所有FF_FONT1改为FF_SIMSUN)
3.由于phpMyVistes的语言包本身就是uft8编码,所以,不需要在程序里进行gb2312->uft8的转
码。需要将程序中转码的部分去除。
找到graphs/jpgraph.php里的LanguageConv类的Convert函数(约660行),
在
elseif( $aFF === FF_SIMSUN ) {
后面,加入一行,
return $aTxt;
不转码直接返回。(注释掉原来{}里的程序段)
注意,此处是因为PHHMyVistes的语言包就是uft8编码的,所以不需要转为utf8编码,PHP用GD库
绘中文汉字时,需要将gb2312编码转为utf8编码。Jpgraph需要转码时,可以用Jpgraph自带的一
个类转,也可以直接用iconv转,iconv("GB2312","UTF-8",$aTxt)。(iconv需要在安装PHP里带
上相关选项。)
jpgraph中文乱码一般可以按这几步解决
1.copy字体到对应目录
2.绘图时,指定字体为FF_SIMSUN
3.所绘字符串需要必须是utf8编码
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
phpMyVisites是一个用PHP/MySQL技术开发,采用Gnu GPL.方式发布的关于网站访问量统计的开
源软件.(ipaddr,bcomcn一直漂原创笔记,转载请注明)
访问统计通常可以分为两类,一类是通过访问日志做统计,另外一类,是实时在线统计。phpMyV
isites属于第二类。
phpMyVisites是一个用PHP/MySQL技术开发,所以,安装PHPMyVisites前,你必须要有一个支持P
HP的WEB服务器,以及安装Mysql数据库。
假设你已安装好PHP+Mysql+WEBServer,接下来安装phpMyVities
a.下载
phpmyvisites的官方网站是:http://www.phpmyvisites.net/
从官方网站下载最新版的PHHMyVisites
b.上传
将phpMyvities解压,上传到服务器的WEB目录,假设放在/phpmyvities目录中
c.设置目录权限
phpmyvities安装过程中,需要新建几个文件,所以,安装前要设置好目录属性,以便PHP能访问
和修改文件系统。主要是需要以下几种属性
/phpmyvities 安装目录,需要有写权限,PHPMyVities会在这目录新建几个配置文件。
/phpmyvities/langdispos.php 语言设置需要修改这个文件
/phpmyvities/lang/* 语言设置可以需要上传语言或删除语言
/phpmyvities/graphs/maps 会修改这些图片
在Linux下,可以将这些目录或文件的属主设为apache。
d.配置好MYSQL数据库
设置好用户和权限,建好数据库
e.安装
http://domain/phpmyvities/
按提示安装。安装过程会建几个配置文件。
f.使用
安装完成后,首先需要建一个站点,建好站点后,再获取javascript代码,将javascript代码到
需要统计的网站的页面。一般是放在网站的统一的页脚里面。
附:PHPMyVities中的JPGRAPH乱码解决方案
PHPMyVities使用jpgraph绘图,jpgraph使用GD库绘图,所以,你的PHP要支持GD库。
默认情况下,jpgraph对中文支持得不好,可以按如下方法修改:
1.首先,从Windows的fonts下面将simhei.ttf,simsun.ttc两处字体拷到[PHPMYVISTI]/graphs/f
onts下面,这个字体路径在graphs/jpgraph.php里面定义了,如果在这个文件没有定义TTF_DIR
常量,那么,将这两个字体文件,Linux下拷到/usr/X11R6/lib/X11/fonts/truetype/,Windows
下拷到fonts下面。
2.
将graphs/config_graph.inc.php里的所有FF_VERDANA字体,改为FF_SIMSUN字体
由于座标也有可能是汉字,所以,座标字体也要改成FF_SIMSUN,将$axey_font,$axex_font设置
为FF_SIMSUN(也就是把所有FF_FONT1改为FF_SIMSUN)
3.由于phpMyVistes的语言包本身就是uft8编码,所以,不需要在程序里进行gb2312->uft8的转
码。需要将程序中转码的部分去除。
找到graphs/jpgraph.php里的LanguageConv类的Convert函数(约660行),
在
elseif( $aFF === FF_SIMSUN ) {
后面,加入一行,
return $aTxt;
不转码直接返回。(注释掉原来{}里的程序段)
注意,此处是因为PHHMyVistes的语言包就是uft8编码的,所以不需要转为utf8编码,PHP用GD库
绘中文汉字时,需要将gb2312编码转为utf8编码。Jpgraph需要转码时,可以用Jpgraph自带的一
个类转,也可以直接用iconv转,iconv("GB2312","UTF-8",$aTxt)。(iconv需要在安装PHP里带
上相关选项。)
jpgraph中文乱码一般可以按这几步解决
1.copy字体到对应目录
2.绘图时,指定字体为FF_SIMSUN
3.所绘字符串需要必须是utf8编码
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Apache+Tomcat整合防止目录泄露
[ 2005/11/01 22:54 | by ipaddr ]
Apache+Tomcat防止目录泄露
(ipaddr,bcomcn笔记,转载请注明)
Apache+Tomcat整合后,两者的主目录指向了同一目录,比如/website/app,因为Tomcat需要在主目录或context下建一个WEB-INF文件夹,对于Tomcat来说,通过Tomcat的8080端口,是无法访问这个目录的,但是,对于apache来说,默认情况下,对这个目录有访问权,用户可以直接访问http://localhost/WEB-INF/web.xml之类的来访问WEB-INF里面的配置,类和库。
需要在apache里配置一下,阻止用户访问WEB-INF之类的文件。
常用方法有:
1.
<Directory ~ "/WEB-INF/">
Order allow,deny
Deny from all
</Directory>
2.
RewriteEngine on
RewriteRule /WEB-INF/ / [R]
>>>>>>>>>>>>>>>>>
(ipaddr,bcomcn笔记,转载请注明)
Apache+Tomcat整合后,两者的主目录指向了同一目录,比如/website/app,因为Tomcat需要在主目录或context下建一个WEB-INF文件夹,对于Tomcat来说,通过Tomcat的8080端口,是无法访问这个目录的,但是,对于apache来说,默认情况下,对这个目录有访问权,用户可以直接访问http://localhost/WEB-INF/web.xml之类的来访问WEB-INF里面的配置,类和库。
需要在apache里配置一下,阻止用户访问WEB-INF之类的文件。
常用方法有:
1.
<Directory ~ "/WEB-INF/">
Order allow,deny
Deny from all
</Directory>
2.
RewriteEngine on
RewriteRule /WEB-INF/ / [R]
>>>>>>>>>>>>>>>>>
Tomcat中数据库连接池的配置
[ 2005/11/01 22:21 | by ipaddr ]
Tomcat中数据库连接池的配置
Tomcat的配置真麻烦,手工操作的话,不但容易出错,而且,输入的内容还挺多,此外,有的配置选项和格式,我个人认为太冗余了。
在Tomcat下配置数据源连接池,按书本上的操作不成功,在网上找资料找了很多,还是不成功,一般是提示URL为null,或Class为null。
Tomcat的官方文档上的方法也行不通,估计是最新版(5.0.28)的Tomcat连接池配置有些变化。
最后,经过摸索,终于配置成功,共享一下。
(ipaddr,bcomcn笔记,转载请注明)
使用Tomcat自动的管理工具(提示:根据多次配置经验,建议大家以后配置Tomcat最好是用自带的管理工具/admin)
a.登录管理界面:http://localhost/admin (或其它形式的地址http://ip:8080/admin)
b.左边的菜单栏时有Tomcat Server,Resources,User Definition.(//注意,不是在Resource里配置数据源,这里配置的是全局的数据源)
c.进入Tomcat Server->Service(Catalina)->Host(一般是loalhost)->Context(/ipaddr),找到具体要配置数据源的context[点左边的树形节
点打开子树,不是直接点节点名称]。
d.打开Context(/ipaddr)[这里是你需要配置数据源的Context,比如Contet(/test)][点左边的树形节点打开子树,不是直接点节点名称]
e.再打开Resources->Data Sources,这里就是针对某个具体Context的DataSource了,点击这里的DataSources,在右边的下拉菜单中选择
Create New Data Source.
f.输入相应的JNDI的名字(一般是jdbc/dbname),URL,驱动(mysql是com.mysql.jdbc.Driver),UserName,UserPassword,以及连接数,点下面的保
存(Save),再点上面的(Comit Changes)。退出管理,你就可以使用数据源了。(一般不需要重启tomcat)
g.测试
Context ctx=new InitialContext();
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/ipaddr");
Connection con=ds.getConnection();
Statement stmt=con.createStatement();
....
经研究发现:Tomcat自带的管理工具配置连接池,只在是TOMCAT_HOME/conf/Catalina/hostname/contextn.xml里做了些修改。这里的配置文件的功能说明,参考我写的另外一篇笔记,“Tomcat的配置文件”
欢迎大家讨论和反映问题.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Tomcat的配置真麻烦,手工操作的话,不但容易出错,而且,输入的内容还挺多,此外,有的配置选项和格式,我个人认为太冗余了。
在Tomcat下配置数据源连接池,按书本上的操作不成功,在网上找资料找了很多,还是不成功,一般是提示URL为null,或Class为null。
Tomcat的官方文档上的方法也行不通,估计是最新版(5.0.28)的Tomcat连接池配置有些变化。
最后,经过摸索,终于配置成功,共享一下。
(ipaddr,bcomcn笔记,转载请注明)
使用Tomcat自动的管理工具(提示:根据多次配置经验,建议大家以后配置Tomcat最好是用自带的管理工具/admin)
a.登录管理界面:http://localhost/admin (或其它形式的地址http://ip:8080/admin)
b.左边的菜单栏时有Tomcat Server,Resources,User Definition.(//注意,不是在Resource里配置数据源,这里配置的是全局的数据源)
c.进入Tomcat Server->Service(Catalina)->Host(一般是loalhost)->Context(/ipaddr),找到具体要配置数据源的context[点左边的树形节
点打开子树,不是直接点节点名称]。
d.打开Context(/ipaddr)[这里是你需要配置数据源的Context,比如Contet(/test)][点左边的树形节点打开子树,不是直接点节点名称]
e.再打开Resources->Data Sources,这里就是针对某个具体Context的DataSource了,点击这里的DataSources,在右边的下拉菜单中选择
Create New Data Source.
f.输入相应的JNDI的名字(一般是jdbc/dbname),URL,驱动(mysql是com.mysql.jdbc.Driver),UserName,UserPassword,以及连接数,点下面的保
存(Save),再点上面的(Comit Changes)。退出管理,你就可以使用数据源了。(一般不需要重启tomcat)
g.测试
Context ctx=new InitialContext();
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/ipaddr");
Connection con=ds.getConnection();
Statement stmt=con.createStatement();
....
经研究发现:Tomcat自带的管理工具配置连接池,只在是TOMCAT_HOME/conf/Catalina/hostname/contextn.xml里做了些修改。这里的配置文件的功能说明,参考我写的另外一篇笔记,“Tomcat的配置文件”
欢迎大家讨论和反映问题.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Tomcat配置文件补充
[ 2005/11/01 22:20 | by ipaddr ]
Tomcat的配置文件,[Ipaddr,bcomcn学习笔记,转载请注明]在绝大多数资料上,都只提到了conf/server.xml以及context下面的WEB-INF/web.xml,但我发现,有时,在server.xml上面没有配置的内容,tomcat也运行着,后来发现,原来除了这两处配置外,还有一处重要的配置文件,在TOMCAT_HOME/conf/Catalina/下面(Catalina是server.xml里的engine的名称),也是一些关键的配置文件,每个主机(server.xml里的Host),在这里有一个目录,每个主机(Host)里的一个context在该主机目录下有一个对应的xml文件,比如,根目录对应ROOT.xml,其它名为test的context对应test.xml。
TOMCAT_HOME/conf/Catalina/hostname/context1.xml相当于在server.xml中的Catalina引擎下的hostname主机下配置context1WEB应用。在目录里配置,和在server.xml里配置效果是一样的,Tomcat自带的admin,自动将所有context转到目录下配置,而不是集中在server.xml。
>>>>
TOMCAT_HOME/conf/Catalina/hostname/context1.xml相当于在server.xml中的Catalina引擎下的hostname主机下配置context1WEB应用。在目录里配置,和在server.xml里配置效果是一样的,Tomcat自带的admin,自动将所有context转到目录下配置,而不是集中在server.xml。
>>>>
Tomcat防止目录泄露
[ 2005/11/01 22:18 | by ipaddr ]
有时不输入页面,直接输入根目录下某个文件夹的名字,这个目录下的文件就会都列出来,这样是不安全的.我们需要在tomcat中进行设置:
打开tomcat的web.xml文件,加入:
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name> <!--在这里加一个值-->
<param-value>false</param-value> <!--改成false就OK了-->
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>>>>>>>>>>>>>>>
打开tomcat的web.xml文件,加入:
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name> <!--在这里加一个值-->
<param-value>false</param-value> <!--改成false就OK了-->
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>>>>>>>>>>>>>>>
生成有4个随机数字和杂乱背景的图片,数字和背景颜色会改变,服务器端刷新(用history.go(-1)也会变)
原型参考ALIBABA http://china.alibaba.com/member/showimage
产生验证码图片的文件-----image.jsp
<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
<%!
Color getRandColor(int fc,int bc){//给定范围获得随机颜色
Random random = new Random();
if(fc>255) fc=255;
if(bc>255) bc=255;
int r=fc+random.nextInt(bc-fc);
int g=fc+random.nextInt(bc-fc);
int b=fc+random.nextInt(bc-fc);
return new Color(r,g,b);
}
%>
<%
//设置页面不缓存
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
// 在内存中创建图象
int width=60, height=20;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
// 获取图形上下文
Graphics g = image.getGraphics();
//生成随机类
Random random = new Random();
// 设定背景色
g.setColor(getRandColor(200,250));
g.fillRect(0, 0, width, height);
//设定字体
g.setFont(new Font("Times New Roman",Font.PLAIN,18));
//画边框
//g.setColor(new Color());
//g.drawRect(0,0,width-1,height-1);
// 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到
g.setColor(getRandColor(160,200));
for (int i=0;i<155;i++)
{
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(12);
int yl = random.nextInt(12);
g.drawLine(x,y,x+xl,y+yl);
}
// 取随机产生的认证码(4位数字)
String sRand="";
for (int i=0;i<4;i++){
String rand=String.valueOf(random.nextInt(10));
sRand+=rand;
// 将认证码显示到图象中
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
g.drawString(rand,13*i+6,16);
}
// 将认证码存入SESSION
session.setAttribute("rand",sRand);
// 图象生效
g.dispose();
// 输出图象到页面
ImageIO.write(image, "JPEG", response.getOutputStream());
%>
---------------使用验证码图片的文件---------a.jsp------------------------------------
<%@ page contentType="text/html;charset=gb2312" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>认证码输入页面</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
</head>
<body>
<form method=post action="check.jsp">
<table>
<tr>
<td align=left>系统产生的认证码:</td>
<td><img border=0 src="image.jsp"></td>
</tr>
<tr>
<td align=left>输入上面的认证码:</td>
<td><input type=text name=rand maxlength=4 value=""></td>
</tr>
<tr>
<td colspan=2 align=center><input type=submit value="提交检测"></td>
</tr>
</form>
</body>
</html>
-----------------验证的页面----------check.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<title>认证码验证页面</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
</head>
<body>
<%
String rand = (String)session.getAttribute("rand");
String input = request.getParameter("rand");
%>
系统产生的认证码为: <%= rand %><br>
您输入的认证码为: <%= input %><br>
<br>
<%
if (rand.equals(input)) {
%>
<font color=green>输入相同,认证成功!</font>
<%
} else {
%>
<font color=red>输入不同,认证失败!</font>
<%
}
%>
</body>
</html>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
原型参考ALIBABA http://china.alibaba.com/member/showimage
产生验证码图片的文件-----image.jsp
<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
<%!
Color getRandColor(int fc,int bc){//给定范围获得随机颜色
Random random = new Random();
if(fc>255) fc=255;
if(bc>255) bc=255;
int r=fc+random.nextInt(bc-fc);
int g=fc+random.nextInt(bc-fc);
int b=fc+random.nextInt(bc-fc);
return new Color(r,g,b);
}
%>
<%
//设置页面不缓存
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
// 在内存中创建图象
int width=60, height=20;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
// 获取图形上下文
Graphics g = image.getGraphics();
//生成随机类
Random random = new Random();
// 设定背景色
g.setColor(getRandColor(200,250));
g.fillRect(0, 0, width, height);
//设定字体
g.setFont(new Font("Times New Roman",Font.PLAIN,18));
//画边框
//g.setColor(new Color());
//g.drawRect(0,0,width-1,height-1);
// 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到
g.setColor(getRandColor(160,200));
for (int i=0;i<155;i++)
{
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(12);
int yl = random.nextInt(12);
g.drawLine(x,y,x+xl,y+yl);
}
// 取随机产生的认证码(4位数字)
String sRand="";
for (int i=0;i<4;i++){
String rand=String.valueOf(random.nextInt(10));
sRand+=rand;
// 将认证码显示到图象中
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
g.drawString(rand,13*i+6,16);
}
// 将认证码存入SESSION
session.setAttribute("rand",sRand);
// 图象生效
g.dispose();
// 输出图象到页面
ImageIO.write(image, "JPEG", response.getOutputStream());
%>
---------------使用验证码图片的文件---------a.jsp------------------------------------
<%@ page contentType="text/html;charset=gb2312" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>认证码输入页面</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
</head>
<body>
<form method=post action="check.jsp">
<table>
<tr>
<td align=left>系统产生的认证码:</td>
<td><img border=0 src="image.jsp"></td>
</tr>
<tr>
<td align=left>输入上面的认证码:</td>
<td><input type=text name=rand maxlength=4 value=""></td>
</tr>
<tr>
<td colspan=2 align=center><input type=submit value="提交检测"></td>
</tr>
</form>
</body>
</html>
-----------------验证的页面----------check.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<title>认证码验证页面</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
</head>
<body>
<%
String rand = (String)session.getAttribute("rand");
String input = request.getParameter("rand");
%>
系统产生的认证码为: <%= rand %><br>
您输入的认证码为: <%= input %><br>
<br>
<%
if (rand.equals(input)) {
%>
<font color=green>输入相同,认证成功!</font>
<%
} else {
%>
<font color=red>输入不同,认证失败!</font>
<%
}
%>
</body>
</html>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
WindowXP(2000)下Apache2+Tomcat+PHP4+Mysql的安装
[ 2005/10/17 22:54 | by ipaddr ]
一.安装Apache2
下载地址:http://www.apache.org
下载installer的安装版本,直接根据提示安装完成。
配置httpd.conf
(ipaddr,bcomcn一直漂原创笔记,转载请注明)
二.安装PHP
下载地址:http://www.php.net
下载Windows的ZIP包,解压到c:\php
1.将c:\php加入到系统环境变量PATH
如果不加入环境变量,很多库需要拷到系统目录,我觉得还是加环境变量方便
2.将c:\php\php4ts.dll文件拷到c:\windows(2000是c:\winnt)
此步不可省略
3.修改php.ini-recommand为php.ini,修改php.ini,移动到c:\windows
注:如果php.ini不拷到c:\windows,则需要在httpd.conf里配置PHPInDir="C:\php"
配置PHP的选项:
doc_root = c:\website\htdocs
extension_dir = c:\php\extensions
session.save_path = c:\php\temp
4.修改httpd.conf
加入:
LoadModule php4_module "c:/php/sapi/php4apache2.dll"
#注:网上很多文章此处有错误,误写成"c:/php/php4apache2.dll"
AddType application/x-httpd-php .php
DirectoryIndex .... index.php (在索引页中,加入index.php,支持JSP后,加入index.jsp)
修改DocumentRoot指向网站根目录.
三.安装Mysql
直接到www.mysql.org下载For Windows版的,根据提示安装即可。
四.安装phpmyadmin
到www.phpmyadmin.net下载最新版的phpmyadmin
解压到网站根目录的/mysql中
将config.inc.php里的auth_type改为http
如果是4.1版本以上的Mysql,需要将认证密码改一下:
登录Mysql:
use mysql
update user set Password=old_password('zhoutang');
flush privileges;
五.安装Tomcat
三步安装Tomcat
在Wind2000系统上都已经成功安装Tomcat,只需要三步:
第一步:
下载准备必备文件:
1.jakarta-tomcat-5.0.28.exe (安装文件) http://jakarta.apache.org/tomcat/index.html
(Tomcat4.1是老版本,支持的JSP和Serverlet版本低一点,Tomcat5.0是新版稳定版本,5.5是开发版本.)
2.j2sdk-1_4_2_09-windows-i586-p.exe (Jdk1.4) http://java.sun.com/j2se/1.4/download.html
3.mysql-connector-java-3.1.10.zip (支持数据库) http://www.mysql.com/downloads/api-jdbc.html
第二步:
运行j2sdk-1_4_2_09-windows-i586-p.exe,安装在c:\program files\jsdk
在windows2000的控制面板 中 选择 '系统',在'高级'页 选择'环境变量'
新增:
JAVA_HOME=c:\program files\jsdk
CLASSPATH=.;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
PATH=%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
(PATH是加在原PATH后面)
第一行是设置Windows下JAVA_HOME环境变量,是必须设定的,后面两行主要对Windows下命令窗口起作用(DOS窗口)。注意CLASSPATH的第一个参数是“.”,如果这个不设置,使用java hello.helloWorld 会报Exception in thread "main" java.lang.NoClassDefFoundError
此步完成后,进入DOS模式,可以运行java -version查看Java版本就表示JDK安装成功.
第三步:
运行jakarta-tomcat-5.0.28.exe,并且,将Tomcat安装为Windows的服务运行。
解压mysql-connector-java-3.1.10.zip,我们需要里面的mysql-connector-java-3.1.10-bin.jar文件,拷贝这个文件到tomcat的安装目录的common/lib下面
启动Tomcat,只需启动Windows服务里的Tomcat就行
在浏览器键入http://localhost:8080/ 看到Tomcat的启动页面.
测试:
Tomcat+JDK+mySQL完整测试:
a.在tomcat/webapps下建立子目录test
b.复制目录(注意是整个目录)tomcat/webapps/ROOT/WEB-INF到新建的test目录下
c.在test目录下新建index.jsp文件:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html><title测试JSP连接Mysql页面</title><body>
<%Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost:3306/mysql?user=root&password=&useUnicode=true&characterEncoding=GB2312";
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from user";
ResultSet rs=stmt.executeQuery(sql); %>
<table><tr><td>您的第一个字段内容为:</td>
<td>您的第二个字段内容为:</td>
</tr>
<%while(rs.next()) {%>
<tr><td>
<%=rs.getString(1)%> </td><td>
<%=rs.getString(2)%> </td></tr>
<%}%>
</table>
<%out.print("Tomcat+JDK+mySQL完整测试,恭喜你,数据库操作成功(ipaddr)!");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
d.在浏览器中输入:http://localhost:8080/test,若出现“Tomcat+JDK+mySQL完整测试,恭喜你,数据库操作成功!”,则说明你的Tomcat+JDK+mySQL整体配置成功。
六.整合Tomcat和Apache.
在http://jakarta.apache.org/下载mod_jk-1.2.14-apache-2.0.54.so
将mod_jk-1.2.14-apache-2.0.54.so改名为mod_jk.so放到Apache的Modules目录下.(mod_jk2已不被官方支持)
a.在Apache的配置文件httpd.conf里加入:(httpd.conf中的相对路径指相对httpd.conf里的ServerRoot)
#------------------------------------
#Tomcat Config
#----------
# Load mod_jk module
LoadModule jk_module modules/mod_jk.so
# Where to find workers.properties
JkWorkersFile "conf/workers.properties"
# Where to put jk logs
JkLogFile "logs/mod_jk.log"
# Set the jk log level [debug/error/info]
JkLogLevel info
JkMount /servlet/* ajp13
JkMount /*.jsp ajp13
#------------------------------------
#JkMount指示,将哪些请求发到Tomcat,如果在其它目录也有servlet,也需在这里映射,
#比如,如果/axis/下面有很几个servlet,可以分别映射,也可以JkMount /axis ajp13全部映射,所有/axis下的访问,都交给tomcat.
#另外,如果要用tomcat的admin管理,还需要JkMount /admin/* ajp13
#注意,JkMount后面的ajp13是Worker名,应该在下面的workers.properties中定义.
b.在apache的CONF目录下,新建一个workers.properties文件,内容如下:
#指定Tomcat的主目录以及JDK
workers.tomcat_home=C:\Program Files\Apache Software Foundation\Tomcat
workers.java_home=C:\Program Files\jsdk
ps=/
#Worker列表
worker.list=ajp12, ajp13
worker.ajp12.port=8007
worker.ajp12.host=localhost
worker.ajp12.type=ajp12
worker.ajp12.lbfactor=1
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1
c.修改Tomcat主目录下的conf/server.xml
在</Host前面,加上主目录>
<Context path="" docBase="D:\website\apache" debug="0" reloadable="true" > </Context>
注意,这里的docBase应该与httpd.conf里的DocumentRoot一致.才能叫整合;path="",不能写成path="/".
#或者,修改<Host>中的appBase指定网站根目录.
d.如果开了防火墙,logs/mod_jk.log里面会有好多错误,提示连接Localhost:8009失败的,打开防火墙的这个端口.
e.如果不需要通过8080端口访问,刚可以在conf/server.xml中,注释掉8080端口的connector
配置完成,测试成功.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
下载地址:http://www.apache.org
下载installer的安装版本,直接根据提示安装完成。
配置httpd.conf
(ipaddr,bcomcn一直漂原创笔记,转载请注明)
二.安装PHP
下载地址:http://www.php.net
下载Windows的ZIP包,解压到c:\php
1.将c:\php加入到系统环境变量PATH
如果不加入环境变量,很多库需要拷到系统目录,我觉得还是加环境变量方便
2.将c:\php\php4ts.dll文件拷到c:\windows(2000是c:\winnt)
此步不可省略
3.修改php.ini-recommand为php.ini,修改php.ini,移动到c:\windows
注:如果php.ini不拷到c:\windows,则需要在httpd.conf里配置PHPInDir="C:\php"
配置PHP的选项:
doc_root = c:\website\htdocs
extension_dir = c:\php\extensions
session.save_path = c:\php\temp
4.修改httpd.conf
加入:
LoadModule php4_module "c:/php/sapi/php4apache2.dll"
#注:网上很多文章此处有错误,误写成"c:/php/php4apache2.dll"
AddType application/x-httpd-php .php
DirectoryIndex .... index.php (在索引页中,加入index.php,支持JSP后,加入index.jsp)
修改DocumentRoot指向网站根目录.
三.安装Mysql
直接到www.mysql.org下载For Windows版的,根据提示安装即可。
四.安装phpmyadmin
到www.phpmyadmin.net下载最新版的phpmyadmin
解压到网站根目录的/mysql中
将config.inc.php里的auth_type改为http
如果是4.1版本以上的Mysql,需要将认证密码改一下:
登录Mysql:
use mysql
update user set Password=old_password('zhoutang');
flush privileges;
五.安装Tomcat
三步安装Tomcat
在Wind2000系统上都已经成功安装Tomcat,只需要三步:
第一步:
下载准备必备文件:
1.jakarta-tomcat-5.0.28.exe (安装文件) http://jakarta.apache.org/tomcat/index.html
(Tomcat4.1是老版本,支持的JSP和Serverlet版本低一点,Tomcat5.0是新版稳定版本,5.5是开发版本.)
2.j2sdk-1_4_2_09-windows-i586-p.exe (Jdk1.4) http://java.sun.com/j2se/1.4/download.html
3.mysql-connector-java-3.1.10.zip (支持数据库) http://www.mysql.com/downloads/api-jdbc.html
第二步:
运行j2sdk-1_4_2_09-windows-i586-p.exe,安装在c:\program files\jsdk
在windows2000的控制面板 中 选择 '系统',在'高级'页 选择'环境变量'
新增:
JAVA_HOME=c:\program files\jsdk
CLASSPATH=.;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
PATH=%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
(PATH是加在原PATH后面)
第一行是设置Windows下JAVA_HOME环境变量,是必须设定的,后面两行主要对Windows下命令窗口起作用(DOS窗口)。注意CLASSPATH的第一个参数是“.”,如果这个不设置,使用java hello.helloWorld 会报Exception in thread "main" java.lang.NoClassDefFoundError
此步完成后,进入DOS模式,可以运行java -version查看Java版本就表示JDK安装成功.
第三步:
运行jakarta-tomcat-5.0.28.exe,并且,将Tomcat安装为Windows的服务运行。
解压mysql-connector-java-3.1.10.zip,我们需要里面的mysql-connector-java-3.1.10-bin.jar文件,拷贝这个文件到tomcat的安装目录的common/lib下面
启动Tomcat,只需启动Windows服务里的Tomcat就行
在浏览器键入http://localhost:8080/ 看到Tomcat的启动页面.
测试:
Tomcat+JDK+mySQL完整测试:
a.在tomcat/webapps下建立子目录test
b.复制目录(注意是整个目录)tomcat/webapps/ROOT/WEB-INF到新建的test目录下
c.在test目录下新建index.jsp文件:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html><title测试JSP连接Mysql页面</title><body>
<%Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost:3306/mysql?user=root&password=&useUnicode=true&characterEncoding=GB2312";
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from user";
ResultSet rs=stmt.executeQuery(sql); %>
<table><tr><td>您的第一个字段内容为:</td>
<td>您的第二个字段内容为:</td>
</tr>
<%while(rs.next()) {%>
<tr><td>
<%=rs.getString(1)%> </td><td>
<%=rs.getString(2)%> </td></tr>
<%}%>
</table>
<%out.print("Tomcat+JDK+mySQL完整测试,恭喜你,数据库操作成功(ipaddr)!");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
d.在浏览器中输入:http://localhost:8080/test,若出现“Tomcat+JDK+mySQL完整测试,恭喜你,数据库操作成功!”,则说明你的Tomcat+JDK+mySQL整体配置成功。
六.整合Tomcat和Apache.
在http://jakarta.apache.org/下载mod_jk-1.2.14-apache-2.0.54.so
将mod_jk-1.2.14-apache-2.0.54.so改名为mod_jk.so放到Apache的Modules目录下.(mod_jk2已不被官方支持)
a.在Apache的配置文件httpd.conf里加入:(httpd.conf中的相对路径指相对httpd.conf里的ServerRoot)
#------------------------------------
#Tomcat Config
#----------
# Load mod_jk module
LoadModule jk_module modules/mod_jk.so
# Where to find workers.properties
JkWorkersFile "conf/workers.properties"
# Where to put jk logs
JkLogFile "logs/mod_jk.log"
# Set the jk log level [debug/error/info]
JkLogLevel info
JkMount /servlet/* ajp13
JkMount /*.jsp ajp13
#------------------------------------
#JkMount指示,将哪些请求发到Tomcat,如果在其它目录也有servlet,也需在这里映射,
#比如,如果/axis/下面有很几个servlet,可以分别映射,也可以JkMount /axis ajp13全部映射,所有/axis下的访问,都交给tomcat.
#另外,如果要用tomcat的admin管理,还需要JkMount /admin/* ajp13
#注意,JkMount后面的ajp13是Worker名,应该在下面的workers.properties中定义.
b.在apache的CONF目录下,新建一个workers.properties文件,内容如下:
#指定Tomcat的主目录以及JDK
workers.tomcat_home=C:\Program Files\Apache Software Foundation\Tomcat
workers.java_home=C:\Program Files\jsdk
ps=/
#Worker列表
worker.list=ajp12, ajp13
worker.ajp12.port=8007
worker.ajp12.host=localhost
worker.ajp12.type=ajp12
worker.ajp12.lbfactor=1
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1
c.修改Tomcat主目录下的conf/server.xml
在</Host前面,加上主目录>
<Context path="" docBase="D:\website\apache" debug="0" reloadable="true" > </Context>
注意,这里的docBase应该与httpd.conf里的DocumentRoot一致.才能叫整合;path="",不能写成path="/".
#或者,修改<Host>中的appBase指定网站根目录.
d.如果开了防火墙,logs/mod_jk.log里面会有好多错误,提示连接Localhost:8009失败的,打开防火墙的这个端口.
e.如果不需要通过8080端口访问,刚可以在conf/server.xml中,注释掉8080端口的connector
配置完成,测试成功.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
打造人脉-成就事业[转载]-
[ 2005/10/17 22:33 | by ipaddr ]
虽然你很真心对待朋友,但可能你的朋友并不多,不管如何,在中国这样的关系社会,没有朋友是成不了事的.虽然很坦诚交朋友,但在人际交往中,我经常犯错误,转载CU的文章,警示自己:
在上一章的叙述中,我们谈到我们的学校教育对于我们的成功起不到很大的作用,学校几乎不会教导我们怎么与人打交道,不会教导我们怎么去面对各种困境,而实际上这两个方面是决定我们是否能成功的关键因素。在我们走入社会后,我们最缺乏的就是人脉,我们要面对的一个重大的课题是如何建立我们的人际关系网络。下面讨论一些常用的技巧和一般的指导理论。
处理人际关系的绝技[1]
1、 如果你要采蜜,不可弄翻蜂巢——不要批评、指责、抱怨。
关于批评、指责、抱怨带来的恶果,我们在这里就不讨论了;我们所有的人都深受其害。我们所要做的是警惕自己的言行3个礼拜,从内心中完全地禁止批评、指责、抱怨他人的动机。
2、 不要逼别人认错;这只会使你失去很多的朋友。我曾经有过很多类似的愚蠢的错误。
3、 不要说得太多,想办法让别人多说。
4、 常常保持中立,保持客观。
5、 宽容别人的错误。
6、 不要轻易打断、纠正、补充别人的谈话。
7、 尽量迎合别人的兴趣。
8、 想要赞美别人时,高声地说出来;想要批评别人时,咬住舌头。
9、 别人有困难时,主动帮助,多多鼓励。
10、 时刻关爱他人。
11、 不要因为太熟、太亲而不注意礼节。
12、 想钓到鱼,就要问问鱼儿想吃什么。
唯一能影响别人的方法是谈论他要的,教他怎样去得到他想要的。首先撩起对方的急切欲望,能够做到这点的人,就可以掌握世界;不能的人,将孤独一生。
13、 一个人只要对别人真心感兴趣,在两个月之内,他所得到的朋友,就比一个要别人对他感兴趣的人在两年内所交的朋友还要多。
14、 始终以微笑待人。
15、 牢记他人的名字。
16、 你遇到的每个人,都认为他在某些方面比你优秀;而一个绝对可以赢得他人欢心的方法是:以不着痕迹的方法让他明白,他是个重要人物。
17、 尊重他人,让对方认为自己是个重要的人物,满足他的成就感。
18、 做诚实、正直的人。
19、 如果你错了,就承认吧。
20、 在一开始交谈时,立即就让对方说:“是的,是的”,他就会忘掉争执,并乐意接受你的意见。
21、 如果你要得到仇人,就去表现得比你朋友优越;如果你要得到朋友,就要让你的朋友表现得比你优越。
22、 如果你要赢得他人的合作,就要征询他人的愿望、需要及想法,让他觉得是出于自愿。
23、 给予他人同情和谅解,我们每天遇见的人中,有四分之三都渴望得到同情,给他们同情吧,他们将会爱你。
24、 如果要批评别人,就巧妙地暗示对方注意自己的错误,如果要直接指出错误,就一定要具体。
25、 让别人保住面子。
26、 用“建议”而不是命令,不但能维持对方的自尊,而且能使他人乐于改正错误并与你合作。
27、 要让别人乐于照着你希望的去做,你就必须让他明白,他对你有多么的重要,而他便会觉得这件事对他也有多么重要。
我们可以简单地归纳为:尊重他人、仔细倾听、从对方角度思考问题、谈论对方的想得到的东西、求同存异。
人际关系结构
上面我们讨论的是些具体的一些与人交往的技巧,下面我们讨论一下掩藏在纷繁复杂的人际关系中的内在规律,探讨一下不同的人要拥有什么样的人际结构才有利于我们的成功。
人际关系一般由如下几部分组成:
1、 血缘关系,天生的,不可改变,是我们每个人都应该珍惜的宝物。
2、 亲戚关系,一半是先天的,一半是后天的。如刘备娶了孙权的小妹就与刘备形成了亲戚关系。清朝黄族通过联姻的方式来搞好汉、满、蒙族的关系,进而稳固他们的政权就是采用的这种方式。
3、 同学关系。同学关系成为现代人际关系中的重要方面,尤其是对于高学历人来说。与同学关系的好坏对于我们未来的发展具有重大的影响。很多的小公司就是由同学合伙开办的,大家熟知的微软公司就是极好的例子。
4、 志趣相投的朋友。这种关系较为稳固,值得我们花大心思去维护、培养,以诚相待;关爱是搞好关系的关键。
5、 知己。这种朋友最难得,无论怎么强调其重要性都不为过;宽容、坦诚、友爱是其中的要素。
6、 伴侣。这是一生中对我们每个人都有重大影响的人际关系。我们需要严格地挑选我们的伴侣,一个好的伴侣可以使我们的力量超过三个人,一个不合适的伴侣会使我们两个人的力量小于半个人的力量。
7、 性格不同的朋友。这种朋友在交接过程中有一定的难度,但是对个人的发展却非常重要。我们需要从那些与我们不同的朋友身上不断地学习新的东西。正所谓“三人行,必有我师焉,择其善者而从之,其不善者而改之。”性格一样的朋友在一起容易引起共鸣,但也就是因为这个共鸣会使我们考虑问题时流于片面;因此保持一定数量的与我们性格不同的朋友,是个明智的选择。
8、 合作伙伴。如果我们与其他人一起创业,合作伙伴的选择至关重要,我们需要综合考虑我们的目标、性格来决定我们的合作伙伴。
9、 成功人士。俗话说:“近墨者黑,近朱者赤。”我们周围有一大批成功人士的话,我们迟早也会成功;因为他们的成功经验、失败教训、资金、技术是我们成功的宝贵财富。
10、 业务朋友。这是我们工作中直接面对的朋友,不要小看周围的任何人物;不要把他们当作简单的产品服务对象。坚持和尽可能多的业务人士做朋友,会使我们更加容易掌握市场讯息,更加容易处理投诉、服务等问题。
11、 专业朋友。这包括与我们水平相当的专业朋友,和技术水平比我们更高和更低的朋友。我们知识中有一大部分是我们所需要的专业知识,维持相当数量的专业朋友会使我们在遇到专业问题时找到好的帮手,会使我们在发表文章、评定职称、提升影响力方面有意想不到的好处。
12、 有重大影响力的朋友。这些人可能是我们的长辈、上级,可能与我们没有直接的关联,但是他们对我们的成功产生重大的影响。如朋友的家属,政府部门、朋友的朋友,这些没有直接关系的朋友,只要能够获得他们的帮助,会大大增添我们成功的机会;如果他们使坏,将使我们的损失不可预料。
13、 一次性的朋友。这里说的一次性朋友泛指那些接触时间很短暂,却总要接触的朋友。比如说从你们公司买了个小东西的客户,一个朋友的朋友,一个你经常要打交道的政府工作人员,处理不好与这些朋友的关系会使我们的工作效率打大折扣。
14、 娱乐圈朋友。这种朋友一般是在娱乐场所中结识的朋友。比如说篮球友、足球友、乒乓球友、羽毛球友、象棋友、舞友等。这种朋友一般比较容易结识;交往时大家也没有什么顾忌,一般是以真面目出现。结交这样的朋友可以使我们有持续的兴趣在我们的娱乐上,只要我们的娱乐项目有益于身心健康,我们就可以从中受益非浅。我们也可以从这些朋友中选择那些有益于事业发展的人士作为我们的合作伙伴,不断创造我们成功的机会。
15、 朋友的朋友。通过朋友介绍结识新的朋友,这是构建我们人际网络的重要方法。
个人的人际关系网络都是不同的,不同目标、不同的理想需要不同的人际关系网络去支持,人际关系网络没有最好的,只有最适合的;如果我们想成为一个技术专家,那么我们就要在结交“专业朋友”上面多下工夫,要是我们把力量的大部分用在结交“娱乐圈朋友”的话我们就很难成为一个技术专家。
我们把各种朋友进行分类,其目的就在于我们要从中发现影响我们工作、事业的最主要的人际关系因素;使我们有目的有意识的加强相关方面的交往,我们要把很大一部分精力发在那些对我们的事业最有影响力的人际关系上,为我们的成功创造良好的人际关系环境,当然这一切都是建立在双赢的原则上。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
在上一章的叙述中,我们谈到我们的学校教育对于我们的成功起不到很大的作用,学校几乎不会教导我们怎么与人打交道,不会教导我们怎么去面对各种困境,而实际上这两个方面是决定我们是否能成功的关键因素。在我们走入社会后,我们最缺乏的就是人脉,我们要面对的一个重大的课题是如何建立我们的人际关系网络。下面讨论一些常用的技巧和一般的指导理论。
处理人际关系的绝技[1]
1、 如果你要采蜜,不可弄翻蜂巢——不要批评、指责、抱怨。
关于批评、指责、抱怨带来的恶果,我们在这里就不讨论了;我们所有的人都深受其害。我们所要做的是警惕自己的言行3个礼拜,从内心中完全地禁止批评、指责、抱怨他人的动机。
2、 不要逼别人认错;这只会使你失去很多的朋友。我曾经有过很多类似的愚蠢的错误。
3、 不要说得太多,想办法让别人多说。
4、 常常保持中立,保持客观。
5、 宽容别人的错误。
6、 不要轻易打断、纠正、补充别人的谈话。
7、 尽量迎合别人的兴趣。
8、 想要赞美别人时,高声地说出来;想要批评别人时,咬住舌头。
9、 别人有困难时,主动帮助,多多鼓励。
10、 时刻关爱他人。
11、 不要因为太熟、太亲而不注意礼节。
12、 想钓到鱼,就要问问鱼儿想吃什么。
唯一能影响别人的方法是谈论他要的,教他怎样去得到他想要的。首先撩起对方的急切欲望,能够做到这点的人,就可以掌握世界;不能的人,将孤独一生。
13、 一个人只要对别人真心感兴趣,在两个月之内,他所得到的朋友,就比一个要别人对他感兴趣的人在两年内所交的朋友还要多。
14、 始终以微笑待人。
15、 牢记他人的名字。
16、 你遇到的每个人,都认为他在某些方面比你优秀;而一个绝对可以赢得他人欢心的方法是:以不着痕迹的方法让他明白,他是个重要人物。
17、 尊重他人,让对方认为自己是个重要的人物,满足他的成就感。
18、 做诚实、正直的人。
19、 如果你错了,就承认吧。
20、 在一开始交谈时,立即就让对方说:“是的,是的”,他就会忘掉争执,并乐意接受你的意见。
21、 如果你要得到仇人,就去表现得比你朋友优越;如果你要得到朋友,就要让你的朋友表现得比你优越。
22、 如果你要赢得他人的合作,就要征询他人的愿望、需要及想法,让他觉得是出于自愿。
23、 给予他人同情和谅解,我们每天遇见的人中,有四分之三都渴望得到同情,给他们同情吧,他们将会爱你。
24、 如果要批评别人,就巧妙地暗示对方注意自己的错误,如果要直接指出错误,就一定要具体。
25、 让别人保住面子。
26、 用“建议”而不是命令,不但能维持对方的自尊,而且能使他人乐于改正错误并与你合作。
27、 要让别人乐于照着你希望的去做,你就必须让他明白,他对你有多么的重要,而他便会觉得这件事对他也有多么重要。
我们可以简单地归纳为:尊重他人、仔细倾听、从对方角度思考问题、谈论对方的想得到的东西、求同存异。
人际关系结构
上面我们讨论的是些具体的一些与人交往的技巧,下面我们讨论一下掩藏在纷繁复杂的人际关系中的内在规律,探讨一下不同的人要拥有什么样的人际结构才有利于我们的成功。
人际关系一般由如下几部分组成:
1、 血缘关系,天生的,不可改变,是我们每个人都应该珍惜的宝物。
2、 亲戚关系,一半是先天的,一半是后天的。如刘备娶了孙权的小妹就与刘备形成了亲戚关系。清朝黄族通过联姻的方式来搞好汉、满、蒙族的关系,进而稳固他们的政权就是采用的这种方式。
3、 同学关系。同学关系成为现代人际关系中的重要方面,尤其是对于高学历人来说。与同学关系的好坏对于我们未来的发展具有重大的影响。很多的小公司就是由同学合伙开办的,大家熟知的微软公司就是极好的例子。
4、 志趣相投的朋友。这种关系较为稳固,值得我们花大心思去维护、培养,以诚相待;关爱是搞好关系的关键。
5、 知己。这种朋友最难得,无论怎么强调其重要性都不为过;宽容、坦诚、友爱是其中的要素。
6、 伴侣。这是一生中对我们每个人都有重大影响的人际关系。我们需要严格地挑选我们的伴侣,一个好的伴侣可以使我们的力量超过三个人,一个不合适的伴侣会使我们两个人的力量小于半个人的力量。
7、 性格不同的朋友。这种朋友在交接过程中有一定的难度,但是对个人的发展却非常重要。我们需要从那些与我们不同的朋友身上不断地学习新的东西。正所谓“三人行,必有我师焉,择其善者而从之,其不善者而改之。”性格一样的朋友在一起容易引起共鸣,但也就是因为这个共鸣会使我们考虑问题时流于片面;因此保持一定数量的与我们性格不同的朋友,是个明智的选择。
8、 合作伙伴。如果我们与其他人一起创业,合作伙伴的选择至关重要,我们需要综合考虑我们的目标、性格来决定我们的合作伙伴。
9、 成功人士。俗话说:“近墨者黑,近朱者赤。”我们周围有一大批成功人士的话,我们迟早也会成功;因为他们的成功经验、失败教训、资金、技术是我们成功的宝贵财富。
10、 业务朋友。这是我们工作中直接面对的朋友,不要小看周围的任何人物;不要把他们当作简单的产品服务对象。坚持和尽可能多的业务人士做朋友,会使我们更加容易掌握市场讯息,更加容易处理投诉、服务等问题。
11、 专业朋友。这包括与我们水平相当的专业朋友,和技术水平比我们更高和更低的朋友。我们知识中有一大部分是我们所需要的专业知识,维持相当数量的专业朋友会使我们在遇到专业问题时找到好的帮手,会使我们在发表文章、评定职称、提升影响力方面有意想不到的好处。
12、 有重大影响力的朋友。这些人可能是我们的长辈、上级,可能与我们没有直接的关联,但是他们对我们的成功产生重大的影响。如朋友的家属,政府部门、朋友的朋友,这些没有直接关系的朋友,只要能够获得他们的帮助,会大大增添我们成功的机会;如果他们使坏,将使我们的损失不可预料。
13、 一次性的朋友。这里说的一次性朋友泛指那些接触时间很短暂,却总要接触的朋友。比如说从你们公司买了个小东西的客户,一个朋友的朋友,一个你经常要打交道的政府工作人员,处理不好与这些朋友的关系会使我们的工作效率打大折扣。
14、 娱乐圈朋友。这种朋友一般是在娱乐场所中结识的朋友。比如说篮球友、足球友、乒乓球友、羽毛球友、象棋友、舞友等。这种朋友一般比较容易结识;交往时大家也没有什么顾忌,一般是以真面目出现。结交这样的朋友可以使我们有持续的兴趣在我们的娱乐上,只要我们的娱乐项目有益于身心健康,我们就可以从中受益非浅。我们也可以从这些朋友中选择那些有益于事业发展的人士作为我们的合作伙伴,不断创造我们成功的机会。
15、 朋友的朋友。通过朋友介绍结识新的朋友,这是构建我们人际网络的重要方法。
个人的人际关系网络都是不同的,不同目标、不同的理想需要不同的人际关系网络去支持,人际关系网络没有最好的,只有最适合的;如果我们想成为一个技术专家,那么我们就要在结交“专业朋友”上面多下工夫,要是我们把力量的大部分用在结交“娱乐圈朋友”的话我们就很难成为一个技术专家。
我们把各种朋友进行分类,其目的就在于我们要从中发现影响我们工作、事业的最主要的人际关系因素;使我们有目的有意识的加强相关方面的交往,我们要把很大一部分精力发在那些对我们的事业最有影响力的人际关系上,为我们的成功创造良好的人际关系环境,当然这一切都是建立在双赢的原则上。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
人生是不公平的 盖茨给职场新人的10句话
[ 2005/10/10 22:34 | by ipaddr ]
1.人生是不公平的,习惯去接受它吧。
2.这个世界不会在乎你的自尊,这个世界期望你先做出成绩,再去强调自己的感受。
3.你不会一离开学校就有百万年薪,你不会马上就是拥有移动电话的副总裁,两者你都必须靠努力赚来。
4.如果你觉得你的老板很凶,等你当了老板就知道了,老板是没有工作任期保障的。
5.在速食店煎个汉堡并不是作贱自己,你的祖父母对煎汉堡有完全不同的定义。
6.如果你一事无成,不是你父母的错,所以不要只会对自己犯的错发牢骚,从错误中去学习。
7.在你出生前,你的父母并不像现在这般无趣,他们变成这样是因为忙着付你的开销,洗你的衣服,听你吹嘘自己有多了不起,所以在你拯救被父母这代人破坏的热带雨林前,先整理一下自己的房间吧。
8.在学校里可能有赢家和输家,在人生中却还言之过早,学校可能会不断给你机会找到正确的答案,真实人生中却完全不是这么回事。
9.人生不是学期制,人生没有寒假,没有哪个雇主有兴趣协助你寻找自我,请用自己的空暇做这件事吧。
10.电视上演的并不是真实的人生,真实人生中每个人都要离开咖啡厅去上班。
>>>>>>>>>>>>>>>>>>>>>
2.这个世界不会在乎你的自尊,这个世界期望你先做出成绩,再去强调自己的感受。
3.你不会一离开学校就有百万年薪,你不会马上就是拥有移动电话的副总裁,两者你都必须靠努力赚来。
4.如果你觉得你的老板很凶,等你当了老板就知道了,老板是没有工作任期保障的。
5.在速食店煎个汉堡并不是作贱自己,你的祖父母对煎汉堡有完全不同的定义。
6.如果你一事无成,不是你父母的错,所以不要只会对自己犯的错发牢骚,从错误中去学习。
7.在你出生前,你的父母并不像现在这般无趣,他们变成这样是因为忙着付你的开销,洗你的衣服,听你吹嘘自己有多了不起,所以在你拯救被父母这代人破坏的热带雨林前,先整理一下自己的房间吧。
8.在学校里可能有赢家和输家,在人生中却还言之过早,学校可能会不断给你机会找到正确的答案,真实人生中却完全不是这么回事。
9.人生不是学期制,人生没有寒假,没有哪个雇主有兴趣协助你寻找自我,请用自己的空暇做这件事吧。
10.电视上演的并不是真实的人生,真实人生中每个人都要离开咖啡厅去上班。
>>>>>>>>>>>>>>>>>>>>>