??xml version="1.0" encoding="utf-8" standalone="yes"?>久久亚洲精品无码网站,亚洲欧洲日韩国产一区二区三区,亚洲成人在线免费观看http://www.tkk7.com/kim/zh-cnSun, 11 May 2025 06:03:07 GMTSun, 11 May 2025 06:03:07 GMT60_֦的SQL语句http://www.tkk7.com/kim/archive/2007/01/27/96258.html大熊?/dc:creator>大熊?/author>Sat, 27 Jan 2007 04:18:00 GMThttp://www.tkk7.com/kim/archive/2007/01/27/96258.htmlhttp://www.tkk7.com/kim/comments/96258.htmlhttp://www.tkk7.com/kim/archive/2007/01/27/96258.html#Feedback0http://www.tkk7.com/kim/comments/commentRss/96258.htmlhttp://www.tkk7.com/kim/services/trackbacks/96258.html 转:javathink.org

说明Q复制表(只复制结?源表名:a 新表名:b)
select * into b from a where 1<>1


说明Q拷贝表(拯数据,源表名:a 目标表名Qb)
insert into b(a, b, c) select d,e,f from b;


说明Q显C文章、提交h和最后回复时?br />select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b


说明Q外q接查询(表名1Qa 表名2Qb)
select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c


说明Q日E安排提前五分钟提醒
select * from 日程安排 where datediff('minute',f开始时?getdate())>5


说明Q两张关联表Q删除主表中已经在副表中没有的信?br />delete from info where not exists ( select * from infobz where info.infid=infobz.infid )


说明Q?-

SQL:

SELECT A.NUM, A.NAME, B.UPD_DATE, B.PREV_UPD_DATE

FROM TABLE1,

(SELECT X.NUM, X.UPD_DATE, Y.UPD_DATE PREV_UPD_DATE

FROM (SELECT NUM, UPD_DATE, INBOUND_QTY, STOCK_ONHAND

FROM TABLE2

WHERE TO_CHAR(UPD_DATE,'YYYY/MM') = TO_CHAR(SYSDATE, 'YYYY/MM')) X,

(SELECT NUM, UPD_DATE, STOCK_ONHAND

FROM TABLE2

WHERE TO_CHAR(UPD_DATE,'YYYY/MM') =

TO_CHAR(TO_DATE(TO_CHAR(SYSDATE, 'YYYY/MM') || '/01','YYYY/MM/DD') - 1, 'YYYY/MM') ) Y,

WHERE X.NUM = Y.NUM Q?Q?

AND X.INBOUND_QTY + NVL(Y.STOCK_ONHAND,0) <> X.STOCK_ONHAND ) B

WHERE A.NUM = B.NUM


说明Q?-
select * from studentinfo where not exists(select * from student where studentinfo.id=student.id) and pdU?'"&strdepartmentname&"' and 专业名称='"&strprofessionname&"' order by 性别,生源?高考Ll?br />

从数据库中去一q的各单位电话费l计(电话费定额贺电化肥清单两个表来源Q?

SELECT a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 'yyyy') AS telyear,

SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '01', a.factration)) AS JAN,

SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '02', a.factration)) AS FRI,

SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '03', a.factration)) AS MAR,

SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '04', a.factration)) AS APR,

SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '05', a.factration)) AS MAY,

SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '06', a.factration)) AS JUE,

SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '07', a.factration)) AS JUL,

SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '08', a.factration)) AS AGU,

SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '09', a.factration)) AS SEP,

SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '10', a.factration)) AS OCT,

SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '11', a.factration)) AS NOV,

SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '12', a.factration)) AS DEC

FROM (SELECT a.userper, a.tel, a.standfee, b.telfeedate, b.factration

FROM TELFEESTAND a, TELFEE b

WHERE a.tel = b.telfax) a

GROUP BY a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 'yyyy')


说明Q四表联查问?br />select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....


说明Q得到表中最的未用的ID?br />

SELECT (CASE WHEN EXISTS(SELECT * FROM Handle b WHERE b.HandleID = 1) THEN MIN(HandleID) + 1 ELSE 1 END) as HandleID FROM Handle WHERE NOT HandleID IN (SELECT a.HandleID - 1 FROM Handle a)


一个SQL语句的问?行列转换
select * from v_temp
上面的视囄果如?
user_name role_name
-------------------------
pȝ理?理?
feng 理?
feng 一般用?
test 一般用?
xl果变成q样:
user_name role_name
---------------------------
pȝ理?理?
feng 理?一般用?
test 一般用?br />===================
create table a_test(name varchar(20),role2 varchar(20))
insert into a_test values('?,'理?)
insert into a_test values('?,'理?)
insert into a_test values('?,'一般用?)
insert into a_test values('?,'一般用?)

create function join_str(@content varchar(100))
returns varchar(2000)
as
begin
declare @str varchar(2000)
set @str=''
select @str=@str+','+rtrim(role2) from a_test where [name]=@content
select @str=right(@str,len(@str)-1)
return @str
end
go

--调用Q?br />select [name],dbo.join_str([name]) role2 from a_test group by [name]

--select distinct name,dbo.uf_test(name) from a_test


快速比较结构相同的两表
l构相同的两表,一表有记录3万条左右Q一表有记录2万条左右Q我怎样快速查找两表的不同记录Q?br />============================
l你一个测试方法,从northwind中的orders表取数据?br />select * into n1 from orders
select * into n2 from orders

select * from n1
select * from n2

--d主键Q然后修改n1中若q字D늚若干?br />alter table n1 add constraint pk_n1_id primary key (OrderID)
alter table n2 add constraint pk_n2_id primary key (OrderID)

select OrderID from (select * from n1 union select * from n2) a group by OrderID having count(*) > 1

应该可以Q而且不同的记录的ID昄出来?br />下面的适用于双方记录一L情况Q?br />
select * from n1 where orderid in (select OrderID from (select * from n1 union select * from n2) a group by OrderID having count(*) > 1)
至于双方互不存在的记录是比较好处理的
--删除n1,n2中若q条记录
delete from n1 where orderID in ('10728','10730')
delete from n2 where orderID in ('11000','11001')

--*************************************************************
-- 双方都有该记录却不完全相?br />select * from n1 where orderid in(select OrderID from (select * from n1 union select * from n2) a group by OrderID having count(*) > 1)
union
--n2中存在但在n1中不存的?0728,10730
select * from n1 where OrderID not in (select OrderID from n2)
union
--n1中存在但在n2中不存的?1000,11001
select * from n2 where OrderID not in (select OrderID from n1)


四种Ҏ取表里n到m条纪录:

1.
select top m * into 临时?或表变量) from tablename order by columnname -- top mW插?br />set rowcount n
select * from 表变?order by columnname desc


2.
select top n * from (select top m * from tablename order by columnname) a order by columnname desc


3.如果tablename里没有其他identity列,那么Q?br />select identity(int) id0,* into #temp from tablename

取n到m条的语句为:
select * from #temp where id0 >=n and id0 <= m

如果你在执行select identity(int) id0,* into #temp from tablenameq条语句的时候报?那是因ؓ你的DB中间的select into/bulkcopy属性没有打开要先执行Q?br />exec sp_dboption 你的DB名字,'select into/bulkcopy',true


4.如果表里有identity属性,那么单:
select * from tablename where identitycol between n and m


如何删除一个表中重复的记录Q?br />create table a_dist(id int,name varchar(20))

insert into a_dist values(1,'abc')
insert into a_dist values(1,'abc')
insert into a_dist values(1,'abc')
insert into a_dist values(1,'abc')

exec up_distinct 'a_dist','id'

select * from a_dist

create procedure up_distinct(@t_name varchar(30),@f_key varchar(30))
--f_key表示是分l字D﹐即主键字D?br />as
begin
declare @max integer,@id varchar(30) ,@sql varchar(7999) ,@type integer
select @sql = 'declare cur_rows cursor for select '+@f_key+' ,count(*) from ' +@t_name +' group by ' +@f_key +' having count(*) > 1'
exec(@sql)
open cur_rows
fetch cur_rows into @id,@max
while @@fetch_status=0
begin
select @max = @max -1
set rowcount @max
select @type = xtype from syscolumns where id=object_id(@t_name) and name=@f_key
if @type=56
select @sql = 'delete from '+@t_name+' where ' + @f_key+' = '+ @id
if @type=167
select @sql = 'delete from '+@t_name+' where ' + @f_key+' = '+''''+ @id +''''
exec(@sql)
fetch cur_rows into @id,@max
end
close cur_rows
deallocate cur_rows
set rowcount 0
end

select * from systypes
select * from syscolumns where id = object_id('a_dist')


查询数据的最大排序问题(只能用一条语句写Q?
CREATE TABLE hard (qu char (11) ,co char (11) ,je numeric(3, 0))

insert into hard values ('A','1',3)
insert into hard values ('A','2',4)
insert into hard values ('A','4',2)
insert into hard values ('A','6',9)
insert into hard values ('B','1',4)
insert into hard values ('B','2',5)
insert into hard values ('B','3',6)
insert into hard values ('C','3',4)
insert into hard values ('C','6',7)
insert into hard values ('C','2',3)


要求查询出来的结果如下:

qu co je
----------- ----------- -----
A 6 9
A 2 4
B 3 6
B 2 5
C 6 7
C 3 4


是要按qu分组Q每l中取je最大的?位!Q?br />而且只能用一句sql语句Q!Q?br />select * from hard a where je in (select top 2 je from hard b where a.qu=b.qu order by je)


求删除重复记录的sql语句Q?
怎样把具有相同字D늚U录删除Q只留下一条?br />例如Q表test里有id,name字段
如果有name相同的记?只留下一条,其余的删除?br />name的内容不定,相同的记录数不定?br />有没有这Lsql语句Q?br />==============================
A:一个完整的解决ҎQ?br />
重复的记录记入temp1?
select [标志字段id],count(*) into temp1 from [表名]
group by [标志字段id]
having count(*)>1

2、将不重复的记录记入temp1?
insert temp1 select [标志字段id],count(*) from [表名] group by [标志字段id] having count(*)=1

3、作一个包含所有不重复记录的表Q?br />select * into temp2 from [表名] where 标志字段id in(select 标志字段id from temp1)

4、删除重复表:
delete [表名]

5、恢复表Q?br />insert [表名] select * from temp2

6、删除时表:
drop table temp1
drop table temp2
================================
B:
create table a_dist(id int,name varchar(20))

insert into a_dist values(1,'abc')
insert into a_dist values(1,'abc')
insert into a_dist values(1,'abc')
insert into a_dist values(1,'abc')

exec up_distinct 'a_dist','id'

select * from a_dist

create procedure up_distinct(@t_name varchar(30),@f_key varchar(30))
--f_key表示是分l字D﹐即主键字D?br />as
begin
declare @max integer,@id varchar(30) ,@sql varchar(7999) ,@type integer
select @sql = 'declare cur_rows cursor for select '+@f_key+' ,count(*) from ' +@t_name +' group by ' +@f_key +' having count(*) > 1'
exec(@sql)
open cur_rows
fetch cur_rows into @id,@max
while @@fetch_status=0
begin
select @max = @max -1
set rowcount @max
select @type = xtype from syscolumns where id=object_id(@t_name) and name=@f_key
if @type=56
select @sql = 'delete from '+@t_name+' where ' + @f_key+' = '+ @id
if @type=167
select @sql = 'delete from '+@t_name+' where ' + @f_key+' = '+''''+ @id +''''
exec(@sql)
fetch cur_rows into @id,@max
end
close cur_rows
deallocate cur_rows
set rowcount 0
end

select * from systypes
select * from syscolumns where id = object_id('a_dist')


行列转换--普?

假设有张学生成W?CJ)如下
Name Subject Result
张三 语文 80
张三 数学 90
张三 物理 85
李四 语文 85
李四 数学 92
李四 物理 82

惛_?
姓名 语文 数学 物理
张三 80 90 85
李四 85 92 82

declare @sql varchar(4000)
set @sql = 'select Name'
select @sql = @sql + ',sum(case Subject when '''+Subject+''' then Result end) ['+Subject+']'
from (select distinct Subject from CJ) as a
select @sql = @sql+' from test group by name'
exec(@sql)

行列转换--合ƈ

有表A,
id pid
1 1
1 2
1 3
2 1
2 2
3 1
如何化成表B:
id pid
1 1,2,3
2 1,2
3 1

创徏一个合q的函数
create function fmerg(@id int)
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str+','+cast(pid as varchar) from 表A where id=@id
set @str=right(@str,len(@str)-1)
return(@str)
End
go

--调用自定义函数得到结?
select distinct id,dbo.fmerg(id) from 表A


如何取得一个数据表的所有列?

Ҏ如下Q先从SYSTEMOBJECTpȝ表中取得数据表的SYSTEMID,然后再SYSCOLUMN表中取得该数据表的所有列名?
SQL语句如下Q?
declare @objid int,@objname char(40)
set @objname = 'tablename'
select @objid = id from sysobjects where id = object_id(@objname)
select 'Column_name' = name from syscolumns where id = @objid order by colid

?br />
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME ='users'


通过SQL语句来更改用L密码

修改别h?需要sysadmin role
EXEC sp_password NULL, 'newpassword', 'User'

如果帐号为SA执行EXEC sp_password NULL, 'newpassword', sa


怎么判断Z个表的哪些字D不允许为空Q?

select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where IS_NULLABLE='NO' and TABLE_NAME=tablename


如何在数据库里找到含有相同字D늚表?
a. 查已知列名的情况
SELECT b.name as TableName,a.name as columnname
From syscolumns a INNER JOIN sysobjects b
ON a.id=b.id
AND b.type='U'
AND a.name='你的字段名字'


未知列名查所有在不同表出现过的列?
Select o.name As tablename,s1.name As columnname
From syscolumns s1, sysobjects o
Where s1.id = o.id
And o.type = 'U'
And Exists (
Select 1 From syscolumns s2
Where s1.name = s2.name
And s1.id <> s2.id
)


查询Wxxx行数?

假设id是主键:
select * from (select top xxx * from yourtable) aa where not exists(select 1 from (select top xxx-1 * from yourtable) bb where aa.id=bb.id)

如果使用游标也是可以?
fetch absolute [number] from [cursor_name]
行数为绝对行?


SQL Server日期计算
a. 一个月的第一?
SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
b. 本周的星期一
SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
c. 一q的W一?
SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
d. 季度的第一?
SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
e. 上个月的最后一?
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
f. d的最后一?
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
g. 本月的最后一?
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
h. 本月的第一个星期一
select DATEADD(wk, DATEDIFF(wk,0,
dateadd(dd,6-datepart(day,getdate()),getdate())
), 0)
i. 本年的最后一?
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))?


获取表结构[?'sysobjects' 替换 ?'tablename' 卛_]

SELECT CASE IsNull(I.name, '')
When '' Then ''
Else '*'
End as IsPK,
Object_Name(A.id) as t_name,
A.name as c_name,
IsNull(SubString(M.text, 1, 254), '') as pbc_init,
T.name as F_DataType,
CASE IsNull(TYPEPROPERTY(T.name, 'Scale'), '')
WHEN '' Then Cast(A.prec as varchar)
ELSE Cast(A.prec as varchar) + ',' + Cast(A.scale as varchar)
END as F_Scale,
A.isnullable as F_isNullAble
FROM Syscolumns as A
JOIN Systypes as T
ON (A.xType = T.xUserType AND A.Id = Object_id('sysobjects') )
LEFT JOIN ( SysIndexes as I
JOIN Syscolumns as A1
ON ( I.id = A1.id and A1.id = object_id('sysobjects') and (I.status & 0x800) = 0x800 AND A1.colid <= I.keycnt) )
ON ( A.id = I.id AND A.name = index_col('sysobjects', I.indid, A1.colid) )
LEFT JOIN SysComments as M
ON ( M.id = A.cdefault and ObjectProperty(A.cdefault, 'IsConstraint') = 1 )
ORDER BY A.Colid ASC


提取数据库内所有表的字D详l说明的SQL语句

SELECT
(case when a.colorder=1 then d.name else '' end) N'表名',
a.colorder N'字段序号',
a.name N'字段?,
(case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '?else ''
end) N'标识',
(case when (SELECT count(*)
FROM sysobjects
WHERE (name in
(SELECT name
FROM sysindexes
WHERE (id = a.id) AND (indid in
(SELECT indid
FROM sysindexkeys
WHERE (id = a.id) AND (colid in
(SELECT colid
FROM syscolumns
WHERE (id = a.id) AND (name = a.name))))))) AND
(xtype = 'PK'))>0 then '? else '' end) N'主键',
b.name N'cd',
a.length N'占用字节?,
COLUMNPROPERTY(a.id,a.name,'PRECISION') as N'长度',
isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as N'数位数',
(case when a.isnullable=1 then '?else '' end) N'允许I?,
isnull(e.text,'') N'默认?,
isnull(g.[value],'') AS N'字段说明'
FROM syscolumns a
left join systypes b
on a.xtype=b.xusertype
inner join sysobjects d
on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
left join syscomments e
on a.cdefault=e.id
left join sysproperties g
on a.id=g.id AND a.colid = g.smallid
order by object_name(a.id),a.colorder


快速获取表test的记录L[对大定w表非常有效]

快速获取表test的记录L:
select rows from sysindexes where id = object_id('test') and indid in (0,1)

update 2 set KHXH=(ID+1)\2 2行递增~号
update [23] set id1 = 'No.'+right('00000000'+id,6) where id not like 'No%' //递增
update [23] set id1= 'No.'+right('00000000'+replace(id1,'No.',''),6) //补位递增
delete from [1] where (id%2)=1
奇数


替换表名字段
update [1] set domurl = replace(domurl,'Upload/Imgswf/','Upload/Photo/') where domurl like '%Upload/Imgswf/%'


截位
SELECT LEFT(表名, 5)


]]>
Java 专业人士必备的书c和|站列表http://www.tkk7.com/kim/archive/2007/01/27/96257.html大熊?/dc:creator>大熊?/author>Sat, 27 Jan 2007 04:12:00 GMThttp://www.tkk7.com/kim/archive/2007/01/27/96257.htmlhttp://www.tkk7.com/kim/comments/96257.htmlhttp://www.tkk7.com/kim/archive/2007/01/27/96257.html#Feedback0http://www.tkk7.com/kim/comments/commentRss/96257.htmlhttp://www.tkk7.com/kim/services/trackbacks/96257.html 转:javathink.org

对于 Java?语言开发h员来_信息q量是一个真正的问题。每个新入行的程序员都要面一个o人畏~的挑战Q要q入的行业是一个具有v量知识的行业。要了解的东西简直太多了。对于有l验的老手来说Q情况只有些微好转。知识量d增大Q仅仅跟上进度就是一个挑战。如果有一份专业h士必备的书籍和网站列表该有多好!本文是q个列表。它包含了每个专业的 Java 语言E序员在书架或浏览器书签中必备的最重要的书c和|站?br />q些都是您书架上必备的书和应该经怋用的 Web 链接。时间是一w要的资源Q本文帮您回遉K些分心的事情Q把旉专注于最有益于您作ؓJava 语言E序员职业生涯的信息源。尽有多少E序员就有多他们最喜欢的参考资料,但本文收集的q些都是优中选优Q来源于我书架上的私家珍藏和许多 Java 专家的推荐?br />
我考虑了两U组l这份参考资料列表的Ҏ。我本可以通过主题领域来组l,q也许很有帮助,但主题列表很快就会变得不实用。相反,我选择了另一U方法:通过cd来组l,即书c和 Web 站点?br />
ȝ来讲Q有l验的老手们用 Web 站点来跟t行业的走势。书c、文章和论文有助于跟上潮,但它们M上更适合于基学习。极富创造性的书籍偶尔会撼动一两个基础性的东西。这L书也在本列表之列?br />
需要提出的一点警告是Q专注于 Java 语言的书c和 Web 站点数量巨大。您钟爱的未必在q䆾列表里。那q不意味着它们不好。它们只是不在这份列表里而已。可能是因ؓ我还不知道它们。也可能是因为我不认为它们能够算得上是重要资源。不包含一些参考资料是一个评判问题,但如果不q样的话Q您也许p花几时来拖动滚动条Q还要花上成千上万美元来C。如果您作ؓ一个专业的 Java E序员,有一些常用的优秀参考资料,一定要让我知道q些资料。这份列表一直都在更CQ您提出的那些也许就会被收录q去?br />
书籍

每个E序员都会有一些由于经常被当作专业资料参阅而磨坏的书。下列书c应该是 Java 语言E序员的书架上必备的。书很贵Q所以我有意这份列表弄得很短,仅限于重要书c?br />
Thinking in Java (Bruce Eckel)

Thinking in Java, 3rd edition QBruce Eckel; Prentice Hall PTRQ?002 q_
Java ~程思想Q第3?Q陈昊鹏 {译; 机械工业出版C,2005 q_
Eckel 的书对于学习如何?Java 语言环境中用好面向对象技术极其实用。书中大量的代码样例解释了他所介绍的概c文字出自一个ƈ不认?Java 技术L正确{案的hQ所以相当地实用。Eckel h多种语言的大量经验,q有用面向对象方式进行思考的扎实技能。本书将q些技能放到实用的 Java 语言环境中。他q在写一本新书,名ؓ Thinking in Enterprise Java?br />
Effective Java (Joshua Bloch)

Effective Java: Programming Language Guide QJoshua Bloch; Addison-WesleyQ?001 q_
Effective Java 中文?Q潘爱民 ? 机械工业出版C,2003 q_
本书是理解优U Java E序设计原则的最佳书c。大多数材料从其他的 “学?Java ?的书中根本找不到。例如,Bloch 书中关于覆盖 equals() q一章是我读q的最好的参考资料之一。他也在书中包括了很实用的徏议:用接口替代抽象类和灵zM用异常。Bloch ?Sun 公司 Java q_库的架构师,所以他透彻C解这门语a。事实上Q他~写了该语言中大量有用的库。本书必读!

The Java Programming Language (Ken Arnold, James Gosling, David Holmes)

The Java Programming Language QKen ArnoldQJames GoslingQDavid Holmes; Addison-WesleyQ?000 q_
Java ~程语言Q第 3 版) Q虞万荣 {译Q中国电力出版社Q?003 q_
q也许是能弄到的最好的 Java 入门ȝ。它q不是一个标准规范,而是一本介l每门语aҎ的可读书籍。这本书在严谨性和教育性方面权衡得很好Q能够让懂编E的速被 Java 语言Q和其丰富的cdQ所吸引?br />
Concurrent Programming in Java: Design Principles and Patterns (Doug Lea)

Concurrent Programming in Java: Design Principles and Patterns, 2nd edition QDoug Lea; Addison-WesleyQ?999 q_
Java q发~程—设计原则与模式Q第二版Q?Qn?{译Q中国电力出版社Q?004 q_
不是每个开发h员都需要如此细致地了解q发性,也不是每个工E师都能辑ֈ本书的水准,但却没有比本书更好的关于q发性编E的概述了。如果您Ҏ感兴,请从q里开始。Lea ?SUNY 的一名专业程序员Q他的和q发性有关的作品和想法都包含在了 JDK 5.0 规范Q引?JSR166Q中Q所以您大可攑ֿQ他所说的关于有效使用 Java 语言的徏议是值得一听的。他是一个很善于沟通的人?br />
Expert One-On-One J2EE Design and Development (Rod Johnson)

Expert One-On-One J2EE Design and Development QRod JohnsonQ?br />WROX: J2EE 设计开发编E指?Q魏 译,电子工业出版C,2003 q_
对于刚接?J2EE 的h来说Q这是唯一的一本如实反映这Ҏ术的书。本书收录了多年的成功经验和p|l验Q不同于其他许多作者,Johnson 乐于失败的l验公诸于众。J2EE 常常都被q度使用。Johnson 的书能帮您避免这一炏V?

Refactoring (Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts)

Refactoring: Improving the Design of Existing Code QMartin FowlerQKent BeckQJohn BrantQWilliam OpdykeQDon Roberts; Addison-WesleyQ?999 q_
重构Q改善既有代码的设计Q中文版Q?Q侯?{译Q中国电力出版社 Q?003 q_
Fowler 写了几本现已出版的最行的编E书Q包?Analysis Patterns。他的关于重?的书是这一主题的基本书c。重构代码是被程序员忽略的训l,但却是程序员最直观的想法。重构是在不改变代码l果的前提下改进现有代码的设计。这是保持代码整z的最x式,用这U方法设计的代码L很容易修攏V什么时候进行重构呢Q当代码“散发出味道”时。Fowler 的书里满?Java 语言代码的例子。许?Java 语言集成开发环境(IDEQ(包括?IBM ?EclipseQ都?Fowler 的重构包含了q去Q每一个都使用他的重构名命名,所以熟悉如extract method {重构方法还是很值得的?br />
Design Patterns (Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides)

Design Patterns: Elements of Reusable Object Oriented Software QErich GammaQRichard HelmQRalph JohnsonQJohn Vlissides; Addison-WesleyQ?997 q_
设计模式Q可复用面向对象软g的基 Q李英军 {译Q机械工业出版社 Q?005 q_
q是一本在专业E序员圈子里更ؓ有名的书Q基于作者共同的l号Q这本书被认为是 “四人帮QGOFQ之书”。模式是思考和解决普通编E问题时可以重用的方式。学习模式是一门学U。用好模式Q或知道什么时候不 使用模式Q是一Ҏ能。忽略模式则是错误的。书中所有的例子都以 C++ 表示Q但 Java 语言是从那里诞生的,?Java 语言E序员由此联pd如何?Java 语言中实现这些模式相对简单一些。熟悉模式ƈ了解如何使用好模式ɾ~程更加单。这使得和其他程序员交流也更单,因ؓ在针寚w用问题的通用解决Ҏ中,模式是描q解x案中彼此协作的大量相关编E概늚快捷方式。一些更为通用的方式,如工厂方?则是普便存在的,甚至存在?Java 语言本n。关于明Z用模式的q个主题Q也可以阅读 Joshua Kerievsky ?Refactoring to PatternsQ该书称可以让代码来告诉您何时实现模式?br />
Patterns of Enterprise Application Architecture (Martin Fowler)

Patterns of Enterprise Application Architecture QMartin Fowler; Addison-WesleyQ?002 q_
企业应用架构模式 Q王怀?{译Q机械工业出版社 Q?004 q_
比v型、一ơ性项目来_企业开发当然代表了更大的挑战。那q不意味着企业开发带来的所有挑战都是新挑战。事实上有些时候,q项开发已l?是以前完成过的了。Fowler 做了很多个这L目。他的书提到了一些通用解决ҎQƈ提供了关于用、折中和可选方案的指导。Fowler 在书中包含了一些熟悉的模式Q如模型视图控制器(MVCQ,他也提供了一些您也许不了解的模式Q如处理 Web 站点上特定页面请求或行ؓh?Page Controller 模式。正如您对待大多数模式一P一旦您读过许多模式Q您׃认ؓ “我已经知道那个模式了?。也许是q样Q但有一个用来引用模式的通用表达方式q是很有帮助的。在有多个组Ӟ׃同h开发)的大型项目中Q该cd用是一很好的帮助?br />
UML Distilled (Martin Fowler)

UML Distilled: A Brief Guide to the Standard Object Modeling Language QMartin Fowler; Addison-Wesley 2003 q_
UML_aQ标准对象语a明指南(W?版) Q徐家福 译,清华大学出版C?Q?005 q_
对于专业的程序员来说QUML 是一门很重要的通用可视化沟通语aQ但是它被过度用和草率地滥用了。您无需对?UML 沟通了解太多。Martin ?UML 的提gؓ您提供了最核心的东ѝ事实上Q前后的页提供了常规基上可能用到的所有东ѝ该书中 UML 例子的代码都?Java 代码?br />
Test-Driven Development: By Example (Kent Beck)

Test-Driven Development: By Example QKent Beck; Addison-Wesley 2002 q_
试驱动开发(中文版) Q崔?译,中国电力出版C?Q?004 q_
试优先~程ɾ~程发生革命性变化,能助您成为更好的E序员。在写代码之前编写测试开始很难,但却是一威力强大的技能。通过优先~写试Q可使代码更加简单,q确保从一开始它p工作QBeck 实践着他提倡的试优先Q与人合写了 JUnitQ这?Java 语言最行的测试框Ӟ。Beck 的书是权威的参考资料,扩展了的 Money 例子也用 Java 语言写成。Beck 详述了如何用试优先q行 思考(q也许是许多E序员首先遇到的障碍Q?br />
The Pragmatic Programmer: From Journeyman to Master (Andy Hunt and Dave Thomas)

The Pragmatic Programmer: From Journeyman to Master QAndrew Hunt ?David Thomas; Addison-Wesley 1999 q_
E序员修g道——从工C?Q马l达 译,电子工业出版C?Q?004 q_
做一个纯_的面向对象开发h员有其优势所在。在当今复杂的社会中Q作?Java 语言开发h员,为完成Q务常要妥协。Hunt ?Thomas 探讨了如何不真正重要的东西妥协掉而完成Q务。这不是一本关?Java 语言的书Q而是 Java 语言开发h员重要的思想ȝ。例如,我认为没从“要解决问题Q而不是推卸责仠Z这句忠a中受益的E序员,不能像个自豪的艺术家一样在他的C上签上大名?br />
Peopleware: Productive Projects and Teams (Tom DeMarco and Timothy Lister)

Peopleware: Productive Projects and Teams QTom DeMarcoQTimothy Lister; Dorset HouseQ?999 q_
ZgQ第2版) QUMLChina 译l?译,清华大学出版C?Q?003 q_
q䆾列表中的其他所有书c都臛_和技术有些相兟뀂这本书却不是。在所有技术行话和首字母羃略词的vz中Q有时Y件开发h员和l理们会忘记Q是?刉了软g。DeMarco ?Lister 向我们提醒了q一事实Q也向我们提醒了形成q一区别的原因。这不是一本关于一门特定编E语a的书c,但却是每?Java 语言E序员都应该ȝ书。关?“篏ȝ序员如何让经理们适得其反?q有许多其他的好书,但这是最好的一本?br />


Web 站点

Web 站点的数目浩如烟P如果您想要消化其中的内容Q穷毕生之力也难以全部访问。包?Java 语言某方面内容的详尽的网站列表会大得谱。下列站炚w是可靠、真实的?br />
Sun ?Java 技术站?br />
Sun ?Java 语言站点
q是 Sun ?Java 语言ȝ。作?Java 语言开发h员,您会发现自己频繁地访问此站点。下列链接特别重要,特别是对新入行的 Java 语言开发h员:

New to Java Center
New to Java Center
New to Java Center 存放了许多@序渐q的 Java 技术资源链接。如果您刚接触这门语aQ这是一个好的v炏V?
教程和代码库
Java Tutorial
q里有大名鼎鼎的 Java TutorialQ以及关?Java 语言各个斚wQ例?CollectionQ的其他教程?

IBM developerWorks

IBM ?developerWorks
推销自己也许有些厚脸皮,?developerWorks 是一巨大的资源Q收录了大量 Java 语言工具和技术的教程和文章。其内容从初学者指南到学习q门语言到高Uƈ发性技术。可以根据主题搜索内容,然后Ҏcd览?br />
Apache Software Foundation

Apache Software Foundation
Apache 站点是许多可重用库(通用领域Q和工具的主,q些库和工具帮助 Java 开发h员进行开发。这里的内容全都是开放源码,所以尽下载想要的吧!许多极其行?Java 语言库和工具Q如 Struts、Ant ?TomcatQ都始于 Apache 目。Jakarta 专区汇聚了大多数新兴?Java 语言材料?br />
Eclipse.org

Eclipse
有几个好?Java 语言集成开发环境(IDEQ。EclipseQ来?IBMQ是最新的 IDE 之一Q它很快成ؓ Java 语言开发的首要 IDE。它完全是开源的Q这意味着它是免费的。该站包含了学习如何有效使用 Eclipse 的各U参考资料。这里还有关?Standard Widget ToolkitQSWTQ的信息QSWT 是相对于 Swing 来说更加轻量U的选择?br />
Eclipse 插g中心?Eclipse 插g

Eclipse 插g中心 ?Eclipse 插g
Eclipse Z插g架构。事实上Q插件是 Eclipse ?Java 语言开发组件。但有差不多上千个插Ӟ?Web 开发的插g到在 Eclipse 环境中玩游戏的插件。这两个站点分类列出了大多数插gQ可以进行搜索。它们是很棒的资源。如果您惛_ Eclipse 开发环境中弄点C西,q运的话有某个插件可能已l实玎ͼ从这两个站点能找到想要的插g。这两个站点都允许评论插Ӟq样您就可以知道哪些插g好,哪些值得一试?br />
JUnit.org

JUnit.org
Junit ?Java 语言中一个基本的单元试框架。该站点包含?Junit 最新最的版本Q外加大量有x试(Java 语言或者其他语a的)各个层面上(针对桌面应用E序、Web 应用E序、J2EE 应用E序{)的其他资源。如果您x试资源Q这里就是最佌v炏V?

TheServerSide.com

TheServerSide.com
如果您要(或将?从事服务器端 Java 语言的开发,此站Ҏ一处D重的资源。您可以到这里找到有?JBoss、J2EE、LDAP、Struts 和大量其他主题的文章Qƈ且都是完全可索的。这些文章不仅仅是简单描q?Java 语言的特征或者支持的库。它们更q一步地描述了库的新奇用法(如?Jakarta Velocity 作ؓ规则引擎Q而不是模板引擎)。它们也提供了有?Java 语言现状的连l评论(当前的一文章是?Tim Bray 所写的 Java is boring Q。该站点更好的通用功能之一是对 Java 语言工具和品(应用服务器等Q的矩阵式比较?

Bruce Eckel's MindView, Inc.

Bruce Eckel's MindView, Inc.
Eckel 写了几本 “用 …?q行思考?的书Q内容关?Java 语言、Python ?C++ Q当我学?Java 语言Ӟ他的 Thinking in Java Ҏ其有帮助。它很实用ƈ切中要害Q在“在 Java 语言环境中如何面向对象思考”方面具有卓识。您可以从此站点免费下蝲他所有书c的电子版。他也写了许多好文章Qƈ且他把这些文章的链接都放Cq里Q包括关?Jython、Java ?.NET 比较{内容的文章Q?br />
ONJava.com

ONJava.com
O'Reilley 历年来出版了一些有关编E语a和工L优秀书籍。他们的专注?Java 语言的网站也不错。它有些有关各种 Java 语言工具Q如 JDOM ?HibernateQ、Java q_Q如 J2SE ?J2EEQ不同领域不同部分的文章。全部都可以被检索到。他们有优秀的文章和教程。该站点按主题排列。例如有 Java ?XML、Java Security、Wireless Java ?Java SysAdmin。该站点也有?O'Reilley Learning Lab 的链接,在那里您能获得在U参考资料(Java 语言相关和其他的Q。那些不是免费的Q但是许多都面向大学认证。因此您可以以一U很方便的方式来学习技能,q得C些认证?

java.net

java.net C֌
java.net C֌有多个“社区”,有特定于主题的论坛和文章。例?Java Desktop C֌有各cM Java 语言桌面开发相关的资料。Java Patterns C֌作ؓ一个门P也许Ҏ?Java 语言的模式资源相当感兴趣。还有一?Java User Groups (JUG) C֌Q在那里能找到有兛_建、加入和理一?JUG 的信息?




l束?br />
M “好的”、“关键性的?或?“重要的?参考资料列表都注定是不完整的,本文的列表也未能例外?Java 语言的书c数目众多,当然Q万l网也很庞大。除本文所列的参考资料之外,q有很多用于学习 Java 语言的参考资料。但如果您拥有了q里所提到的所有书c、网站、文章或者教E,您应当已l拥有了一个您良好开端ƈ助您d入室的实用宝库?br />
最后,要成Z个能力日增和高效?Java 语言开发h员,Ҏ是用它工作Q动手来试。如果有一个教E详l介l了所需创徏的Y件的每一部分Q您很可能ƈ没得到多好处。有Ӟ您可能得走自q路。在成功地尝试了一些新的东西之后,您可能想要写一文章、教E或者一本书来分享您所学到的?/font>

]]>
JSP生成静态页实践及其设计思想http://www.tkk7.com/kim/archive/2007/01/10/92858.html大熊?/dc:creator>大熊?/author>Wed, 10 Jan 2007 03:38:00 GMThttp://www.tkk7.com/kim/archive/2007/01/10/92858.htmlhttp://www.tkk7.com/kim/comments/92858.htmlhttp://www.tkk7.com/kim/archive/2007/01/10/92858.html#Feedback1http://www.tkk7.com/kim/comments/commentRss/92858.htmlhttp://www.tkk7.com/kim/services/trackbacks/92858.html 转:

引子Q?br />我们以两个大型网站ؓ例作比较Q?br />51job和智联招聘(先声明我不是Z们作q告Q仅以他们ؓ例作技术上的比较)
51job采用的是比较“先q”的php技术,而智联用的是比较落后的asp.但我们可能会明显的感觉到51job的反应速度相比招聘实在是太慢了Qؓ什么会q样Q细心的人可能会察觉C。智联虽然用的是asp,但他采用了另一U更巧妙的技?-asp生成静态页技术。所有的动态页基本上都转换成了html静态页Q不用访问数据库Q当然反应快了?br />下面我们讨论一下jsp怎么转换成html??
首先要做一个模ѝ后~不限Q但一般都?.template例子
<html>
<head>
<title>#title#</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<LINK href="../css.css" rel=stylesheet type=text/css>
</head>

<body>
<P align="center">
#title#<BR><BR><BR>
作者:#author#<BR><BR>
<BR>
#content#<BR><BR><BR><BR>
</P>
</body>
</html>
做一个处理模板的cL者jsp文g?明问题我们从单入手以一个jsp文gZ)
?filePath = request.getRealPath("/")+"WEB-INF/templates/template.htm";
?out.print(filePath);
?String templateContent="";
?FileInputStream fileinputstream = new FileInputStream(filePath);//d模块文g
?int lenght = fileinputstream.available();
?byte bytes[] = new byte[lenght];
?fileinputstream.read(bytes);
?fileinputstream.close();
?templateContent = new String(bytes);
?out.print("以下是模板内容:<br>"+templateContent+"<br> 以下是置换以后的html内容<br><hr>");
?templateContent=templateContent.replaceAll("#title#",title);
?templateContent=templateContent.replaceAll("#author#",editer);//替换掉模块中相应的地?br />?templateContent=templateContent.replaceAll("#content#",content);
?// Ҏ旉得文件名
?Calendar calendar = Calendar.getInstance();
?String fileame = String.valueOf(calendar.getTimeInMillis()) +".html";
?fileame = request.getRealPath("/")+fileame;//生成的html文g保存路径

?out.print(templateContent);
?FileOutputStream fileoutputstream = new FileOutputStream(fileame);//建立文g输出?br />?byte tag_bytes[] = templateContent.getBytes();
?fileoutputstream.write(tag_bytes);
?fileoutputstream.close();
嗯,核心技术就是这样了Q如果大家要求的性能更高Q可以改用freemarker做模ѝfreemarker的用方法可以参阅我的另一文章《Freemarker 模板工具的作用及使用?/font>
转自JavaThink

]]>
ZJava的Web应用开发规?/title><link>http://www.tkk7.com/kim/archive/2007/01/10/92856.html</link><dc:creator>大熊?/dc:creator><author>大熊?/author><pubDate>Wed, 10 Jan 2007 03:30:00 GMT</pubDate><guid>http://www.tkk7.com/kim/archive/2007/01/10/92856.html</guid><wfw:comment>http://www.tkk7.com/kim/comments/92856.html</wfw:comment><comments>http://www.tkk7.com/kim/archive/2007/01/10/92856.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/kim/comments/commentRss/92856.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/kim/services/trackbacks/92856.html</trackback:ping><description><![CDATA[ <span id="pjffjln" class="tpc_content"> <font size="2">转:<br /><br />1 前言<br /> Z使Y件开发过E有章可循,保证软g质量Q加强开发管理?<br /><br />2 开发管?br /> 目q度周报表格如下Q?br /> 目~号Q?<br /> 汇报人: <br /> 汇报日期Q?<br /> 目q度详细描述Q?<br /> 其他问题Q?<br /><br />3 目周期<br /> 叔R目开发周期分Z下几个步骤:<br /> 步骤 说明 参与角色 生成文档或程序(?号ؓ可选)<br /> 可行性分?寚w目的技术,功能需求和市场q行调研和初步分析,定是否需要立开发?部门ȝ核心技术员 可行性分析报?技术调研报? 立项 正式立项Q由部门ȝ指定目l理Q项目经理制定初步计划。初步计划包括设计和开发时间的初步估算?部门ȝ核心技术员 目初步计划 需求分?寚w目进行详l的需求分析,~写需求分析文档。对于B/Sl构软gpȝ需要制作静态演C页面。需求分析文档和静态演C页面需要通过部门ȝ审批才能够进行到下一个步?目l理目核心组 需求分析文档静态演C页面项目计划修订版本详l设?Ҏ需求分析对目q行详细设计。详l设计以后,目l理同部门主一h定项目小l开发成员?目l理目核心组 详细设计文档目计划定版本开?Ҏ设计开发项目,q工对操作界面q行化?目l理目开发员工 目计划修订版本*试 目l理提交试甌Q由试部门寚w目进行测试。项目小l配合测试部门修改Y件中的错误?目l理目开发员试?试甌试计划试报告 目验收 目验收归档 部门ȝ目l理 目所有文档和E序<br /><br />4 命名规范<br /> 4.1 目~号命名规范<br /> 待完?br /><br />4.2 文档命名规范<br /> 待完?br /><br />4.3 jsp/html命名规范<br /> jsp与html文g名全部小写,q循如下的规范Q?br /><br />数据/内容昄?br /> 名词Q多个单词用下划U分隔,要求能说明显C内容的信息Qؓ避免冲突Q可加上 “_list”。例如:<br />new_message.html ?my_file_list.jsp<br /><br />操作处理?br /> 命名格式Q名词_下划U_动词Q例如:file_delete.jsp?br /><br />含frame面<br /> <frameset>?lt;frame>的name属性命名的格式是①xxx._②xxx_③xxx <br /> ①xxx部分用来标识当前面隶属于整个系l中的哪一功能模块?<br /> 如:属于ebwebmail则被表示为ebwebmailQ其它情况依ơ类推?<br /> ②xxx部分标识当前面所要完成的功能?br /> 如:完成用户d的功能则被标识ؓloginQ其它情况依ơ类推?<br /> ③xxx部分用来用来表示面在浏览器H口所处的位置?<br /> 处于览器窗口的剙则标识ؓtopQ其它情况依ơ类推?br /> 例如Qebwebmail_inbox_top.jsp<br /><br /><frame> src属性相应的文g名根据情况徏议在原命名规范上用下划线加上所处窗口的位置?br /><br />javascript脚本Ҏ<br /> 脚本函数都以①xxx_②xxx的方式命名?br /> ①xxx对应面隶属的模块?br /> ②xxx表示函数所要实现的功能(动宾l构)Q多个单词用下划U连接?br /> 例如Qebwebmail_send_mail()<br /><br />模块通用的脚本函数必集合于一个js文g中,在页面上通过<script language=”javascript?src=”url?gt;</script>形式导入。js文g名命名用模块名Q例如:ebwebmail.js?br /><br />如果目已经提供了公共js脚本Q则优先使用公共js脚本中提供的函数?br /><br />所有定义方法的<script>元素定义?lt;head></head>中或</body>后?br /><br />javascript脚本内部变量与参?br /> 单词之间用下划线分隔且全部小写,例如Q?var file_size?br /><br /><form>表单name属?br /> l一以“form_”开_其后加该表单所需攉的信息的作用或动作,例如Qform_file_upload ?form_send_mail?br /><br />表单elements<br /> 表单element的名UCelement需攉的信息标C命名,单词之间使用下划U分隔且全部写Q例如:<br /><br /> <input type=”text?name=”username?gt;<br /> <input type=”radio?name=”file_type?gt;<br /> <textarea name=”content?rows=??cols=?0?gt; <br /><br />cookie命名<br /> 命名格式Q模块名_存储信息名词(多个单词用下划线分隔) Q全部大写,例如QEBWEBMAIL_SORT_TYPE?br /><br />window.open中name参数的命?br /> javascript的window.openҎ中有一个name的参敎ͼ览器约定同L名字的窗口只能打开一个,如果E序间名字重复将怺冲突。如果不限制打开H口敎ͼ可以指定‘’或“”(不是nullQ,否则需要加上模块名Q例如ebwebmail_viewmail?br /><br />4.4 数据库命名规?br /> 数据库表命名均遵循以下规范:<br /> 模块名_存储信息名词(多个单词用下划线分隔)Q全部小写,例如Qebwebmail_message?br /><br />数据库字D命名遵循以下规范:<br /> 存储信息名词(多个单词用下划线分隔)Q全部小写,例如Qmessage_id?br /><br />5 文档规范<br /><br /> 1. ~写文档目前主要使用的工hWordQ项目计划文档例外,需要用Project制作Q,辅助使用的工hVisioQPowerPointQERWin{?br /><br />2. 文档务必保持D落格式整齐Q文字字体,颜色Q大统一?br /><br />3. 如果需要摘引html面中的内容Q不能直接从html中粘贴过来(会在word文档中留下html格式Q,而必d去除格式Q例如:先粘贴到notepad中?br /><br />4. 务必注意中英文标点符P文档正文一概用中文标点符受?br /><br />5. 如果需要在文档中插图,不要使用word自带的绘囑ַ兗可以选择使用PowerPoint或visio。用PowerPointQ选择“插入?>“对象?>“Microsoft PowerPoint qȝ片”。用visioQ需要另外徏立visio文档Q绘制完以后_脓到word中?br /><br />6. 数据建模使用ERwin工具Q文档中仅需要粘贴数据模型的逻辑视图Qlogical viewQ,另外q要附上表结构描q?br /><br />7. 修改他h文档务必使用修订模式Q以便保留备修改的内宏V用修订模式,选择“工具?>“修订?>“突出显CZ订”,勾上“编辑时标记修订”?br /><br />附:一些模?br /> ü Javac设?class documentation)<br /> 声明Q?br /><br />描述Q?br /><br />属性:1. property_name<br /> 声明 <br /> 说明 <br /><br />ҎQ?1. method_name<br /> 声明 <br /> 说明 <br /> 参数 <br /> q回?<br /> 异常 <br /><br />注:<br /> Ҏ声明中,如果遇到重蝲的方法,可以使用“|”表C可以接受不同类型的参数Q例如:“String value | int value”;可以使用“[]”表C可选的参数Q例如:“Object message[,Throwable t]?br /><br />Servlet设计(servlet document)<br /> cd 接受参数列表 描述<br /><br />数据表设?data modeling)<br /> 表名Qsome_table<br /><br />说明Qdescription<br /><br />表结构:<br /> 字段?cd 说明<br /><br />6 代码规范<br /> 6.1 Java源代码规?br /> 6.1.1 命名<br /> u Package 的命?br /> Package 的名字应该都是由一个小写单词组成,例如Qnet.ebseries.modules?br /> 此外Q对于包名我们做如下U定Q?br /> 1. 工具函数cd名前~?util<br /> 2. Servletcd名前~?servlet<br /> 3. test casecd名前~?test<br /><br />Class 的命?br /> Class 的名字必ȝ大写字母开头而其他字母都写的单词组成,例如QDataFile或InfoParser?br /><br />Class 变量的命?br /> 变量的名字必ȝ一个小写字母开头。后面的单词用大写字母开_例如Qdebug ?inputFileSize?br /><br />Static Final 变量的命?br /> Static Final 变量的名字应该都大写Qƈ且指出完整含义,例如QMAX_UPLOAD_FILE_SIZE=1024?br /><br />参数的命?br /> 参数的名字必d变量的命名规范一致?br /><br />数组的命?br /> 数组应该L用下面的方式来命名:<br /> byte[] buffer;<br /> 而不是:<br /> byte buffer[];<br /><br />Ҏ的参?br /> 使用有意义的参数命名Q如果可能的话,使用和要赋值的字段一L名字Q?br /><br /> SetCounter(int size)<br /> {<br /> this.size = size;<br /> } <br /><br />6.1.2 代码格式<br /> 文g头声?br /> 源文件的头部需要一个historyD,对于每次Ҏ文g的重大改动,都需要在historyD中注明。该D定义在package和  import之间Q例如:<br /><br /> Q?****************************************************<br /> * HISTORY<br /> * <br /> * 2002/01/29 Biz 创徏文g<br /> * <br /> * 2002/02/19 kevin 增加新功?br /> *<br /> *******************************************************/ <br /><br />import序<br /> import包按一下顺序:<br /> 1. jdk标准?br /> 2. java扩展包(例如servletQjavamailQjce{)<br /> 3. 使用的外部库的包Q例如xml parserQ?br /> 4. 使用的项目的公共?br /> 5. 使用的模块的其他?br /> 每一cimport后面加一个换行?br /><br />例如Q?br /> import java.io.*;<br /> import java.util.*;<br /><br />import javax.servlet.*;<br /> import javax.mail.*;<br /><br />import org.apache.xml.*;<br /><br />import net.ebseries.*;<br /> import net.ebseries.util.*;<br /><br />import net.ebseries.ebwebmail.*;<br /><br /><br />代码块书写格?br /> 可以选择以下L一U代码块的书写方式:<br /><br /> if (true){<br /> //body<br /> }<br /><br />if (true)<br /> {<br /> //body<br /> }<br /><br /><br />使用W二U书写方式。如果是修改他h的代码,必须使用代码原来的书写方式?br /><br />对于代码块过长,过1屏以上,}后面要说明属于那个代码块Q例如:<br /><br />if (i > 100)<br /> {<br /> //too many lines more than one screen<br /> }// if (i > 100) <br /><br />关于~进<br /> ~进使用4个连l空|不要在源文g中保存tab字符Q?h意调整所用的IDE工具Q打开tab转换为空格功能?br /><br />宽<br /> 宽应该讄?0字符. 源代码一般不会超q这个宽? q导致无法完整显C? 但这一讄也可以灵z调? 在Q何情况下, 长的语句应该在一个逗号或者一个操作符后折? 一条语句折行后, 应该比原来的语句再羃q?个空根{?br /><br />操作W?br /> 操作W左叛_用一个空格分隔?br /> 例如Q?br /> int a = b;<br /> if (a > 0);<br /><br />SQL语句<br /> 代码中书写的sql语句要求sql关键字全部大写,表名和字D名写。例如:<br /> SELECT user_id, name FROM account WHERE user_id > ? AND depart = ? ORDER BY name<br /><br />cdҎ定义<br /> cd义或Ҏ定义q长需要换行书写,例如Q?br /><br />public class CounterSet<br /> extends Observable<br /> implements Cloneable<br /><br />private PortletSet getPortlets( Portlets portlets, <br /> RunData rundata, <br /> boolean application, <br /> boolean applicationsOnly )<br /> {<br /> }<br /><br /><br />6.1.3 注释<br /> public ?protected的成员变量和Ҏ必须写javadoc注释。超q?句以上的注释使用中文书写。对于代码多?0行的privateҎ也要写javadoc注释?br /><br />对于代码中的逻辑分支或@环条仉要书写注释,例如Q?br /><br />if (some condition)<br /> {<br /> //W合某个条gQ应该这样处?br /> }<br /> else<br /> {<br /> //否则应该那样处理<br /> } <br /><br />6.1.4 其他<br /> 关于属?br /> cM的属性不能定义ؓpublic变量直接存取Q而是定义成protect变量q编写get/setҎQ例如:<br /><br /> protect String myName;<br /><br />public String getMyName()<br /> {<br /> return myName;<br /> }<br /><br />public void setMyName(String myName)<br /> {<br /> this.myName=myName;<br /> }<br /><br /><br />6.2 jsp/html代码规范<br /> jsp/html描述注释<br /> jsp/html面剙必须存在一个基本描q注释,包含功能描述、参数列表和历史修改信息Q例如:<br /><br /><%--<br /> /**************************************************<br /> *<br /> * NAME : file_download.jsp<br /> *<br /> * PURPOSE : 下蝲文g提示<br /> *<br /> * PARAMETERS :<br /> * file_id - 文gID?br /> * force ?C 是否强制下蝲<br /> *<br /> * HISTORY<br /> *<br /> * 2002/04/05 Hafele 创徏文g<br /> *<br /> * 2002/06/07 tmp 增加强制下在功能<br /> *<br /> *************************************************/<br /> --%> <br /><br />jsp头格?br /> jsp头部一般需要遵循以下格式:<br /><br /> <%@ page contentType="text/html;charset=gb2312" %><br /> <%@ page import="java.io.*" %> // jdk标准?br /> <%@ page import="javax.mail.*" %> // java扩展?br /> <%@ page import="org.apache.xml.*" %> //使用的外部库的包<br /> <%@ page import="com.sunrise..*" %> //使用的项目的公共?br /> <%@ page import=" com.sunrise.applications.*" %> //使用的模块的其他?br /> <%@ include file="some.jsp" %> //include其他的jsp<br /> <%<br /> response.setHeader("Pragma","No-cache"); <br /> response.setHeader("Cache-Control","no-cache");<br /> response.setHeader("Expires","0");<br /> %> //一般jsp都需要防止缓?<br /><br />html格式<br /> 1. html头一般需要遵循以下格式:<br /><br /> <head><br /> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"><br /> <title>some title</title><br /> <link rel="stylesheet" href="some.css" type="text/css"><br /> <script language="javascript"><br /> //some javascript<br /> </script><br /> </head> <br /><br />注意Q必L定一个有意义?lt;title>Q严出现“Untitled”或“未命名”之cȝ<title>?br /><br />2. 所有html标签使用写<br /><br />3. html面一般需要设|一个背景色Q一般是#FFFFFFQ?br /><br />html语法校验<br /> 所有的jsp/html面需要能够用DreamWeaver正确打开Q即html语法正确Q没有错误的标记Q?br /><br />注释<br /> 一般不使用html注释Q除非是有必要让最l用L到的内容。对于包含JSP代码的html块,必须使用JSP注释。对于没有必要的注释Q在发行版本中必ȝ除?br /><br />form属于域的maxlength<br /> 对于textcd的输入域Q必L据数据库字段的长度设|相应的maxlengthQ例如数据库cd是VARCHAR(64)Q那么maxlength?2Q因Z文浏览器对于中文也认为是一个字W)?br /><br />6.3 其他规范<br /> 对于IDE的?br /> 目前暂不限制开发工L使用Q但是最后提交的代码必须不依赖Q何IDEQ而需要可以用ant完成所有的~译工作。一般提交的代码目录格式如下Q?br /><br />|_distQ存放输出的文gclass文gQ?br /> |_libQ用的库)<br /> |_srcQ源代码Q?br /> |_docsQ文档)<br /> |_wwwrootQ页面文Ӟ<br /> |_build.xmlQant的build文gQ?br /> |_changes.logQ代码版本和修改的日志) <br /><br />限制session的?br /> 在代码中使用session需要听取项目经理的意见Q项目经理需要在设计文档中登记项目中所有用到的session的名字和作用?br /><br />限制外部包的使用<br /> 开发员如果需要用一个外部包需要听取项目经理的意见。在目l理批准以前Q严擅自用一个外部的包?/font> </span> <img src ="http://www.tkk7.com/kim/aggbug/92856.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/kim/" target="_blank">大熊?/a> 2007-01-10 11:30 <a href="http://www.tkk7.com/kim/archive/2007/01/10/92856.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP面试Q经典) 转帖http://www.tkk7.com/kim/archive/2006/11/13/80835.html大熊?/dc:creator>大熊?/author>Mon, 13 Nov 2006 02:47:00 GMThttp://www.tkk7.com/kim/archive/2006/11/13/80835.htmlhttp://www.tkk7.com/kim/comments/80835.htmlhttp://www.tkk7.com/kim/archive/2006/11/13/80835.html#Feedback0http://www.tkk7.com/kim/comments/commentRss/80835.htmlhttp://www.tkk7.com/kim/services/trackbacks/80835.html 在JSP中可以用如下方式包含纯HTMLQ?br /> <!--#include file="data.inc"--> 
 但是如果data.inc中包含JSP CODE Q我们可以用: 
 <%@include file="data.inc"%> 


 2、如何执行一个线E安全的JSP? 
 只需增加如下指o 
 <%@ page isThreadSafe="false" %> 


 3、JSP如何处理HTML FORM中的数据? 
 通过内置的request对象卛_Q如下: 
 <% 
 String item = request.getParameter("item"); 
 int howMany = new Integer(request.getParameter("units")).intValue(); 
 %> 


 4、在JSP如何包含一个静态文? 
 静态包含如下:<%@ include file="copyright.html" %> 
 动态包含如下:<jsp:include page="copyright.html" flush="true"/> 


 5、在JSP中如何用注? 
 主要有四中方法: 
 1?lt;%-- 与?-%> 
 2?/ 
 3?**?*/ 
 4?lt;!--?-> 


 6、在JSP中如何执行浏览重定向? 
 使用如下方式卛_Qresponse.sendRedirect("http://ybwen.home.chinaren.com/index.html"); 
 也能物理地改变HTTP HEADER属性,如下Q?br /> <% 
 response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); 
 String newLocn="/newpath/index.html"; 
 response.setHeader("Location",newLocn); 
 %> 


 7、如何防止在JSP或SERVLET中的输出不被BROWSER保存在CACHE? 
 把如下脚本加入到JSP文g的开始即可: 
 <% 
 response.setHeader("Cache-Control","no-store"); //HTTP 1.1 
 response.setHeader("Pragma","no-cache"); //HTTP 1.0 
 response.setDateHeader ("Expires", 0); //prevents caching at the proxy server 
 %> 


 8、在JSP中如何设|COOKIE? 
 COOKIE是作为HTTP HEADER的一部分被发送的Q如下方法即可设|: 
 <% 
 Cookie mycookie = new Cookie("aName","aValue"); 
 response.addCookie(mycookie); 
 %> 


 9、在JSP中如何删除一个COOKIE? 
 <% 
 Cookie killMyCookie = new Cookie("mycookie", null); 
 killMyCookie.setMaxAge(0); 
 killMyCookie.setPath("/"); 
 response.addCookie(killMyCookie); 
 %> 


 10、在一个JSP的请求处理中如何停止JSP的执行?br /> 如下例: 
 <% 
 if (request.getParameter("wen") != null) { 
 // do something 
 } else { 
 return; 
 } 
 %> 


 11、在JSP中如何定义方法?br /> 你可以定义方法,但是你不能直接访问JSP的内|对象,而是通过参数的方法传递。如下: 
 <%! 
 public String howBadFrom(HttpServletRequest req) { 
 HttpSession ses = req.getSession(); 
 ... 
 return req.getRemoteHost(); 
 } 
 %> 
 <% 
 out.print("in general,lao lee is not baddie "); 
 %> 
 <%= howBadFrom(request) %> 


 12、如果BROWSER已关闭了COOKIESQ在JSP中我如何打开SESSION来跟t?br /> 使用URL重写卛_Q如下: 
 hello1.jsp 
 <%@ page session="true" %> 
 <% 
 Integer num = new Integer(100); 
 session.putValue("num",num); 
 String url =response.encodeURL("hello2.jsp"); 
 %> 
 <a href=<%=url%>>hello2.jsp</a> 

 hello2.jsp 
 <%@ page session="true" %> 
 <% 
 Integer i= (Integer )session.getValue("num"); 
 out.println("Num value in session is "+i.intValue()); 
 %> 


 13、在JSP中能发送EMAIL吗?br /> 可以使用SUN的专用包Qsun.net.smtp包。如下脚本用SmtpClientcd送EMAIL。?br /> <%@ page import="sun.net.smtp.SmtpClient, java.io.*" %> 
 <% 
 String from="ybwen@sina.com"; 
 String to="hewenjun@yeah.net, lei@who.com.cn"; 
 try{ 
 SmtpClient client = new SmtpClient("mail.xxxxx.xxx"); 
 client.from(from); 
 client.to(to); 
 PrintStream message = client.startMessage(); 
 message.println("To: " + to); 
 message.println("Subject: Sending email from JSP!"); 
 message.println("This was sent from a JSP page!"); 
 message.println(); 
 message.println("Cool! :-)"); 
 message.println(); 
 message.println("Good Boy"); 
 message.println("Im in genius.com"); 
 message.println(); 
 client.closeServer(); 
 } 
 catch (IOException e){ 
 System.out.println("ERROR SENDING EMAIL:"+e); 
 } 
 %> 


 14、在SERVLET中我能调用一个JSP错误吗 
 当然没问题,如下展示了如何在一个SERVLET控制逻辑单元内调用一个JSP错误面。?br /> protected void sendErrorRedirect(HttpServletRequest request, 
 HttpServletResponse response, String errorPageURL, 
 Throwable e) 
 throws ServletException, IOException { 
 request.setAttribute ("javax.servlet.jsp.jspException", e); 
 getServletConfig().getServletContext(). 
 getRequestDispatcher(errorPageURL).forward(request, 
 response); 
 } 

 public void doPost(HttpServletRequest request,HttpServletResponse response) { 
 try { 
 // do something 
 } catch (Exception ex) { 
 try { 
 sendErrorRedirect(request,response,"/jsp/MyErrorPage.jsp",ex); 
 } catch (Exception e) { 
 e.printStackTrace(); 
 } 
 } 
 } 


 15、JSP和APPLET如何通讯 
 JSP如何与EJB SessionBean通讯 
 下面的代码段作了很好的示范?br /> <%@ page import="javax.naming.*, javax.rmi.PortableRemoteObject, 
 foo.AccountHome, foo.Account" %> 
 <%! 
 //定义一个对SessionBeanHome接口实例的全局引用 
 AccountHome accHome=null; 

 public void jspInit() { 
 //获得Home接口实例 
 InitialContext cntxt = new InitialContext( ); 
 Object ref= cntxt.lookup("java:comp/env/ejb/AccountEJB"); 
 accHome = (AccountHome)PortableRemoteObject.narrow(ref,AccountHome.class); 
 } 
 %> 
 <% 
 //实例化SessionBean 
 Account acct = accHome.create(); 
 //调用q程Ҏ 
 acct.doWhatever(...); 
 // 如此{等 
 %> 


 16、当我用一个结果集Ӟ如何防止字段?null"的字域显C在我的HTML输入文本域中? 
 可以定义一个简单的函数来达到目的,如下Q?br /> <%! 
 String blanknull(String s) { 
 return (s == null) ? "" : s; 
 } 
 %> 

 然后在JSP的FORM中,可以q样使用 
 <input type="text" name="shoesize" value="<%=blanknull(shoesize)%>"> 


 17、如何中SERVLET或JSP下蝲一个文Ӟ如:binary,text,executable)Q?br /> 现提供两个解x案: 
 AQ用HTTPQ?br /> BQ在Servlet中,通过讄ContentType和用java.io包的Stream{类可作?例如Q?br /> response.setContentType("application/x-msword"); 
 然后惌出缓冲中写一些东东即可。?/p>

 18、用useBean标志初始化BEAN时如何接受初始化参数 
 使用如下两标{֍可: 
 <jsp:getProperty name="wenBean" property="someProperty"/> 
 <jsp:setProperty name="wenBean" property="someProperty" value="someValue"/> 

 19、用JSP如何获得客户览器的信息Q?br /> 使用request.getHeader(String)卛_ 


 20、能象调用子E序一栯用JSP吗? 
 当然可以Q用<jsp:include page="relativeURL" flush="true"/> 


 21、当我重~译我的JSP使用的一个类后,Z么JVMl箋使用我的老CLASSQ?/p>


 <%@include file="abc.jsp"%>?lt;jsp:include page="abc.jsp"/>之间的差别? 
 前一个ؓ静态包含,而后一个ؓ动态包含?/p>


 22、JSP的缺点? 
 1。对JAVAE序q行调试没有好东东?br /> 2。因大多数的servlet引擎不支持connection pooling 
 3。Servlet引擎没有标准 
 4。JSP与其它脚本语a的交互?/p>


 23、JSP能进行递归调用吗? 
 当然可以,如对form的提交给本页 


 34、如何实现JSP的国际化Q?br /> 为各U版本提供resource bundles属性文件即可?/p>

 25、在JSP中如何写文本文gQ?br /> 使用PrintWriter对象Q如Q?br /> <%@ page import="java.io.*" %> 
 <% 
 String str = "print me"; 
 String nameOfTextFile = "/usr/anil/imp.txt"; 
 try { 
 PrintWriter pw = new PrintWriter(new FileOutputStream(nameOfTextFile)); 
 pw.println(str); 
 pw.close(); 
 } catch(IOException e) { 
 out.println(e.getMessage()); 
 } 
 %> 


 26、如何在JSP中包括绝对\径文Ӟ 
 使用URLConnection卛_。?/p>


 27、在servlets和JSP之间能共享session对象吗? 
 当然可以Q?br /> HttpSession session = request.getSession(true); 
 session.putValue("variable","value"); 


 28、JavaScript的变量能复制到JSP的SESSION中吗Q?/p>


 29、如何设|cookie在某一旉后过期? 
 用Cookie.setMaxAge(int) 


 30、如何获得当前的sessions敎ͼ 
 可以使用HttpSessionBindingListeners来跟t?/p>


 31、能讄一些代码在我所有的JSP文g之上q行Q如果可以,能共享吗Q?br /> 当然可以,可以Z的JSP文g定义一个别?/jsp/=ybwen.genius.myPreprocessingServlet,而以/jsp/为前~的文件可以用?/p>


 32、对一个JSP,如果多个客户端同时请求它Q同步可能吗Q?br /> 在jsp:useBean语法中用beanName有何好处Q?br /> beanName使用Beans.instantiate()初始化Bean 


 33、当我?lt;jsp:forward>Ӟ在浏览器的地址栏没有改变? 
 使用response.sendRedirect("newURL") 


 34、如何{换JSP 0.9版本的文件到JSP1.1? 
 可用sed/awk卛_ 


 35、用JSP能设|HTML FORM中输入域的焦点,不用JavaScript? 
 没办法?/p>


 36、用JSPq接到数据库q接~冲池的最好方法是什么? 
 1.使用JDBC2?中带有此服务的Driver 
 2.使用提供有此服务的Application server 
 3.自己?br />



]]>
eclipse安装安装语言包后若有一些英文单词没有翻译成中文的解x法!http://www.tkk7.com/kim/archive/2006/11/09/80258.html大熊?/dc:creator>大熊?/author>Thu, 09 Nov 2006 13:22:00 GMThttp://www.tkk7.com/kim/archive/2006/11/09/80258.htmlhttp://www.tkk7.com/kim/comments/80258.htmlhttp://www.tkk7.com/kim/archive/2006/11/09/80258.html#Feedback3http://www.tkk7.com/kim/comments/commentRss/80258.htmlhttp://www.tkk7.com/kim/services/trackbacks/80258.html安装了多国语a包后Q发现还有一些英文单词没有翻译成中文Q这是因Z前启动了英文版的eclipseQeclipse在启动后Q记录了一些英文版的信息,形成了干扎ͼ解决Ҏ有以下两U:
1、将eclipse安装路径下的configuration目录删除Q再重启eclipse?
2、右击eclipse快捷方式Q在目标栏的最后加入eclipse的启动参?clean。或者在DOS下用“eclipse-clean”来启动?/span>

]]>
在win xp 中安装Eclipse及多国语a? http://www.tkk7.com/kim/archive/2006/11/09/80256.html大熊?/dc:creator>大熊?/author>Thu, 09 Nov 2006 13:19:00 GMThttp://www.tkk7.com/kim/archive/2006/11/09/80256.htmlhttp://www.tkk7.com/kim/comments/80256.htmlhttp://www.tkk7.com/kim/archive/2006/11/09/80256.html#Feedback3http://www.tkk7.com/kim/comments/commentRss/80256.htmlhttp://www.tkk7.com/kim/services/trackbacks/80256.html本例安装环境:WIN XP中文?JDK1.4.2_12+ECLIPSE 3.0.1(加多国语a?
1.安装JDK
下蝲地址:http://Java.sun.com/j2se/
注意:在WIN XP下安装ECLIPSE不需要设|JDK环境变量。(实践l验Q?
2.安装ECLIPSE
下蝲地址:http://download.eclipse.org/downloads/?
Q?Qeclipse的安装非常简单,它属于绿色Y件的安装ҎQ不需要运行安装程序,只需要将下蝲的eclipse压羃包解压就可以q行eclipse了(路径自己喜欢Q?
Q?Q检查eclipse是否安装成功。双ȝ录下Qeclipse.exe文g来启动eclipse。第一ơ启动会弹出对话框(用来讄工作I间Q位|自己喜Ƣ)Q单击OK按钮Q开始运行eclipseE序。运行完毕后Q出C个Welcome to Eclipse 3.0 的欢q界面,表示已经安装成功了?
3.安装多国语言?
下蝲地址Q?a target="_new" rel="nofollow">http://download.eclipse.org/downloads/?
注意Q要与eclipse 3.0.1版本相对应(|名QLanguage PackQ?
Q?Q先xEclipse?
Q?Q将下蝲的语a包解压羃Qƈl这个目录取个名Q本例:languageQ?
(3) 此目录复制到eclipse安装目录下(最后\径ؓQeclipse安装目录/language/eclipse/..Q?
Q?Q徏立语a包的link文g。在eclipse安装目录下徏一个目录ƈ取名为linksQ在该目录中新徏一个文本ƈ取名为language.linkQ可L取名Q,然后在language.link文g中加入一行文字:path=language(用相对\??
l过四步后,现在可以重启eclipse了。看看!是不是eclipse界面都汉化成中文了呢Q未成功安装的朋友,快点试下啦!
以上为本期的学习成果Q}供各位朋友参考!若有不对的地方请见谅Q?/span>

]]>
关于JSP的执行流E?/title><link>http://www.tkk7.com/kim/archive/2006/11/09/80202.html</link><dc:creator>大熊?/dc:creator><author>大熊?/author><pubDate>Thu, 09 Nov 2006 08:51:00 GMT</pubDate><guid>http://www.tkk7.com/kim/archive/2006/11/09/80202.html</guid><wfw:comment>http://www.tkk7.com/kim/comments/80202.html</wfw:comment><comments>http://www.tkk7.com/kim/archive/2006/11/09/80202.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/kim/comments/commentRss/80202.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/kim/services/trackbacks/80202.html</trackback:ping><description><![CDATA[ <span id="phlzlbb" class="postbody">当第一个用戯求JSP文g的时候,JSP容器Q如TOMCATQ把JSP文g转换成JAVA文gQSERVLETcLӞQ然后编译成CLASS文gQ常d存;当有客户h的时候,直接再打开一个线E,而不是一个进E,无须重新~译Q直接执行第一ơ已l编译好的CLASS文gQ速度比每ơ都要重新编译JSP文g要快得多。当然如果JSP文g发生变化Q则需要重新编译一ơ?<img src="http://www.javafan.net/bbs/images/smilies/47941865eb7bbc2a777305b46cc059a2.gif" /> 遇见!</span> <img src ="http://www.tkk7.com/kim/aggbug/80202.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/kim/" target="_blank">大熊?/a> 2006-11-09 16:51 <a href="http://www.tkk7.com/kim/archive/2006/11/09/80202.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://0755haoma.com" target="_blank">۵Ƶѹۿ</a>| <a href="http://hbqueena.com" target="_blank">ƵƵ</a>| <a href="http://bjgjjrxy.com" target="_blank">޾ƷWWWþþþþ</a>| <a href="http://002309.com" target="_blank">Դ߹ۿ</a>| <a href="http://xmllhb.com" target="_blank">츾þþƷ</a>| <a href="http://lanoss.com" target="_blank">һ߹ۿ </a>| <a href="http://airou08.com" target="_blank">AVվ</a>| <a href="http://www-7607.com" target="_blank">޾Ʒ91</a>| <a href="http://123994.com" target="_blank">޳һ</a>| <a href="http://mosason.com" target="_blank">պa߹ۿ</a>| <a href="http://qvod-player.com" target="_blank">ˬִ̼վֱ</a>| <a href="http://xabcjzx.com" target="_blank">þþþþ޾ƷӰԺ</a>| <a href="http://440878.com" target="_blank">Ʒmnbavվ </a>| <a href="http://kph37.com" target="_blank">AVרAV԰ </a>| <a href="http://yes5555.com" target="_blank">Ʒxxxxˮ޹Ʒþһ </a>| <a href="http://wdjiuye.com" target="_blank">޹av߲</a>| <a href="http://taoh2507.com" target="_blank">һһëƬ</a>| <a href="http://xjkakatong.com" target="_blank">99þþƷѾƷ</a>| <a href="http://8833655.com" target="_blank">ŮƷþ</a>| <a href="http://htsp777.com" target="_blank">޾Ʒվ߲</a>| <a href="http://paweax.com" target="_blank">޸Ƶ</a>| <a href="http://louqibang.com" target="_blank">߹ۿƵ</a>| <a href="http://4001120002.com" target="_blank">wwwѸƵ</a>| <a href="http://vankiz.com" target="_blank">AVAVպAVվ</a>| <a href="http://05942688.com" target="_blank">91һ߹ۿ</a>| <a href="http://yeyaweiban.com" target="_blank">AVվ߹ۿ</a>| <a href="http://zj1069.com" target="_blank">ŮAëƬ</a>| <a href="http://445645.com" target="_blank">ɫ뾫ƷƵ</a>| <a href="http://12345ww.com" target="_blank">˴WWW</a>| <a href="http://by6215.com" target="_blank">þþƷa޹v岻 </a>| <a href="http://vo168.com" target="_blank">޾ƷƬ߲</a>| <a href="http://ywgj50225.com" target="_blank">Ʒѿþþ</a>| <a href="http://yunyitai.com" target="_blank">97Ƶ</a>| <a href="http://gylscm.com" target="_blank">ѹۿ</a>| <a href="http://8mav950.com" target="_blank">ѴƬ߹ۿ</a>| <a href="http://xsdjiagu.com" target="_blank">AVԴ߹ۿ</a>| <a href="http://www-9970.com" target="_blank">޾Ʒ</a>| <a href="http://172pk.com" target="_blank">þþƷAvӰƬ</a>| <a href="http://bisi666.com" target="_blank">йŮ69ٸ</a>| <a href="http://khushkhush.com" target="_blank">ִӲִˬƵ</a>| <a href="http://www-63228.com" target="_blank">ɫվ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>