由于刚看这方面的知识不久。对JSP和servlet不是很了解,心中充满疑虑。
我发现目前自己所用servlet,无非就是通过request获取数据,传递数据,response写出数据,设置一些页面属性。
而在JSP里,这些东西全部有,而且有一个新的page域。通过该域能够更加智能化的操作这些request,response,session等。
是不是JSP完全可以完成servlet所能够做的所有事情呢。
servlet里是直接在service里写代码完成各种操作。而Jsp里通过在<% %>也可以写代码,同样的功能也能够完成。
servlet有些什么事情,是JSP不能做的呢。
或者JSP完成任务,相对servlet,会给服务器带来更大的负担么?

解决方案 »

  1.   

    我会告诉你JSP其实就是个servlet吗?!!!!!!!!!!你自己去看下编译后的JSP吧,看看长什么样。
      

  2.   

    我不会告诉你 JSP 是可以完成 Servlet 的所有工作的,但JSP 里面写了那么多的脚本,维护起来就麻烦了。
    业务视图分离。
      

  3.   

    虽然JSP可以完成servlet的功能,个人认为:
    1,做个控制要写一堆<@%=>之类的东西,累不累。。
    2,调试起来不方便,JSP翻译成servlet的工作是服务器帮我们做的,哪里出错了你还得先找到被翻译成的那个Servlet再倒回来找,有效率吗?。。
    3,Servlet还可以隐藏我们的控制代码,只要把.class文件给客户就行了。。
    可能原因还有很多,一时能想到的就这些。。
      

  4.   

    这个我知道啊。就如你说的,JSP编译后是一个servlet,那么其运行性能上是不会有差别的(看你里面的代码写得怎么样了),JSP的出现就是为了让前台html程序员和后台java程序员的工作分开,也就是3楼说的业务视图分离。不然你想想,让你在servlet里面写html代码是多么蛋疼的事情?????
      

  5.   

    这个我知道啊。就如你说的,JSP编译后是一个servlet,那么其运行性能上是不会有差别的(看你里面的代码写得怎么样了),JSP的出现就是为了让前台html程序员和后台java程序员的工作分开,也就是3楼说的业务视图分离。不然你想想,让你在servlet里面写html代码是多么蛋疼的事情?????
    我感觉LZ的意思是想说拿个单独的JSP做控制器呢
      

  6.   

    jsp主要就是拿来做界面的,其实它的本质就是servlet,原理上来说只要一个servlet就可以完成大多数项目的开发,但是用servlet做界面实在太麻烦了,因此出现了jsp
      

  7.   

    jsp本身就是servlet,当你在web容器中部署好项目的时候,第一次访问jsp页面,servlet容器(例如tomcat)就会把该jsp页面生成servlet,可在tomcat目录下的work下的catalina下查看,会生成对应的servlet文件。第二次访问就是直接访问该servlet,该servlet会把jsp转换成的html代码一行行打到客户端的浏览器上。jsp其实就是为了简化servlet的前端编程。
      

  8.   

    以前是没有JSP的,后来软件理论成熟,EE强调采用MVC架构模式,分层治之,利于维护和复用。jsp负责表现层,主要用来展示页面效果,而且方便修改,还可以使用功能强大的标签。servlet负责控制层,主要负责根据request请求,控制后台代码执行。
      

  9.   

    这个我知道啊。就如你说的,JSP编译后是一个servlet,那么其运行性能上是不会有差别的(看你里面的代码写得怎么样了),JSP的出现就是为了让前台html程序员和后台java程序员的工作分开,也就是3楼说的业务视图分离。不然你想想,让你在servlet里面写html代码是多么蛋疼的事情?????
    我感觉LZ的意思是想说拿个单独的JSP做控制器呢恩,我是想知道,用JSP做控制器,有什么不好的地方呢。
      

  10.   

    jsp的实质就是servlet。sun公司之所以要弄出这两个东西来就是为了把分工更加明确化,具体化。servlet一般处理请求,充当控制器,学了struts2你就明白了,而jsp更加擅长用于显示,你想一下如果servlet里面一大堆的out.print语句,维护起来多头疼啊,所以用jsp来显示页面,servlet处理一些逻辑方面的事,他两互补,嘿嘿
      

  11.   

    这个我知道啊。就如你说的,JSP编译后是一个servlet,那么其运行性能上是不会有差别的(看你里面的代码写得怎么样了),JSP的出现就是为了让前台html程序员和后台java程序员的工作分开,也就是3楼说的业务视图分离。不然你想想,让你在servlet里面写html代码是多么蛋疼的事情?????
    我感觉LZ的意思是想说拿个单独的JSP做控制器呢恩,我是想知道,用JSP做控制器,有什么不好的地方呢。
    难以调试,不好维护,等等等等。
      

  12.   

    JSP也就是编译成servlet的,不够java代码很少写在jsp页面,那个还是2003年左右干的事情,现在基本上都分开了,写在一起维护量太大