日期:2014-05-18  浏览次数:20735 次

问一个小问题,关于JSP和servlet的。
由于刚看这方面的知识不久。对JSP和servlet不是很了解,心中充满疑虑。


我发现目前自己所用servlet,无非就是通过request获取数据,传递数据,response写出数据,设置一些页面属性。
而在JSP里,这些东西全部有,而且有一个新的page域。通过该域能够更加智能化的操作这些request,response,session等。


是不是JSP完全可以完成servlet所能够做的所有事情呢。


servlet里是直接在service里写代码完成各种操作。而Jsp里通过在<% %>也可以写代码,同样的功能也能够完成。


servlet有些什么事情,是JSP不能做的呢。
或者JSP完成任务,相对servlet,会给服务器带来更大的负担么?




------解决方案--------------------
jsp本身就是servlet,当你在web容器中部署好项目的时候,第一次访问jsp页面,servlet容器(例如tomcat)就会把该jsp页面生成servlet,可在tomcat目录下的work下的catalina下查看,会生成对应的servlet文件。第二次访问就是直接访问该servlet,该servlet会把jsp转换成的html代码一行行打到客户端的浏览器上。jsp其实就是为了简化servlet的前端编程。
------解决方案--------------------
以前是没有JSP的,后来软件理论成熟,EE强调采用MVC架构模式,分层治之,利于维护和复用。jsp负责表现层,主要用来展示页面效果,而且方便修改,还可以使用功能强大的标签。servlet负责控制层,主要负责根据request请求,控制后台代码执行。
------解决方案--------------------
jsp的实质就是servlet。sun公司之所以要弄出这两个东西来就是为了把分工更加明确化,具体化。servlet一般处理请求,充当控制器,学了struts2你就明白了,而jsp更加擅长用于显示,你想一下如果servlet里面一大堆的out.print语句,维护起来多头疼啊,所以用jsp来显示页面,servlet处理一些逻辑方面的事,他两互补,嘿嘿
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

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

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

我感觉LZ的意思是想说拿个单独的JSP做控制器呢


恩,我是想知道,用JSP做控制器,有什么不好的地方呢。

难以调试,不好维护,等等等等。。。。。。。。。。