jsp和servlet的区别和联系

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

jsp和servlet的区别和联系
jsp和servlet的区别和联系
jsp和servlet都属于j2ee13规范,servlet是运⾏在服务端的Java程序,动态⽣成web内容,但是如果仅仅使⽤servlet来输出html 则是⼀句⼀句地输出,为开发和维护带来了极⼤的不便。

⽽jsp可以这么理解,可以在html中添加Java代码,所以页⾯渲染结果可以直接使⽤Dreamweaver等编辑器直接更改,更简单快捷,⽽不⽤维护Java类中的代码。

实现了解耦合。

⽽jsp的本质还是servlet,它只不过是利⽤了另外⼀套规则写的servlet,它运⾏也是需要先编译成Java代码,然后进⾏输出的,这些操作都是jsp容器完成的,⽐如⼀个jsp在tomcat中被编译,则会⽣成相应的Java类。

JSP也是servlet,只不过在jsp中是批量渲染代码。

⾸先看看jsp是如何调⽤的:
在tomcat的web.xml配置中:
[html]
1. <servlet>
2. <servlet-name>jsp</servlet-name>
3. <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
4. <init-param>
5. <param-name>fork</param-name>
6. <param-value>false</param-value>
7. </init-param>
8. <init-param>
9. <param-name>xpoweredBy</param-name>
10. <param-value>false</param-value>
11. </init-param>
12. <load-on-startup>3</load-on-startup>
13. </servlet>
[html]
1. <servlet-mapping>
2. <servlet-name>jsp</servlet-name>
3. <url-pattern>*.jsp</url-pattern>
4. </servlet-mapping>
这⾥规定了servlet-name是jsp,根据这个规范,也可以认为jsp实际上就是特殊的servlet。

tomcat启动会在work⽬录下编译jsp,然后⽣成相应的Java类:
⽽编辑这个类:
可以看出jsp继承了HttpJspBase类,⽽这个类⼜继承了HttpServlet类,并且覆盖了service()⽅法。

在HttpServletRequest和HttpServletResponse两个很重要的类创建之后,不再调⽤原来的service()⽅法,进⾏doGet()或者doPost()分发,因为_jspService()对其进⾏了覆盖,所以直接在_jspService()⽅法中⽣成页⾯渲染的代码:
这和原来直接在servlet中写html代码的本质是⼀样的,返回到客户端浏览器进⾏页⾯渲染,所以jsp本质就是servlet,只是表现形式不同。

参考:。

相关文档
最新文档