欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

撩课-Java每天5道面试题第8天

程序员文章站 2022-03-30 17:52:15
71.jsp有哪些内置对象?作用分别是什么? 72.jsp有哪些动作?作用分别是什么? 73.JSP中动态INCLUDE与静态INCLUDE的区别? 74.说一说Servlet的生命周期? 75.说说JSP 的生命周期? ......

71.jsp有哪些内置对象?作用分别是什么?

page,
pagecontext,
request,
response,
session,
application,
out,
config,
exception

page指的是jsp被翻译成servlet的对象的引用.

pagecontext对象可以用来获得其他8个内置对象,
还可以作为jsp的域范围对象使用.
pagecontext中存的值是当前的页面的作用范围

request代表的是请求对象,
可以用于获得客户机的信息,
也可以作为域对象来使用,
使用request保存的数据
在一次请求范围内有效。

session代表的是一次会话,
可以用于保存用户的私有的信息,
也可以作为域对象使用,
使用session保存的数据在一次会话范围有效

application:代表整个应用范围,
使用这个对象保存的数据
在整个web应用中都有效。

response是响应对象,
代表的是从服务器向浏览器响应数据.

out:jspwriter是用于
向页面输出内容的对象

config:指的是servletconfig
用于jsp翻译成servlet后 
获得servlet的配置的对象.

exception:在页面中设置iserrorpage=”true”,
即可使用,
是throwable的引用.用来获得页面的错误信息。

 

72.jsp有哪些动作?作用分别是什么?

jsp:include:
在页面被请求的时候引入一个文件。

jsp:usebean:
寻找或者实例化一个javabean。

jsp:setproperty:
设置javabean的属性。

jsp:getproperty:
输出某个javabean的属性。

jsp:plugin:
根据浏览器类型为java插件生成object或embed标记。

jsp:forward:
把请求转到一个新的页面。

 

73.jsp中动态include与静态include的区别?

1. 静态include的结果是
把其他jsp引入当前jsp,
两者合为一体
动态include的结构是两者独立,
直到输出时才合并
看看jsp生成的java文件就可以知道了

2.正是因为这样,
动态include的jsp文件独立性很强,
是一个单独的jsp文件,
需要使用的对象,
页面设置,都必须有自己创建,
当然,还好它和include
它的页面的request范围是一致的.

而静态include纯粹是把代码
写在外面的一种共享方法,
所有的变量都是可以
和include它的主文件共享
,两者高度紧密结合,
不能有变量同名的冲突.
而页面设置也可以借用主文件的.

 

74.说一说servlet的生命周期?

servlet 的生命周期是有四个阶段:
实例化 –> 
初始化 –> 
请求处理 –> 
销毁

创建 servlet 实例。
web 容器调用 servlet 的 init() 方法,
对servlet 进行初始化。
servlet 初始化后,
将一直存在于容器中,
用于响应客户端请求。
根据客户端的请求方式通过 servlet 中service() 方法
去相应的 goget(),或 dopost() 方法;
web 容器销毁servlet 时,
调用 servlet 的 destroy() 方法,
通常在关闭web容器之时销毁servlet。
servlet 生命周期的三个方法:
​ init()方法:
servlet实例化时调用此方法
​ service()方法:
客户请求和响应调用此方法。
​ destroy()方法:
释放内存,关闭web服务器调用此方法

 

75.说说jsp 的生命周期?

浏览器首先要请求一个以.jsp扩展名结尾的页面,
发起jsp请求,
然后,web服务器读取这个请求,
使用jsp编译器把jsp页面
转化成一个servlet类。
需要注意的是,
只有当第一次请求页面
或者是jsp文件发生改变的时候
jsp文件才会被编译,
然后服务器调用servlet类,
处理浏览器的请求。
一旦请求执行结束,
servlet会把响应发送给客户端。

jsp 的生命周期分为四个阶段:
编译
初始化
执行
销毁