码迷,mamicode.com
首页 > Web开发 > 详细

jsp和servlet的区别和联系

时间:2018-04-09 21:10:39      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:config   全局   ssi   有一个   error   扩展名   区别   对象   包括   

1.jsp的本质就是servlet,jvm只能识别java的类,不能识别jsp的代码,Web容器将jsp的代码编译成jvm能够识别的java类;

2.jsp工作原理:

  (1)jsp页面在执行的时候会被服务端的jsp引擎转换为servlet(.java);

  (2)jsp引擎调用java编译器,将servlet(.java)编译为class文件,并由java虚拟机解释执行;

  (3)验证这一点:有一个JSP页面Test.jsp,在浏览器地址栏中输入http://localhost:8080/Test.jsp,将会出现执行结果。同时在%CATALINA_HOME%/work/Catalina

   /localhost下多出两个文件:_Test_jsp.java和_Test_jsp.class,他们分别就是Servelet和Class文件。

3.区别:

  (1)servlet的应用逻辑在java文件中,从java代码中动态输出html,并且完全从表示层中的html里分离出来;

  (2)而jsp的情况是,java和html可以组合成一个扩展名为.jsp的文件。jsp侧重于视图,servlet主要用于控制逻辑;

  (3)servlet中没有内置对象,而jsp的内置对象必须通过httpServletRequest和httpServletResponse以及httpServlet对象来获得。

4.servlet生命周期:

  (1)init:servlet在装载时,调用一次init方法(也可以不调用或调用多次;如果不调用,默认调用父类的init方法;重写init方法可以多次调用)

  (2)service:真正处理请求的地方,参数为servlet的请求与响应对象;

  (3)destroy:与init类似,用于清除init中分配的资源。

5.jsp的9大内置对象:

  (1)request:是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包括头信 

   息、系统信息、请求方式以及请求参数等)。request对象的作用域为一次请求。

  (2)response:对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。

  (3)application:可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。与session对象相比,application对象生命

   周期更长,类似于系统的“全局变量”。

  (4)session:由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。

  (5)page:page 对象代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变量,类似于Java编程中的 this 指针。

  (6)pageContext:取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。

  (7)config:取得服务器的配置信息。

  (8)out:用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。

  (9)exception:对象的作用是显示异常信息,只有在包含 isErrorPage="true" 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件

 

 

总结一句话:jsp就是在html里写java代码;servlet就是在java里写html代码。

 

jsp和servlet的区别和联系

标签:config   全局   ssi   有一个   error   扩展名   区别   对象   包括   

原文地址:https://www.cnblogs.com/bobo306/p/8762071.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!