JSP和Servlet有哪些相同点和不同点?他们之间的联系是什么?
1.相同点: JSP和Servlet都可以用于接收客户端请求、处理请求,并做出响应。

2.不同点:

(1) Servlet更适合处理逻辑,不适合作数据展示(即响应页面)

(2) JSP更适合展示数据,不适合处理逻辑

(3) Servlet没有内置对象、JSP中有内置对象

(4) 在MVC设计模式中,Servlet属于控制器(Controller),JSP属于视图(View)

3.两者之间的联系:

JSP在一次被访问时,JSP引擎会对JSP进行编译,编译后就变成了Servlet,本质上就是一个Servlet。

3.3描述Servlet调用过程


(1)浏览器向服务器发送请求(例如地址为:http://localhost/day13/TestServlet)

(2)服务端通过请求解析出浏览器访问的是哪一台主机(例如:localhost)

(3)服务端通过请求解析出浏览器访问的是哪一个WEB应用(例如:/day13)

(4)再通过请求解析出浏览器访问的是哪一个资源(例如:/TestServlet)

(5)如果该Servlet是第一次被访问,服务器会加载Servlet类,并创建该类的实例.

(6)调用Servlet的init方法进行初始化操作(服务器调用init()).

(7)在处理请求之前,创建代表请求的request对象和代表响应的response对象,传递给service方法。

(8)调用Servlet的service方法处理请求。将需要响应的数据写入response对象中

(9)服务器取出response中保存的数据,按照Http协议的格式发送给浏览器,响应完毕!

3.4描述Servlet生命周期
Servlet在第一次被访问时创建Servlet实例,创建之后服务器会立即调用init方法进行初始化的操作,创建之后,Servlet实例会一直驻留在服务器的内存中,为后续的请求服务. 只要有请求来访问这个Servlet,服务器就会调用service方法来处理请求,直到服务器关闭,或者WEB应用被移出容器,随着WEB应用的销毁,Servlet实例也会跟着销毁,在销毁之前服务器会调用destroy方法进行善后的处理。

3.5转发和重定向的区别(即forward和redirect的区别)?
(1)转发是同一个WEB应用内部资源之间的跳转,而重定向既可以是同一个WEB应用内部资源的跳转,也可以是不同的WEB应用或者不同的虚拟主机中资源的跳转.

(2)转发是一次请求,而重定向是两次请求

(3)转发前后地址栏的地址不会发生变化,而重定向前后地址栏地址会发生变化.

(4)转发前后的request对象是同一个,而重定向前后的request对象不是同一个.

3.6描述四大域对象的特征
1、PageContext域

(1)生命周期:开始访问JSP页面时创建PageContext对象,访问JSP页面结束时销毁PageContext对象

(2)作用范围:在整个JSP页面中

(3)主要功能:在整个JSP页面中实现数据的共享。

2、request域

(1)生命周期:一次请求开始时创建request对象,一次请求结束时销毁request对象。

(2)作用范围:在整个请求链中

(3)主要功能:在整个请求链中实现数据的共享

3、session域

(1)生命周期:

创建: 当第一次调用request.getSession()方法时将会创建session对象.

销毁:session分为三种情况:

a)超时销毁: 如果超过30分钟不操作session,session将会超时销毁.

b)自杀: 当调用session.invalidate()方法时会立即销毁session

c)意外身亡: 当服务器非正常关闭时,session会销毁! 当服务器正常关闭时,session将会以文件的形式保存在tomcat服务器work目录下

(2)作用范围:在整个会话范围内

(3)主要功能:在整个会话范围内实现数据的共享

4、ServletContext域

(1)生命周期:服务器启动WEB应用被加载之后立即创建ServletContext对象,服务器关闭或WEB应用被移出容器,销毁ServletContext对象。

(2)作用范围:在整个WEB应用中

(3)主要功能:在整个WEB应用范围内实现数据的共享

3.7 JSP的九大隐式对象是哪九个?
page、requeset、response、application(ServletContext)、config(ServletConfig)、session(HttpSession)、exception、out、pageContext
 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐