问一个小问题,关于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处理一些逻辑方面的事,他两互补,嘿嘿
------解决方案--------------------
难以调试,不好维护,等等等等。。。。。。。。。。