iLeichun

当前位置:首页

ASP初学者常犯的几个错误

分类:Asp  来源:网络  时间:2010-10-21 22:50:17

1.记录集关闭之前再次打开:
------------------------------------
sql="select * from test"
rs.open sql,conn,1,1
if not rs.eof then
dim myName
myName=rs("name")
end if
sql="select * from myBook"
rs.open sql,conn,1,1
-------------------------------------
解决:在第二次rs.open之前先关闭 rs.close

set rs1=server.createobject
rs1.open sql,conn,1,1

2,用SQL关键字做表名或字段名
-------------------------------------
sql="select * from user"
rs.open sql,conn,1,1
-------------------------------------
user为sql关键字
解决:改为
sql="select * from [user]"


3,用锁定方式去进行update
-------------------------------------
sql="select * from [user]"
rs.open sql,conn,1,1
rs.addnew

rs("userName")="aa"
rs.update
-------------------------------------
当前记录集的打开方式为只读
解决:
改为
rs.open sql,conn,1,3

4,在查询语句中采用的对比字段值与字段类型不符 本文首发OK124
-----------------------------------------
sql="select * from [user] where id= " %26 myID %26 " "
rs.open sql,conn,1,1
-----------------------------------------
假设表中设计ID为数字型,那么些时出错。
解决:
sql="select * from [user] where id=" %26 myID

5,未检查变量值而出错
-----------------------------------------
sql="select * from [user] where id=" %26 myID
rs.open sql,conn,1,1
-----------------------------------------
假设myID变量此时值为null,那么sql将成为
sql="select * from [user] where id="
解决:
在前面加上
if isnull(myID) then 出错提示

6,未检查变量值类型而出错
-----------------------------------------
sql="select * from [user] where id=" %26 myID
rs.open sql,conn,1,1
-----------------------------------------
假设id为数字型,myID变量此时值不为null,但为字符,比如myID此时为"aa"
那么sql将成为
sql="select * from [user] where id=aa"
解决:
在前面加上
if isnumeric(myID)=false then 出错提示
网+络时空 www ok124 com


这也可以有效防止 sql injection 漏洞攻击。

7,由于数据库文件所在目录的NTFS权限而引起的 不能更新。数据库或对象为只读"错误。
说明:
WIN2K系统延续了WINNT系统的NTFS权限。
对于系统中的文夹都有默认的安全设置。
而通过HTTP对WWW访问时的系统默认用户是 iusr_计算机名 用户 ,它属于guest组。
当通过HTTP访问时,可以ASP或JSP,也或是PHP或.NET程序对数据进行修改操作:
比如:
当打开某一个文章时,程序设定,文章的阅读次数=原阅读次数+1
执行
conn.execute("update arts set clicks=clicks+1 where id=n")
语句时,如果 iusr_计算机名 用户没有对数据库的写权限时,就会出错.
解决方法:
找到数据库所在目录
右键》属性》安全选项卡》设置 iusr_计算机名 用户的写权限(当然,也可以是everyone)

hibernate实现oracle的主键自增长

分类:Hibernate  来源:网络  时间:2010-10-19 23:31:20

在很多情况下,我们使用Hibernate在已经建立好数据库的基础上。在oracle中,如果已经建立好的数据库中使用了sequence ,则可以按照下面的步骤把它引入到Hibernate中:

1、在oracle 首先创建sequence

create sequence seq_id

minvalue 1

start with 1

increment by 1

cache 20;

2.在你的hbm.xml中的配置

《id column=“ID0000” name=“id” type=“integer”》

《generator class=“sequence”》

《param name=“sequence”》seq_id《/param》

《/generator》

《/id》

这样再插入数据的时候,Hibernate回自动生成如下语句:

hibernate : select seq_id.nextval from dual

hibernate : insert into YXJK.T_YXJK_WHRYTXL (XM0000, ZW0000, LXDH00, SJHM00, DZYJ00,

IP0000, ID0000) values (?, ?, ?, ?, ?, ?, ?)

自动生成下一个序列值,然后将对象插入表中。

在使用的时候需要注意,Hibernate对于sequence的主键的要求是一定要是shor,long,或者integer

根据hibernate的文档,有两种方式实现实体对象的主键自动增长。

第一种:设置ID的增长策略是sequence,同时指定sequence的名字,最好每个表建一个sequence,此种做法就如同MS-SQL,MY-SQL中的自动增长一样,不需要创建触发器,具体的oracle数据库脚本及hibernate配置文件如下:

[1]oracle数据表的创建脚本:

Java代码

1. CREATE TABLE DEPARTMENT (

2. ID NUMBER(19,0) DEFAULT ‘0’ NOT NULL,

3. NAME VARCHAR2(255) NOT NULL,

4. DESCRIPTION CLOB

5. );

6. ALTER TABLE DEPARTMENT ADD CONSTRAINT PRIMARY_0 PRIMARY KEY(ID) ENABLE;

7. ALTER TABLE DEPARTMENT ADD CONSTRAINT UK_DEPARTMENT_1 UNIQUE (NAME);

8.

9. CREATE SEQUENCE DEPARTMENT_ID_SEQ MINVALUE 10000 MAXVALUE 999999999999999999999999 INCREMENT BY 1 NOCYCLE;

复制代码

创建DEPARTMENT表,并为DEPARTMENT表创建一个单独的SEQUENCE,名字为SEQUENCE_ID_SEQ,并不需要创建触发器。

[2]hibernate映射文件的配置:

Java代码

# 《?xml version=“1.0”?》

# 《!DOCTYPE hibernate-mapping PUBLIC

# “-//Hibernate/Hibernate Mapping DTD 3.0//EN”

# “http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd”》

# 《hibernate-mapping package=“com.liyanframework.demo.domain”》

# 《class name=“Department” table=“DEPARTMENT”》

# 《id name=“id” column=“ID”》

# 《generator class=“sequence”》

# 《param name=“sequence”》DEPARTMENT_ID_SEQ《/param》

# 《/generator》

# 《/id》

# 《property name=“name” column=“NAME” type=“string” /》

# 《property name=“description” column=“DESCRIPTION” type=“text” /》

# 《/class》

# 《/hibernate-mapping》

复制代码

在hibernate映射文件中,对ID的生成策略选择sequence,指定sequence的名字DEPARTMENT_ID_SEQ就可以了,当你保存新对象的时候,hibernate会自动取得DEPARTMENT_ID_SEQ.NEXTVAL作为新对象的ID保存到数据库,所以不需要再使用触发器再来生成新记录的ID。

Photoshop制作精美的古典人物签名图

分类:Photoshop  来源:网络  时间:2010-10-19 12:25:01

此签虽然简单,但是步骤复杂,及几个教程一起,偶已经尽量解释清楚,如果还有不清楚的朋友可直接短信询问,也可网上查找下相关教程,ps玩的不是复杂,而是发现,特别是新手朋友,偶深有体会,教程不清楚要绕好大的湾,祝各位同学进步
注明下:教程不复杂,不过是步骤多,偶怕同学不清楚,所以啰嗦了点,导致教程较长,至于模块,偶怕上来之后大家更加糊涂,参照的太多也迷糊,按照教程,应该可以完成的。

效果图

原图

教程

抠好的人物

素材1

高光1

高光2

高光3

云朵

荷叶

荷花

扇子

以上素材如需要加工的地方,只需,原图解锁,魔棒点下,再delete,就可以了。

Photoshop制作冷艳非主流MM照片

分类:Photoshop  来源:网络  时间:2010-10-19 12:22:24

效果对比
左:原图 右:PS后效果
Photoshop制作冷艳非主流MM照片-PS非主流照片处理教程

Photoshop制作冷艳非主流MM照片-PS非主流照片处理教程

制作步骤如下:

一、首先要用photoshop打开原图,接着执行CTRL+J复制一层。  

二、图层-新建调整图层-色阶调整图层,红:0、0.90、255;绿:0、1.27、255;蓝:0、1.31、255。

三、接着图层-新建调整图层-曲线调整层,在RGB通道下的输入和输出为162、182;64、66;蓝色通道的输入和输出为200、179;64、69。

四、图层-新建调整图层-色相/饱和度调整图层,在黄色状态下把参数设为0、-43、-62。

五、新建一个图层,执行CTRL+SHIFT+ALT+E盖印可见图层命令,然后执行图像-应用图像命令,选择红通道,混合为滤色,不透明度为40%左右。

六、接着还是图层-新建调整图层-曲线调整图层,在RGB通道下的输入和输出为164、202;77、76,再使用不透明度偏低一些的黑色画笔工具在蒙版上把人物的脸和手擦出来。

七、再次新建并盖印可见图层,再使用外挂滤镜工具TOPAZ对图像进行适当的锐化磨皮处理。

八、图层-新建调整图层-可选颜色,黄色:+100、-100、-100、-17;绿色:-100、-100、+100、-100。

九、最后图层-新建填充图层-纯色调整层,颜色值为#544d46,确定后再把该填充层的混合模式设为柔光即可。

Photoshop制作冷艳非主流MM照片-PS非主流照片处理教程

Java之父首度谈论离开甲骨文原因

分类:Java  来源:网络  时间:2010-10-17 0:53:32

  Java之父詹姆斯-高斯林(James Gosling)近日在接受eWEEK专访时,首度公开谈论了他为什么离开甲骨文。

  昔日当詹姆斯-高斯 林带领团队创造Java语言和平台时,太阳计算机系统公司(Sun Microsystems)的发展正如日中天,Java也成为一项革命性的技术。但是财务问题却让太阳计算机系统公司陷入困境,并最终被甲骨文所收购。但 无论如何,创造Java的高斯林理应得到起码的尊重,然而,据高斯林透露,他在甲骨文的境遇却恰恰相反。

  早在今年4月,高斯林就在其博客上宣布了从甲骨文离职的消息,但是他当时并没有解释离职的原因:“至于我为什么选择离开,这个问题一时间难以作答:如果我说出真相,恐怕有百害而无一利。”然而,恰逢甲骨文本周首次举办JavaOne会议之际,高斯林终于摒弃顾虑,接受eWEEK专访,首次畅所欲言地谈起了自己离开甲骨文的原因。

  “实际上,促使我离开甲骨文的因素有很多。”高斯林说,“其中,甲骨文给我开的薪水对我是一个沉重的打击。它们只给了太阳计算机系统公司原先给我的底薪。”他说。要知道,在太阳计算机系统公司,除了底薪之外,副总裁及以上的任何高管都会根据公司业绩获得额外的奖金。“在一般年份,报酬也还不错;遇到好的年成,报酬相当可观”。

  但是报酬本身还不足以磨灭高斯林的工作热情。事实上,尽管工资水平大大降低,高斯林当初还是选择了继续在甲骨文工作。然而,按下葫芦浮起瓢,刚刚勉强接受屈辱的工资,又来了一件烦心的事情。高斯林说,甲骨文没有给他资深工程师的头衔,或者相当于其在太阳计算机系统公司的级别。“在甲骨文给我的职位中,我的级别被大大降低了。”他说。

  然而,即使这样,他也没有离开甲骨文。压垮高斯林的“最后一根稻草”也许是甲骨文限制他权力的举动。事实上,甲骨文收购太阳计算机系统公司,就等于拥有了Java,也拥有了Java的创始人及其知识产权,因此,甲骨文有权决定高斯林或其他人对于Java的发言权。

  “我的决定权在甲骨文被大大削减了。”高斯林说,“甲骨文事无巨细都会过问,我和我在Java领域工作的同事,均无权决定任何事情。我们的一切决定权都被剥夺了。”

  这种做法削弱了高斯林继续工作的决心,但还没有到让他死心的地步。让他心灰意冷,决定彻底与甲骨文决裂的原因,可能是“我的工作似乎只是代表甲骨文的Java出席各种公开活动。而我的性格是不适合做这个的。”

  事已至此,高斯林别无选择,只好离开。高斯林说,他宁愿太阳计算机系统公司被IBM公司收购,也不愿它被甲骨文收购。

  甲骨文发言人称该公司尚未对高斯林的言论作出任何评论。

jdk1.7的新特性

分类:Java  来源:网络  时间:2010-10-17 0:46:17

jdk1.7的新特性:
1,switch中可以使用字串了,呵呵还好
String s = "test";  
switch (s) {  
  case "test" :  
     System.out.println("test"); 
  case "test1" :  
    System.out.println("test1");
    break ;  
  default :  
    System.out.println("break");
    break ;  
 } 
2,"<>"这个玩意儿的运用List<String> tempList = new ArrayList<>(); 即泛型实例化类型自动推断。
3. 语法上支持集合,而不一定是数组

 final List<Integer> piDigits = [ 1,2,3,4,5,8 ]; 
4. 新增一些取环境信息的工具方法
File System.getJavaIoTempDir() // IO临时文件夹
File System.getJavaHomeDir() // JRE的安装目录
File System.getUserHomeDir() // 当前用户目录
File System.getUserDir() // 启动java进程时所在的目录
.......
5. Boolean类型反转,空指针安全,参与位运算
Boolean Booleans.negate(Boolean booleanObj)
True => False , False => True, Null => Null
boolean Booleans.and(boolean[] array)
boolean Booleans.or(boolean[] array)
boolean Booleans.xor(boolean[] array)
boolean Booleans.and(Boolean[] array)
boolean Booleans.or(Boolean[] array)
boolean Booleans.xor(Boolean[] array)
6. 两个char间的equals
boolean Character.equalsIgnoreCase(char ch1, char ch2)
7,安全的加减乘除
int Math.safeToInt(long value)
int Math.safeNegate(int value)
long Math.safeSubtract(long value1, int value2)
long Math.safeSubtract(long value1, long value2)
int Math.safeMultiply(int value1, int value2)
long Math.safeMultiply(long value1, int value2)
long Math.safeMultiply(long value1, long value2)
long Math.safeNegate(long value)
int Math.safeAdd(int value1, int value2)
long Math.safeAdd(long value1, int value2)
long Math.safeAdd(long value1, long value2)
int Math.safeSubtract(int value1, int value2)
 

 原文链接:http://www.gzit8.com/show/8699.html

如何判断网站是否做过优化?

分类:SEO  来源:网络  时间:2010-10-17 0:42:33

网站优化基本包括以下几个方面    

  1)、title写法合理:不同的页面title关键词设置应该不一样,特别是产品详细页,应该是产品名称+型号+公司名称的写法比较合理,比如洛氏硬度计HR-150A-某某有限公司。    

  2)、要注意关键词设置密度合理:产品详细介绍中关键词不能太多一般控制在2-3个,也不能一个都没出现。    

  3)、搜索引擎收录量:在baidu搜索“site:www.mtnets.com”, 在google搜索“site:www.mtnets.com”,看到页面右上角提示的收录数量。    

  4)、广泛连接度做的是否及时:在baidu搜索“www.mtnets.com”, 在google搜索“swww.mtnets.com”,能看到连接数量,尽可能的到一些行业网站注册或者发布网址。    

  5)、反向链接数查询:代表别人网站主动链接自己网站的数量。    http://tool.173158.net/,在这个网站上输入“http://tool.173158.net/”,查询baidu反向链接数和google反向链接数。多做一些反向链接有利于优化。    

  6)、关键词排名。到百度和google搜索公司相对不是特别热门的词,看在第一页是否有排名。

如何判断一个外贸网站是否做过SEO优化

分类:SEO  来源:网络  时间:2010-10-17 0:41:05

          要看一个外贸网站有没有做过优化,做得好不好,主要有以下几个要点:

Ø 首先要看网站的TITLE,一个做过SEO优化的网站一般会在TITILE做关键词的优化,因为这个方便搜索引擎抓取。但不是说TITLE设了关键词就是做过优化,要看设置成怎么样。TITLE不能长而无序,其实很多网站优化是不做TITLE关键词的,一个或许以公司命名的网站名称,简洁明了,可以让客户更加喜欢,信任。
Ø 网站META信息和关键词的设置,这个是搜索引擎抓取喜好。说白了,SEO就是要迎合搜索引擎喜好。
Ø 网站中产品关键词的分布,分布的密度,分布的位置。密度关系到是否符合搜索引擎要求,会否因过度优化受到处罚;分布位置是搜索引擎抓取页面关键词的很重要的因素。
Ø 网站Description Tag-描述标签、关键词标签、ALT-代替属性等等是否合理使用,重点在于合理!
Ø 有没有存在隐藏文本链接、堆砌关键词等弊行为。切忌触犯搜索引擎规则,后果很严重。
 
教大家几种最常见的,简单判别一个网站是否有做SEO优化的方法:
1,首先要看这个网站的访问速度,网站的图片、链接等等是否存在打不开的情况
2,看网站的META信息,这个可以查看网站源文件或者在站长工具查得到
3,看看这个网站是否有网站地图(这个是必须的,符合搜索引擎抓取)
4,网站是不是静态网页,或者伪静态网页,网站代码是什么。
5,这个是外贸网站,你可以在GOOGLE搜索一下这个网站的收录量

一眼就能看出网站是否做SEO

分类:SEO  来源:网络  时间:2010-10-17 0:20:08

  我发现,现在有很多的网站,都做了SEO。包括论坛、博客、生成静态页面的后台程序。越来越多的人认识到SEO的重要。再看看你的站点,做了SEO了没有。

  一个命令:site:网站域名(最好去掉www)譬如:site:bjwzc.net

  看看在搜索引擎眼里,我们的站是怎么一个样子。

  首先,分析收录页数。

  如果你的站点在搜索引擎有好几位数的收录页数的话,说明搜索引擎以你的站点收录健康。如果收录页数为0,有可能你的站已经被K,或者还没有被收录。

  其次,分析标题。

  很多人知道关键字应该存在于标题之中。对,没错,标题是否存在关键字对你的排名起重要的作用。标题的设置一般不要过长,关键字也要适当的重复。

  其三,分析收录的内容。

  搜索引擎反馈给我们的这些内容非常重要,关键字密度在这里可以体现。这里的关键字密度也是决定你在搜索引擎排名的关键。

  其四,分析收录的时间。

  我们可以跟踪这个时间,分析我们站点各页面的刷新频率快,然后均衡网站整体刷新频率。

  然后,我们再site 一下自己的站点,看看每一页的收录情况。如果每一页的标题,内容,都不一样,那么,你的站点的SEO基本完成。如果你发现自己的站点大部分页面标题相同,或内容相同,那很不幸的告诉你,你的SEO失败了,把你之前的SEO全去掉,老老实实做内容,会更好一点。

  最后强调一点,所有SEO资料都是针对于单页面而言的,有些网站程序的SEO把单页面的SEO全面化:所有页面有相同的KEYWORDS,有相同的DESCRIPTION 。这样的程序我建议把KEYWORDS,DESCRIPTION全部去掉。

  • 60
  • |<
  • <<
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • >>
  • >|