我增回答过类似的问题,现重新拿过来,不知对你是否有用。下面是《JSP Web 编程指南》中写的:
为什么需要的Web框架
如果你研究任何真实的应用程序,将会发现它的组件可以大致分成两类:
• 商业组件
• 应用服务
多数情况下,跨不同的应用来重用商业组件是困难的,因为由商业组件提供的功能可能在其他应用里不需要:它可能是惟一针对你的应用的。然而,应用服务可以在机构里跨应用重用,跟跨机构一样好,因为它们提供的服务对不同类型的应用都有用。这些应用服务可能包括请求路由(对一个MVC结构)、错误处理、以通用的方式产生的客户端脚本和已准备妇的标签库。
任何可以提供这些类型服务,且能通过与商业组件的协作编进你的应用的软件,可以被称为一个Web应用框架。
很多大型的机构开发内部框架,可以在机构内部被不同的应用开发重用。然而,一些大公司同很小的机构一样,没有足够的时间和资源开发一个内部框架,而使用第三方框架产品:不管是商业软件还是开放的免费软件。这个方法的优势是你可以获得已经开发好的和测试过的软件包,因此可以节省时间、金钱和资源。
在本章,我们将学习一个使用最普遍的第三方Web应用框架,Apache Struts框架。接下来的两章,基于学到的知识,用Struts设计和开发一个实际的应用程序。--------------------------------------------------
下面是另一本书《JSP编程指南》写的:
Struts框架中包含了以上这些丛书中讨论过的通用资源,以实用的、可扩展的方式实现了一种良好的软件设计理念,并很好地利用了Servlet和JSP技术。许多人都坚信这一框架今后会被广泛地应用于WEB开发领域中。------------------------------------------------
Struts (org.apache.struts)是一个开放源代码的Web应用框架,基于MVC设计模式,使用servlet和JSP API建立,可以用来构建复杂的Web应用。它允许我们分解一个应用程序的商业逻辑、控制逻辑和表现逻辑的代码,使它的重用性和维护性更好。Struts框架是Jakarta工程的一部分,由Apache软件基金会管理。Struts可以从http://jakarta.apache.org/ struts站点下载。
Struts框架提供以下服务。
• 作为MVC结构中的controller的servlet.
• JSP里用于bean管理、HTML和JavaScript生成、模板处理和流程控制的JSP标签库。
• 用于国际化消息的框架。国际化你的Web应用,意味着你的Web应用在使用时可以让用户以喜爱的语言显示。这意味着你需要创建一个应用资源文件,包含每种语言的信息。
• 一个JDBC的实现来定义数据源和数据库连接池。
• 一个通用的的错误和异常处理机制,包括从一个应用程序资源文件读取错误信息。
• XML语法分析。
• 文件上载工具。
• 注册机制。------------------------------------------
在http://expert.csdn.net/Expert/topic/2403/2403813.xml?temp=.0073511中我是这样写的:
....当然,如果你想偷懒,或想分析一下成功Struts项目各个文件配置和编写情况,完全可下载一个Struts开发工具--JSPStudio,内有几种Struts模板,包括Struts空的数据库应用模板。另外,只要通过向导输入一个文件名和选择数据源导入字段信息,自动生成所有应用文件和代码,包括数据库连接DAO、JSP分页表格(表格上除了有分页之外,还可选择地包含有更新、删除、连接功能),完成一个数据库表的应用不用自己写一行代码,就可实现数据库的查找分页显示、更新、删除、连接等功能。
另外,还可实现Struts标签的可视化设计,和FrontPage用法很相似。
JSPStudio下载地址ftp://162.105.80.43/incoming/
如果进入ftp时提示输入密码,说明当前连接用户已满,请你在连接用户少时再去下载,不用用户名和密码。
为什么需要的Web框架
如果你研究任何真实的应用程序,将会发现它的组件可以大致分成两类:
• 商业组件
• 应用服务
多数情况下,跨不同的应用来重用商业组件是困难的,因为由商业组件提供的功能可能在其他应用里不需要:它可能是惟一针对你的应用的。然而,应用服务可以在机构里跨应用重用,跟跨机构一样好,因为它们提供的服务对不同类型的应用都有用。这些应用服务可能包括请求路由(对一个MVC结构)、错误处理、以通用的方式产生的客户端脚本和已准备妇的标签库。
任何可以提供这些类型服务,且能通过与商业组件的协作编进你的应用的软件,可以被称为一个Web应用框架。
很多大型的机构开发内部框架,可以在机构内部被不同的应用开发重用。然而,一些大公司同很小的机构一样,没有足够的时间和资源开发一个内部框架,而使用第三方框架产品:不管是商业软件还是开放的免费软件。这个方法的优势是你可以获得已经开发好的和测试过的软件包,因此可以节省时间、金钱和资源。
在本章,我们将学习一个使用最普遍的第三方Web应用框架,Apache Struts框架。接下来的两章,基于学到的知识,用Struts设计和开发一个实际的应用程序。--------------------------------------------------
下面是另一本书《JSP编程指南》写的:
Struts框架中包含了以上这些丛书中讨论过的通用资源,以实用的、可扩展的方式实现了一种良好的软件设计理念,并很好地利用了Servlet和JSP技术。许多人都坚信这一框架今后会被广泛地应用于WEB开发领域中。------------------------------------------------
Struts (org.apache.struts)是一个开放源代码的Web应用框架,基于MVC设计模式,使用servlet和JSP API建立,可以用来构建复杂的Web应用。它允许我们分解一个应用程序的商业逻辑、控制逻辑和表现逻辑的代码,使它的重用性和维护性更好。Struts框架是Jakarta工程的一部分,由Apache软件基金会管理。Struts可以从http://jakarta.apache.org/ struts站点下载。
Struts框架提供以下服务。
• 作为MVC结构中的controller的servlet.
• JSP里用于bean管理、HTML和JavaScript生成、模板处理和流程控制的JSP标签库。
• 用于国际化消息的框架。国际化你的Web应用,意味着你的Web应用在使用时可以让用户以喜爱的语言显示。这意味着你需要创建一个应用资源文件,包含每种语言的信息。
• 一个JDBC的实现来定义数据源和数据库连接池。
• 一个通用的的错误和异常处理机制,包括从一个应用程序资源文件读取错误信息。
• XML语法分析。
• 文件上载工具。
• 注册机制。------------------------------------------
在http://expert.csdn.net/Expert/topic/2403/2403813.xml?temp=.0073511中我是这样写的:
....当然,如果你想偷懒,或想分析一下成功Struts项目各个文件配置和编写情况,完全可下载一个Struts开发工具--JSPStudio,内有几种Struts模板,包括Struts空的数据库应用模板。另外,只要通过向导输入一个文件名和选择数据源导入字段信息,自动生成所有应用文件和代码,包括数据库连接DAO、JSP分页表格(表格上除了有分页之外,还可选择地包含有更新、删除、连接功能),完成一个数据库表的应用不用自己写一行代码,就可实现数据库的查找分页显示、更新、删除、连接等功能。
另外,还可实现Struts标签的可视化设计,和FrontPage用法很相似。
JSPStudio下载地址ftp://162.105.80.43/incoming/
如果进入ftp时提示输入密码,说明当前连接用户已满,请你在连接用户少时再去下载,不用用户名和密码。
解决方案 »
- JSONObject无法完成实例化。。。。
- 页面JS中创建了一个Map接收文本框的值,怎样在页面上显示出来值?急急急
- 关于velocity数组访问的问题
- js脚本confirm传递参数
- 在tomcat工程停止时运行一个servlet
- 如何在JSP中实现关闭页面时自动注销
- 这个hql如何写
- tomcat5.0找不到SERVLET,怎么解决啊?
- 做了个添加用户的页面,有一个用户名和密码和提交按钮当点提交时怎样调用我的BEAN呢在线等侍QQ25096679
- 最新版本的tomcat 和 resin 各是哪个版本啊??
- 本公司诚聘java,jsp程序员,有意者请与我们联系
- 手工配置JBOSS遇到的问题,求救
• JSP里用于bean管理、HTML和JavaScript生成、模板处理和流程控制的JSP标签库。
• 用于国际化消息的框架。国际化你的Web应用,意味着你的Web应用在使用时可以让用户以喜爱的语言显示。这意味着你需要创建一个应用资源文件,包含每种语言的信息。
• 一个JDBC的实现来定义数据源和数据库连接池。
• 一个通用的的错误和异常处理机制,包括从一个应用程序资源文件读取错误信息。
• XML语法分析。
• 文件上载工具。
• 注册机制对framework有点感觉了,但是觉得实现起来比jsp的taglib麻烦许多!
In another word,taglib just a little part of the tech in the MVC framework.
MVC is framework.
Taglib just a tag library but nothing else.
We also can throw away taglib when use MVC framework.
谢谢你的回答!
我知道taglib仅仅是framework的一部份,但是我就是想问问我只用taglib是不是也可以实现MVC的显示和业务分离?比如我作了个BBS 用的jsp+servlet+bean 但由于给客户用的经常要改界面和颜色,为了美工和自己方便,我就想把页面和代码彻底分开,所以我用了taglib ,taglib理解比较容易,做起来还是比原来页面镶嵌代码麻烦很多。如果我用framework 比如struts是否比自己定义taglib方便呢?我特地看了一下struts觉得结构和taglib差不多呀!当然struts有很多现成的东西可以用
tag是用来完成页面显示的,目的是为了在JSP页面上减少Java代码.本来JSP更加适合于只懂一点点Java知识的人使用,但是我觉得现在的人们把好多东西都在JSP里面实现,包括好多书上也是.这本来就是误导,如在JSP页面用JDBC连接数据库.JSP只是用来把应用程序员提供给你的用JavaBean捆绑的数据显示出来而已.假如要显示的数据比较复杂,而复用性又较高的,就可以作成Tag供美工人员使用.
Struts类的框架是用Servlet程序实现的,他关键实现的是显示逻辑,如页面之间该怎么跳转,还有就是从如EJB等DAO中读出数据转发给JSP页面.
MVC, Taglib would only existing in the jsp page.(View)
The servlet charge all of the business delegation.Quote:
比如我作了个BBS 用的jsp+servlet+bean 但由于给客户用的经常要改界面和颜色,为了美工和自己方便,我就想把页面和代码彻底分开,所以我用了taglib ,taglib理解比较容易,做起来还是比原来页面镶嵌代码麻烦很多。如果我用framework 比如struts是否比自己定义taglib方便呢?我特地看了一下struts觉得结构和taglib差不多呀!当然struts有很多现成的东西可以用The damn customer always enjoy changing the layout.It is easy to revise if u use xml binding with the xsl.At least,I always using this tricky way.All of the web form representing by the tab-lib,as I said,u also may use jsp code instead of it. It just like a normal formbean.But why we do these,strut has provide the full approach.
We needn't write the exception controller,the specified web form bean,national properties reader and front controller .Follow the simple rule and implement the specified interface of strut,it really save our time. Empirically, it doesn't reduce the lines of code.Frankly, there are the weakness while using strut,caze we still follow,and follow.
The problem set for us is not the tech of strut so much as our creation in the IT world.Any way,as a wage earner,let it be................
确实是这样的,bdsc() 说得不错从企业运用的效率来说重复的,浪费很不好的。
to dmhorse(dmhorse)
谢谢你的回复
Taglib would only existing in the jsp page.(View) 我觉得不太对,也许我水平低,我觉得taglib含很多的业务逻辑,不仅仅页面显示。
to shangqiao(伤桥)
谢谢你的回复还有大侠高论没有呀?
今天结贴!
taglib也可以实现很多逻辑处理的,比如一个jsp页面,需要login之后的用户才能够访问,
如果用jsp代码,则需要if else这样的判断,但是如果用taglib,则很方便。下面是copy自 大富翁论坛坛主yysun两年前写的关于taglib序列文章的一段:
1.1 需要用户验证的网页。
• 不用自定义标记的做法
<jsp:useBean id="userM" scope="session" class="com.delphibbs.users" />
<%
if (userM.chkUserStatus() != 1) {
response.sendRedirect(response.encodeRedirectUrl("login.jsp "));
}
else {
%>
…….. 网页 html 内容
<%
}
%>• 使用自定义标记的做法
<%@ taglib uri="delphibbs" prefix="delphibbs" %>
<delphibbs:login >
…….. 网页 html 内容
</delphibbs:login>
特别是我在写了xsl:XXX这样的标记,以及在xsl里自己定义扩展函数之后,感觉到taglib的功能非常强大,只是现在才刚开始学习。struts也不过是自己定义了一套taglib啊,它把MVC的C这部分由用户扩展来完成具体实现。
现在用taglib的人好象不是很多,相关的资料也少。我经过几天收集,才只找到 IBM的 JSP最佳实践 和 JSTL 入门序列文章,和yysun的taglib序列文章。以及其它一些零散的资料。特别是看到yysun的文章是两年前就写出来了的,对于国内对新技术的掌握,心里的感慨...... 唉......以上个人浅见,还请大家指点。
刚才仔细看了一下,yysun关于taglib的序列文章是在2000年10月份写成的。应该是3年前了,呵呵
For example<!--Record List-->
<logic:iterate id="waveRecord" name="waveRecords" type="IAD.Bean.WaveRecord">
<tr>
<td><a href="http://<bean:write name="waveRecord" property="ip"/>/rrp/<bean:write name="waveRecord" property="folder_name"/>/<bean:write name="waveRecord" property="filename"/>">Download</a></td>
<td><bean:write name="waveRecord" property="staffName"/></td>
<td><bean:write name="waveRecord" property="inPhone"/></td>
<td><bean:write name="waveRecord" property="outPhone"/></td>
<td><bean:write name="waveRecord" property="file_date" format="yyyy-MM-dd HH:mm:ss"/></td>
<td><bean:write name="waveRecord" property="status"/></td>
<logic:equal name="searchRecordForm" property="isRaw" value="false">
<td>
<bean:write name="waveRecord" property="salesCallLog"/>
</td>
</logic:equal>
</tr>
</logic:iterate>logic:equal indicates that the tag lib present the logic for the jsp to the viewer.But the business logic still hidden in the background.
and never try it.Any one has exp in this realm?
商业逻辑肯定不能够单靠taglib来实现,但是taglib能够解决一些简单的控制逻辑,比如权限判断,页面跳转之类。个人理解:如同javascript,好的业务逻辑的实现不可能只靠javascript在浏览器端的表单验证之类,也不可能完全都在服务器端进行数据的合法性判断。而两边同时都实现。taglib也是这样,光靠taglib来实现所有的业务逻辑不太可能,但是可以把一部分用taglib实现起来比较方便的东西,交给taglib来完成啊。
比如xsl规范自己提供的一些函数已经能够满足很多需要了,但是更复杂的东西,可以通过xsl支持的扩展函数来实现。taglib一样,taglib也不是能够满足所有的要求,但是很多地方如果用taglib来实现的话。
jsp将显得更简洁,可读性也很高。有空的可以看看:ftp://new:[email protected]/datanew/delphibbs.war
//参考连接 http://www.playicq.com/dispdocnew.php?id=4359
是DelphiBBS的JSP实现(未经授权).作者就是使用JSTL1.0来改写的原来由asp写出来的程序。完全由taglib来实现的代码,读起来另有一种感觉:)
我的感觉 framework 是建立在taglib之上的,功能比taglib强大。
我使用taglib的初衷是为了美工能方便的修改显示,业务逻辑这一块能重用,目前taglib能满足我的需求,也许是水平低才觉得满足了我的需求,准备仔细研究一下struts看看究竟是谁方便。
再次感谢!
希望下次还能得到大家的帮助!