惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
博客园 - 聂微东
Application and Cybersecurity Blog
Application and Cybersecurity Blog
MyScale Blog
MyScale Blog
罗磊的独立博客
H
Help Net Security
L
LangChain Blog
T
Threat Research - Cisco Blogs
量子位
S
Securelist
Last Week in AI
Last Week in AI
L
Lohrmann on Cybersecurity
T
The Exploit Database - CXSecurity.com
P
Privacy International News Feed
The Hacker News
The Hacker News
Vercel News
Vercel News
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
Cybersecurity and Infrastructure Security Agency CISA
T
The Blog of Author Tim Ferriss
T
Threatpost
Security Latest
Security Latest
P
Palo Alto Networks Blog
Microsoft Security Blog
Microsoft Security Blog
NISL@THU
NISL@THU
F
Full Disclosure
WordPress大学
WordPress大学
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Stack Overflow Blog
Stack Overflow Blog
C
Check Point Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Heimdal Security Blog
J
Java Code Geeks
Recorded Future
Recorded Future
Hugging Face - Blog
Hugging Face - Blog
G
GRAHAM CLULEY
Know Your Adversary
Know Your Adversary
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
阮一峰的网络日志
阮一峰的网络日志
U
Unit 42
B
Blog RSS Feed
月光博客
月光博客
C
Cisco Blogs
V
Visual Studio Blog
D
DataBreaches.Net
H
Hacker News: Front Page
博客园 - 叶小钗
N
News and Events Feed by Topic
爱范儿
爱范儿
A
Arctic Wolf

博客园 - goodbaby

辞职了 爱上无聊 读程序有感 把网通的网关接口程序重写了 深深陷入困境 我的AOP初步 静态和动态控件回递数据的处理差别 membership and roleship 我的asp.net 2.0初体验 一点技术,一点生活 简单体验多层应用 基于服务的架构 变化,感触 又可以进自己的blog了 浅谈asp.net UI 浅谈验证码 浅谈基于角色的安全 浅谈数据库里的自引用 简单的URL重写
我的技术和观点
goodbaby · 2005-07-28 · via 博客园 - goodbaby
 

我的asp.net vs jsp,以前用了很久的asp.net,现在因为工作需要使用jsp,感觉jsp还是传统的以提交然后取直方式处理数据的,这样的好处是可以获取比较方便的低级别处理,但同时缺少好的一些封装机制,使一些东西实现起来需要做很多重复的事情。Asp.net的良好的面向对象处理方式在这点是感觉很好,同时他影藏了一些低级别的处理也带来了一些不便。但asp.net 更面向对象,而且他的模型是很不同的。在jsp中你用使用request.getParameter(),这样的东西来得到直,感觉不大舒服,而且不支持继承。在一个公共任务分页中,asp.net里我把分页逻辑写成一个用户控件,jsp里有对等的<jsp:include>但是两者最大的区别在与用户控件是一个对象,我可以以面向对象的方式设置这个对象,我以前的做法是把业务对象实现一个分页接口,这样可以是前面的代码减少很多。

SpContrl.PageSize = 15;

SpContrl.SearpatInterface = myBussinessObj;(这里可以是一个业务外观)

Repeater1.DataSource = myBussinessObj.getData(PageIndex,PageSize);

Repeater1.DataBind();

这样完成了页面的分页显示,就简单的几行。

jsp中我要这样:

<jsp:include page="SPage.jsp">

 <jsp:param name="RecordCount" value="<%= RecordCount%>"/>

 <jsp:param name="PageNumConrent" value="<%= PageIndex%>"/>

 <jsp:param name="PageSize" value="<%= PageSize%>"/>

 <jsp:param name="PageName" value="myPage.jsp"/>

 <jsp:param name="ExtraPath" value="<%= "Type=" + myType%>"/>

 </jsp:include>

由于没有代码分离很象面条,但jsp还是很好用的,两者各有各的好处,个人更喜欢asp.netJSF就有点象 asp.net,但好象asp.net先人一步。

Asp.net里的httpmodulejsp里就是filerservlet实现,前端控制器httphandle,  jsp里就是servlet,这两个作为前端控制器和扩展(如: .xxx的访问)。

关于一些基础的架构,目前我还没接触struct,不好说。

有趣的JDBC

由于需要,我不得不把SQL防在string里,不用procedure,但对于相当长的SQL,在string里就出现了一些问题,数据库是SQL ServerSQL中用到了很多的在运算时的参数,这在过程里很好实现,CallStatment(name(???))这样,在 SQL Server里参数是这样@Parameter1

我们知道要一一对其,但一些中间直怎么办,@parameter2要使用多次,怎么去对其,开始出现了很多错,同事也协助我,但还是不行,得出的结论是 jdbc不支持,后来我找到方法这样的,以string方式里很简单

declare @par1

set @par1=?

declare @par2

set @par2=?

这样就象使用过程一样了,不过注意对齐。

关于哑数据对象还是贫血:

一般情况下一些对象应该有他数据很行为,但有的对象没有行为,这种对象叫哑数据对象,有一个程序是这样的,有很多的没有行为的对象,也就是说只有成员变量和一些getter setter方法,仔细阅读代码可以发现,这些对象在其他的类里面被付直,在一些对象里又被取出,但这些对象都有一个共同点就是要被解析成二径制数组。结果在一个类里就有这样的许多方法:a(A)

b(B)

c(C)

。。。。。

a , b, c分别取得A B C的二径制数组处理而且处理方式都是一样: 解析 发送。我的想法是其实a b c都是一个行为,a b c是一个方法,这些A  B C应该以各自的方式返回自己的二径制表示而不是哑数据对象。

象这样 interface myInterface

{

  getBinaryFormat();

}

                 A implements myInterface

{

   getBinaryFormat(){return …};

}

                 B implements myInterface

{

   getBinaryFormat(){return …};

}

                 C implements myInterface

{

   getBinaryFormat(){return …};

}

现在a,b,c整合成一个方法:

myMethod(myInterface obj)

{

   data = obj.getBinaryFormat();

   do same work;

}

对过martin flower的东西就知道,以类来封装数据结构然后写一些方法类来处理这种做法是贫血。Pet Shop被认为是一个反面教材,有人重构了,也可以说重写。有很多想法我说不出来,我感觉我的同事很棒,比我牛多了,好好向他们学习。

我的体会以前我是觉得技术为先但现在是业务驱动技术。

已经学习设计模式和重构一年了,感触颇深,我仍然孜孜不倦。努力向别人学习。