呵呵,要想你刚好错了。
JSP页面要比ASP写起来容易得多,而且各部分分工很明确,很有层次性,查找错误也比较容易,因为很少有特殊的错误,大部分都是你自己的拼写或者格式错误。
我最近正在写一篇关于JSP的文章,到时候介绍给你看看。

解决方案 »

  1.   

    >>恰恰是拼写或者格式错误的查找不知有多难!
    no,no, jsp will be compiled at first running time, every syntax error will be found out.jimmie: you need learn how to write java class ,a sample jsp like this:<%
      String strUserID=request.getParameter("UserID");
      CsdnUser user=new CsdnUser(strUserID);
    %>
    Hi,<%= user.getName() %> ,your current point is <%= user.getPoint() %> !
    So,if you know how to design class CsdnUser , you will be a good web programmer!
      

  2.   

    建议你用一下Jbuilder4.0你就会发觉调试jsp是多么的轻松简单
      

  3.   

    哈哈哈哈,格式错误么,一般有两种情况:
    1、你太粗心了。
    2、你对JSP了解,但并不熟悉。
    不知道对否?
    拼写错误么,一般只有一种情况:粗心大意!没有别的了。
    仔细一点,就肯定没有问题了。
    我也经历过这样的不舒服的。:)
      

  4.   

    为什么要用Jsp+beans+DB呢?大家为什么不用Applet+Servlet+DB?国外的情况是怎么样的?qingrun大虾能不能给个解答?
    小弟以前做PHP+Mysql,觉得很业余!现在做Applet+Servlet+DB,也曾想过用Jsp,但是一上手就觉得不好,而且Chinren的那个用Jsp做的网站老是出服务器出错的问题,所以就放弃了,是我对Jsp有偏见吗?
      

  5.   

    呵呵,我不是什么大虾。:}不过,对JSP还是有一点了解的。
    Chinaren的网站我几乎没有去过,所以,不大清楚具体的情况。我以前承担过一个电子商务网站的开发,就是采用的Jsp+beans+DB,不过,当时我们的平台是IBM的WebSphere,调试和运行都是相当稳定的。
    只要你不修改bean,就不必重新启动服务,只修改JSP时,改完就可以立刻看到结果。
    使用Jsp+beans+DB的原因是JSP本身的一些突出的好处。而这些好处是Applet所无法弥补的,而且目前Applet已经基本上没有人用了(除了一些人练习Java时写一些比较好以外),而且已经有人宣称Applet已经死亡了,因为它的速度实在是让人受不了。
    下面是我写的一篇文字,还没有写完,先给你看看吧,不过,是那ASP和JSP做对比的:
    动态网页制作技术JSP
    JSP的全称是:JavaSever Pages。从这个名字就可以看出来:Java Sever PagesTM(JSP)和 微软的Active Sever Pages(ASP)可能会有很多相似之处。
    这两者在技术方面有许多相似之处。两者都是为基于WEB应用实现动态交互网页制作提供的技术环境支持。某种程度上讲,两者都能够为程序开发人员提供实现应用程序的编制与自带组件设计网页从逻辑上分离的技术。而且两者都能够替代CGI使网站建设与发展变的较为简单与快捷。两者都提供在 HTML 代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。在ASP或JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的HTML页面只依赖于Web服务器,而ASP和JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP和JSP都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。
    从结构上看,两者也有很多相似之处,比如JSP采用了ASP的很多标识符,如:<% %>以及<%= %>。如果你将JSP页面内嵌的Java程序段“看作”是VBScript之类的脚本语言的话,两者在结构上几乎没有什么区别了。因此,有人按照Java Applet的定义方式,将JSP页面中的Java程序片段称为Java Scriptlet。
    注意:这里写的是:“Java程序段”而不是Java脚本语言(Java Script)。1. JSP的定义
    1.1、 JSP的定义和结构
    JSP的定义:
    Java Sever PagesTM是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准,其网址为http://www.Javasoft.com/products/jsp。
    JSP的结构:
    在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。
    1.2、 JavaBean技术
    JSP最吸引人的地方之一就是能够结合JavaBean技术来扩充网页的功能。JavaBean是一种Java类(class),通过封装属性和方法成为具有某种功能或者处理某个业务的对象。
    在JSP网页中,使用<jsp:useBean ... />语法来创建JavaBean对象。
    至于在JSP页面中如何设置、获取JavaBean属性,以及调用JavaBean方法的做法这里就不作详细描述了。2. JSP与ASP的对比
    前面我们说到了两者有很多相似的地方,但是深入探究下去会发现它们很多的差别,其中主要的有以下几点:2.1、JSP的效率和安全性更高
    ASP以源码形式存放,以解释方式运行,每次ASP网页调用都需要对源码进行解释,运行效率不高。另外,IIS的安全漏洞曾使得许多网站源程序大曝光,安全性相当差。
    JSP在执行以前先被编译成字节码(byte code),也就是Servlet文件,字节码由Java虚拟机(Java Virtual Machine)解释执行,比源码解释的效率高;服务器上还有字节码的Cache机制,能提高字节码的访问效率。第一次调用JSP网页可能稍慢,因为它被编译成Cache,以后就快得多了。同时,JSP源程序不大可能被下载,即使JSP文件被下载,对于整个系统来说,损失也是非常小的,因为主要的事务处理和数据库连接部分都放在JavaBean中,而JavaBean程序完全可以放到不对外的目录中,其具体实现的过程和机理在后面进行讨论。2.2、JSP的组件(Component)方式更方便
    ASP通过COM来扩充复杂的功能,如文件上载、发送email以及将业务处理或者复杂计算分离出来成为独立可重复利用的模块。JSP通过JavaBean实现了同样的功能扩充。
    在开发方面,COM的开发远比JavaBean复杂和繁琐,学会ASP不难,但学会开发COM可不简单。而JavaBean就简单多了,JavaBean也就是一种Java的类,所以,一般懂Java的人都可以很轻松的学会写Bean。
    在维护方面,COM必须在服务器上注册,如果修改了COM程序,就必须重新注册,甚至必须关机和重新启动。JavaBean则不需要注册,放在CLASSPATH包含的目录中就行了。如果修改了Bean,WebSphere、JSWDK和Tomcat现在还需要关闭并重新启动Web服务(但不是关机),但在将来的版本中连重新启动服务都不需要了。另外,JavaBean体现了Java完全的OOP,可以针对不同的业务处理功能方便地建立一整套可重复利用的对象库。2.3、JSP页面的编写比ASP的要简单的多
    在ASP页面中,由于所有的商业逻辑和数据库连接都是直接写在页面中的,所以,页面往往比较大,各功能模块没有明确的划分,书写起来比较复杂,排错也不容易。
    但在JSP中则完全不同,JSP页面只负责前端表现,不管事务处理和数据库连接部分。通过简单的对JavaBean的调用来进行,功能模块清晰,排错和维护都非常方便。2.4、JSP的适应平台更广,实现了平台和服务器的独立性
    由于ASP是基于Activex控件技术提供客户端和服务器端的开发组件,因此ASP技术基本上是局限于微软的操作系统平台之上。ASP主要工作环境是微软的IIS应用程序结构,又因Activex对象具有平台特性,所以ASP技术不能很容易地实现在跨平台的WEB服务器的工作。尽管ASP技术通过第三方提供的产品能够得到组件和服务实现跨平台的应用程序,但是Activex对象必须事先放置于所选择的平台中。例如:Unix下有ChiliSoft的插件来支持ASP,但是ASP本身的功能有限,必须通过ASP+COM的组合来扩充,Unix下的COM实现起来则非常困难。
    JSP则不同,它依托于Java的“一次写成,到处使用”的原则,几乎所有平台都可以支持Java,JSP+JavaBean的组合就可以在所有平台下使用,没有应用平台的限制。从一个平台移植到另外一个平台,JSP和JavaBean甚至不用重新编译,因为Java字节码都是标准的与平台无关的。Windows下的JSP网页原封不动地拿到Linux下就能运行起来。
    NT下IIS通过一个插件,例如JRUN、ServletExec、JSWDK、JWDK等都能支持JSP。著名的Web服务器Apache已经能够支持JSP。由于Apache广泛应用在NT、Unix和Linux上,因此JSP有更广泛的运行平台。例如:IBM公司著名的应用服务器产品WebSphere平台,就是采用内置Apache服务器的方式实现的,而且IBM早已宣布WebSphere的下一个版本将支持Linux、Solaris等操作系统,为此,IBM放弃了它的一个著名的电子商务平台Net.Commerce,以及为此而设计的名为Net.date的语言,而全面转向了JSP。2.5、开放的开发过程,开放的原代码
    SUN应用Java社团性过程开发JSP技术。自从1995年,SUN已经用这种开放过程方法同国际Java组织合作开发和修改了Java技术与规范。针对JSP的产品,SUN授权了工具提供商(如Macromedia),结盟公司(如Apache、Netscape),最终用户,协作商及其他。Apache,SUN和许多其他的公司及个人公开成立了一个咨询机构以便任何公司和个人都能免费取得信息。(详见:http://jakarta.apache.org)
    JSP应用程序界面(API)毫无疑问已经取得成功,并将随Java组织不断开放扩大继续完善。相反,ASP技术仅依靠微软本身的推动,其发展是建立在独占的,封闭的开发过程基础之上。2.6、从开发人员的角度来看
    ASP和JSP技术都能使开发者实现通过点击网页中的组件制作交互式的,动态的内容和应用程序的WEB站点。ASP仅支持组件对象模型COM,而JSP技术提供的组件都是基于JavabeansTM技术或JSP标签库。由此可以看出两者虽有相同之处,但其区别是很明显的。表1列出了两种技术在功能上的相似处。表2则列出了其中的主要不同点。
    表1. ASP与JSP在相似功能上的比较
    ASP技术 JSP技术
    兼容传统的数据库 可以(COM) 可以(用JDBC API)
    集成数据源的能力 能工作在任何符合ODBC规范的数据库 能工作在任何符合ODBC规范的数据库,而且能访问符合JDBC技术规范数据库
    组件 COM组件 JavaBEANS,企业级JavaBEANS或扩展的JSP标签
    扩展工具支持 有 有JSP和ASP技术明显的不同点:开发人员在对两者各自软件体系设计的深入了解的方式不同。JSP技术基于平台和服务器的互相独立,输入支持来自广泛的,专门的,各种工具包、服务器的组件和数据库产品开发商所提供。相比之下,ASP技术主要依赖微软的技术支持。
    表2. ASP与JSP的不同点
    ASP技术 JSP技术
    可重用,跨平台组件 没有 JavaBeans,企业级JavaBeans,定制JSP标签
    安全:防范系统崩溃 没有 有
    内存泄露保护 没有 有
    脚本语言 VB Script、JavaScript Java、JavaScript、VB Script(很少用)
    定制标签 没有 有
    说明:JSP中采用JavaScript、VB Script,主要是为了处理前端表现,而真正的脚本语言是Java程序段。VB Script很少被使用主要是因为Netscape浏览器不支持它,为了跨平台的实现,所以一般使用的都是JavaScript,实际上如果只是在IE下使用的话,你用VB Script也没有问题。1)JSP标签可扩充性
    尽管ASP和JSP都使用标签与脚本技术来制作动态WEB网页,但JSP技术能够使开发者扩展JSP标签得以应用,JSP开发者能定制标签库,所以网页制作者可以充分利用与XML兼容的标签技术强大的功能,大大减少对脚本语言的依赖。由于定制标签技术,使网页制作者降低了制作网页和向多个网页扩充关键功能的复杂程度。
    2)JSP跨平台的可重用性
    JSP的开发人员在开发过程中一直关注可重用性。JSP组件(企业JavabeansTM,Javabeans,或定制的JSP标签)都是跨平台可重用的。企业Javabeans组件可以访问传统的数据库,并能以分布式系统模式工作于UNIX和WINDOWS平台。JSP技术的标签可扩充功能为开发人员提供简便的,与XML兼容的接口即共享网页的打包功能使其完全的工业标准化。
    这种基于组件的模式很有效提高应用程序的开发效率,因为这种模式能够使开发人员利用快捷的子组件快速创建模板应用程序,然后再整合一些附加功能以后便可使用。象这样有效的方法在JSP中无处不在,并可将其打包成一个Javabean或一个工业标准化的Javabean组件。JSP技术是用Java语言作为脚本语言的,而ASP网页使用微软的VBScrip或Jscrip。Java是成熟的,强大的,易扩充的编程语言,远优于基于BASIC的脚本语言。如:Java的可执行性优于VBScript或Jscript语言。因为它们利用Java技术并且都被编译为Java Servlets,JSP网页为整个服务器端的Java库单元提供了一个接口来服务于HTTP的应用程序。
    Java使开发人员的工作在其他方面也变的容易、简单。例如:当ASP应用程序在Windows NT系统被怀疑可能会崩溃时,Java能有效的防止系统的崩溃。Java语言通过提供防止内存的泄漏的方法,在内存管理方面也能大显身手。加之,JSP为应用提供了健全的意外事件处理机制。1、 易于维护性
    基于JSP技术的应用程序比基于ASP的应用程序易于维护和管理。
    脚本语言都能很好服务于小的应用程序,但不能适应大型的,复杂的应用程序。因为,Java是结构化的,它比较容易创建和维护庞大的,组件化的应用程序。
    JSP突出的组件技术使修改内容而不影响逻辑或修改逻辑而不影响内容变得很容易实现。
    企业级的Javabeans结构整合了企业逻辑,例如数据库的访问,安全,事务完整性,及独立性即独立于应用程序。
    因为JSP技术是一种开放的,跨平台的结构,因此,WEB服务器,平台,及其他的组件能很容易升级或切换,且不会影响JSP基本的应用程序。这一特点使JSP能够适用现实世界的各种WEB应用程序不断的变化和发展。2、企业产品的多样性
    Java2平台即企业版(J2EE)是适用于多企业应用程序的Java结构,作为J2EE的部分,JSP网页可访问所有J2EE的组件,包括Javabeans,企业级Javabeans及Java Servlets。JSP网页都能完全编译成为Servlets,所以它们都享有灵活性的特点和为服务器端Java应用程序。J2EE平台内容不仅包括管理复杂的企业应用程序而且包括事务管理技术和Pooling资源管理技术。JSP网页可以访问标准的J2EE服务,包括:
    &#61548; Java名称和目录界面API
    &#61548; JDBCTM API(与关联的数据库通讯)
    &#61548; JavaMailTM(支持基于Java邮件和消息应用程序的类)
    &#61548; JavaTM 消息服务通过J2EE,JSP网页能够用许多方式同企业系统交互访问。J2EE支持两种CORBA规范的技术:Java IDL和RMI-IIOP。在企业级JavaBEANS技术支持下,JSP网页通过运用高级的,对象映射的方式访问数据库。最终,因为JSP技术是基于Java的开放性过程的产品,因此它能够广泛支持不同提供商提供的工具,WEB服务器和应用程序的服务,这样能够使用户选择最佳的开发方法,选择最适应他们的应用程序开发的工具包,同时,有效地保护用户在代码和人员培训上的投资。3. JSP工作原理
    Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 email 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plugin,无ActiveX,无Java Applet,甚至无Frame。
    这些程序段被编译的结果实际上也是Servlet文件。在服务器端提供服务的Bean也就是Servlet。其具体运行过程如下图所示:注意,如果修改和重新编译了JavaBean程序,则需要关闭和重新启动Web服务器以后修改的结果才会有效。如果仅仅修改JSP文件,则不用重新启动Web服务器。
      

  6.   

    jsp是servlet的扩展,是j2ee的web组件之一,虽然他不能代替servlet,但用于动态html的确不错.现在jbuilder4提供了很好的语法识别和debug功能.国外大多用jsp.现在微软提出c#和asp+的概念,他的推出恐怕还要经过测试,因为我现在比较怀疑微软,因为他的win2000.
      

  7.   

    to qingrun:
       谢谢答复。但是看看现在我们的很多网上商务的网站,客户端没有运算能力,比如诸多的购物车,必须把数量提交到服务器端,让服务器算出价格再返回客户端给用户看,真是不好。我们前一个项目用java Script做了客户端运算,直接算出结果给客户,觉得好很多。但是JS的效率实在是让人不敢恭维,当有二十个数据同时计算的时候,就明显力不从心了。
       换一个角度,现在我们都在说要把公司办在网上,如财务,进销存,ERP等等,需要大量的客户端计算,如果用Applet可以有较高的计算效率(和JS相比),把最后结果传回服务器,而用JSP则和ASP、PHP一样只能通过数据让服务器控制客户端的显示,达不到目的。大虾以为然否?
       最后一个小问题,贵公司北京分院的研究方向主要是……?谢谢。
       
      

  8.   

    说JSP好的同志,大概没有用过PHP和ASP;
    夜郎国的国王也一直以为自己的国家是世界上最大的呢。
      

  9.   

    to gzproger:
    老兄,你刚好说错了。我用过asp,也是从asp走向jsp的。PHP我也了解过,要知道:到目前为止,还没有哪家大公司宣布支持PHP的,PHP连一个标准都没有,何谈它的发展呢?它的免费与Linux有很大的不同的。
    我想:你一定没有用过JSP,否则,你肯定不会说这句话的。to zhou1977:
    你说的有一点问题,使用JSP时,它的脚本语言有两种,(可能你没有看完我的文字,里面有详细的描述)JSP即可以使用Java Script来进行客户端运算,也可以使用Java Scriptlet将数据传送到服务器端进行运算。而且由于Java本身的优点,可以动态的实现客户端与服务器端的负载平衡,也就是说JSP中的一部分工作负载是在客户端进行的。
      

  10.   

    to gzproger:
    那样好,那样不好不是单单看script的,主要是了解其具体的构架,
    asp和jsp都能以组件模式来扩充其自身的功能,而php却只有script,所以php将来一定没戏。
    而asp的组件用com,其复杂程度比java bean大多了,所以我选择jsp
      

  11.   

    同意 qingrun我和你相反是从jsp-java 到asp-vb的,但感觉和你一样,还是jsp好。asp虽然容易编译通过,但后面的错误令人头疼,虽然jsp在runtime会出现很多错误(一般是粗心错误)但我觉得这类错误还是很容易找到并修改的,如果真的出现类似空对象的错误,可以根据提示到即使生成的servlet里面找到,但我一般都是结合加入debug sentence,通过log里的输出来找错的。
      

  12.   

    to zhou1997
    鄙人认为servlet下载时太慢,算在运行时间内和js在客户端运行速度相差无几。根据可否看过microsoft dna 2000构架,虽然我不是很喜欢微软的东西,但是他提出的很多东西还是值得一看的,such as com and com+,将商业逻辑计算放在服务端,首先是出于安全性的考虑,其次是出于瘦客户端的考虑,基于web的商业网站,无法确定客户是何种配置的机器,而且出于安全考虑它可以关掉js,session,cookie,servlet,而放在服务端可以避免这些问题,而且如果他是用组件编写的话,可以轻松的改变商业逻辑并发布。
      

  13.   

    to qingrun
    我没有说JSP不能用js(Java Script)做客户端运算呀?只要是用html语言生成界面的都应该可以用js。
    我是说JS的运算效率太低,应该是纯脚本的缘故,这点比不上Applet。
    我是从PHP走过来的,你说得对,PHP没有支持(遗憾),不过它的特点是简单易学,速度也比较快,听说国外都是个人网站的天下,如果用于个人网站比ASP和JSP都有很大的优势!
      

  14.   

    呵呵
    错了
    servlet==>applet
    错误原因:很久没用applet,都忘了
    :)
      

  15.   

    我用过这几种脚本开发技术,个人还是喜欢asp,特别欣赏asp+。当然,目前我的工作是jsp+servlet,没办法。jsp和asp我觉得区别不是太大(远没有到本质区别的地步,当然了,jsp是编译的,不过再在jvm上解释执行,asp是直接解释执行)。只是,jsp没有好的开发工具,jb4太慢了,我使用piii733+256m+20G,调试就不太方便(很多时候,我使用记事本),虽然我偶尔也使用记事本做asp但是,intedve功能还是让人很喜欢。开发效率有明显的区别。说asp不好,很大程度上事还不够精通,asp和vb一样,上瘦很容易,但精通并不容易。我同样使用对象化的方法开发asp和vb的应用。我真的不想吧时间浪费在琐碎的细节上,更关心问题的特点,逻辑,微软帮助程序员节约了大量的时间。我很感谢vs这样的工具,最近在实验vs.net,感觉好极了,里面新的c#,VB都给人以耳目一新的感觉(可以说完全体现了java的好处,避免了java的坏处)。大家可以去世以是。
      

  16.   

    to lynxliu:
    老兄,你可以试着用Edit plus来编辑JSP页面,只要改一下设定参数就基本上可以OK了。
    我原来就是这样做的。JB4的确很慢。
      

  17.   

    大家去关注一下微软的.NET吧,未来的程序员应该是将更多的精力放在解决问题、分析逻辑上,而不是将精力放在写代码上。这一切也许.NET可以实现!呵呵
      

  18.   

    http://www.csdn.net/develop/read_article.asp?id=1677
    我转贴了一篇关于JAVA的帖子《狂热和许诺》,大家不防去看看,呵呵!
      

  19.   

    to qingrun
    我需要的是语法敏感,是动态调试,是项目管理,是ide。你说的那个软件行吗?
      

  20.   

    qingrun的文章我看了,写了一篇很长的文章来反驳,结果session超时,我好惨呀,全完了,不过,我只说一点,jsp并没有qingrun说得那么好,asp似乎qingrun也没有好好的使用。oop是思想,和语言无关。我同意JamesDT的,sun让我们的注意力离开了问题本身,这不是一个好方向。session时县设长一点呀!!!!!!!!!!!!1
      

  21.   

    SUN公司是典型的红眼病,只是利用人们的反微软情绪而已!
    如果SUN公司真正的是为程序员服务,为什么不将JAVA交付给国际标准化组织管理呢?SUN只是想自己牢牢的控制住JAVA而已,还要推出什么100%纯JAVA,这就是私心!
    Microsoft新推出的C#,已经在和国际化标准组织进行合作了!也许就是当年Netscape和IE之争
    的翻版,呵呵!
      

  22.   

    to lynxliu:
    你如果要一个万能的编译环境的话,那你就等我的这个共享软件出来吧。^_^
    不过,这可是需要一段时间的呦!
      

  23.   

    最主要的好处:JSP的程序员要比ASP的程序员工资高!:)
      

  24.   

    to linger:
    谁说的?“JSP的程序员要比ASP的程序员工资高!”——我怎么不知道?老兄,你能否告诉我在哪里是这样的?:}
      

  25.   

    to qingrun
    至少我们公司是这样的,我也是初学jsp,觉得其实jsp的功能都可以用asp实现,而且ejb也没什么必要,用servelt完全可以实现,只是些八股似的东西,照着生套就行了。有必要这么复杂么?