1、request cookie session application的区别
作用域:
request:HttpRequest开始到结束这段时间,在当前请求中有效。
cookie:正常的cookie的作用域是在一个目录下,可以通过setDomain方法设置作用域。
session:HttpSession开始到结束这段时间,在当前会话中有效。
application:服务器启动到关闭这段时间,所有应用程序中有效。
生命周期:
request:生命周期较短,每个线程访问Web组件都会创建一个新的请求。
cookie:默认没有有效时长,当浏览器关闭就会失效,可以设置有效时长。
session:默认时间是30分钟,可以设置会话时间,生命周期比request长。
application:容器启动时创建,容器关闭时销毁,生命周期很长。
2、forward与redirect的区别
同:forward与sendRedirect都是将响应重定向到其他的资源上。
异:forward是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址,将请求对象转发到下一个资源,效率高;redirect是完全的跳转,浏览器将会得到请求的链接,可以看到转向后的地址,而且生成一个新的请求,效率低。
2、response:HttpServletResponse类型的响应对象,通过HttpServletResponse可以获得响应信息。
3、session:HttpSession类型的会话对象,通过HttpSession可以获得其存储的属性或对象。
4、application:ServletContext类型的上下文对象,通过ServletContext可以传递信息。
5、out:JspWrite类型的对象,JSP中调用JspWrite的方法向客户端输出内容。
6、config:ServletConfig类型的对象,通过ServletConfig可以得到Servlet中的初始化参数。
7、exception:Throwable类型的对象,当JSP页面被指定为错误页面时才有exception这个内置对象。
8、page:指代当前类的对象,即this。
9、pageContext:PageContext类型的对象,很多内置对象通过pageContext获取。
4、EL的内置对象
2个与请求参数相关的内置对象。
param:用来输出请求的参数的值,格式为${param.请求参数名字}。
paramValues:用来获取一对多的参数值,返回一个数组。
4个与属性相关的内置对象
pageScope(返回页面相关的属性值)、requestScope(请求相关的属性值)、sessionScope(会话相关的属性值)、applicationScope(上下文相关的属性值)。
4个其他对象
cookie:用来获取cookie的值。
initParam:用来输出上下文参数的值。
header:输出某个请求头的值。
hearValues:输出一个请求头的数组。
pageContext对象
pageContext:PageContext类型的对象,很多内置对象通过pageContext获取。
5、servlet的生命周期
Servlet是一个多线程单实例的类。
初始化:客户端第一次访问Servlet,或容器加载应用(<load-on-startup>),容器调用Servlet类的构造方法,实例化一个对象,然后对Servlet进行初始化,先调用init(ServletConfig)方法,再调用init()方法。
提供服务(客户端访问):Servlet.service(ServletRequest,ServletResponse)方法-->将请求与响应转换成HttpServletRequest,HttpServletResponse对象,HttpServlet.service(HttpServletRequest,HttpServletResponse)-->将请求方法转发给对应的doxxx方法,HttpServlet.doxxx(HttpServletRequest,HttpServletResponse)。
销毁:Servlet提供服务结束后一段时间后,容器会将Servlet实例销毁(销毁前容器先调用Servlet接口中的destroy方法)。
6、自定义标签的步骤
引入自定义标记库:将标准库相关文件导入到当前工程中,标记库主要内容即tld文件盒标记处理器类。
在jsp文件中使用taglib指令:制定需要使用标记库的tld文件的uri,同时指定一个前缀字符串区分不同tld文件中的可能崇明的标记,一个JSP中如果引入多个uri,每个uri的前缀名不能重复。
在JSP文件中通过taglib中定义的前缀,调用tld中的标记
7、JSP有哪些动作,作用是什么
forward:在JSP页面中进行请求转发,类似Servlet中调用的RequestDispatcher的forward方法进行请求转发。
include:在JSP页面中进行动态包含,类似在Servlet中调用RequestDispatcher的include方法进行动态包含(可以传递请求参数)。
param:传递参数,通常作为forward与include的自动作来传递参数。
userBean:使用JavaBean对象,对JavaBean对象的构造并将对象存储为page、request、session、application四种scope中的一个scope内的属性。
setProperty:对JavaBean对象的属性赋值,替代调用JavaBean的setxxx方法。
getProperty:得到JavaBean对象的属性值,替代调用JavaBean的getxxx方法。
作用域:
request:HttpRequest开始到结束这段时间,在当前请求中有效。
cookie:正常的cookie的作用域是在一个目录下,可以通过setDomain方法设置作用域。
session:HttpSession开始到结束这段时间,在当前会话中有效。
application:服务器启动到关闭这段时间,所有应用程序中有效。
生命周期:
request:生命周期较短,每个线程访问Web组件都会创建一个新的请求。
cookie:默认没有有效时长,当浏览器关闭就会失效,可以设置有效时长。
session:默认时间是30分钟,可以设置会话时间,生命周期比request长。
application:容器启动时创建,容器关闭时销毁,生命周期很长。
2、forward与redirect的区别
同:forward与sendRedirect都是将响应重定向到其他的资源上。
异:forward是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址,将请求对象转发到下一个资源,效率高;redirect是完全的跳转,浏览器将会得到请求的链接,可以看到转向后的地址,而且生成一个新的请求,效率低。
3、JSP的内置对象
一共九大内置对象
1、request:HttpServletRequest类型的请求对象,通过HttpServletRequest可以获得请求信息。2、response:HttpServletResponse类型的响应对象,通过HttpServletResponse可以获得响应信息。
3、session:HttpSession类型的会话对象,通过HttpSession可以获得其存储的属性或对象。
4、application:ServletContext类型的上下文对象,通过ServletContext可以传递信息。
5、out:JspWrite类型的对象,JSP中调用JspWrite的方法向客户端输出内容。
6、config:ServletConfig类型的对象,通过ServletConfig可以得到Servlet中的初始化参数。
7、exception:Throwable类型的对象,当JSP页面被指定为错误页面时才有exception这个内置对象。
8、page:指代当前类的对象,即this。
9、pageContext:PageContext类型的对象,很多内置对象通过pageContext获取。
4、EL的内置对象
2个与请求参数相关的内置对象。
param:用来输出请求的参数的值,格式为${param.请求参数名字}。
paramValues:用来获取一对多的参数值,返回一个数组。
4个与属性相关的内置对象
pageScope(返回页面相关的属性值)、requestScope(请求相关的属性值)、sessionScope(会话相关的属性值)、applicationScope(上下文相关的属性值)。
4个其他对象
cookie:用来获取cookie的值。
initParam:用来输出上下文参数的值。
header:输出某个请求头的值。
hearValues:输出一个请求头的数组。
pageContext对象
pageContext:PageContext类型的对象,很多内置对象通过pageContext获取。
5、servlet的生命周期
Servlet是一个多线程单实例的类。
初始化:客户端第一次访问Servlet,或容器加载应用(<load-on-startup>),容器调用Servlet类的构造方法,实例化一个对象,然后对Servlet进行初始化,先调用init(ServletConfig)方法,再调用init()方法。
提供服务(客户端访问):Servlet.service(ServletRequest,ServletResponse)方法-->将请求与响应转换成HttpServletRequest,HttpServletResponse对象,HttpServlet.service(HttpServletRequest,HttpServletResponse)-->将请求方法转发给对应的doxxx方法,HttpServlet.doxxx(HttpServletRequest,HttpServletResponse)。
销毁:Servlet提供服务结束后一段时间后,容器会将Servlet实例销毁(销毁前容器先调用Servlet接口中的destroy方法)。
6、自定义标签的步骤
引入自定义标记库:将标准库相关文件导入到当前工程中,标记库主要内容即tld文件盒标记处理器类。
在jsp文件中使用taglib指令:制定需要使用标记库的tld文件的uri,同时指定一个前缀字符串区分不同tld文件中的可能崇明的标记,一个JSP中如果引入多个uri,每个uri的前缀名不能重复。
在JSP文件中通过taglib中定义的前缀,调用tld中的标记
7、JSP有哪些动作,作用是什么
forward:在JSP页面中进行请求转发,类似Servlet中调用的RequestDispatcher的forward方法进行请求转发。
include:在JSP页面中进行动态包含,类似在Servlet中调用RequestDispatcher的include方法进行动态包含(可以传递请求参数)。
param:传递参数,通常作为forward与include的自动作来传递参数。
userBean:使用JavaBean对象,对JavaBean对象的构造并将对象存储为page、request、session、application四种scope中的一个scope内的属性。
setProperty:对JavaBean对象的属性赋值,替代调用JavaBean的setxxx方法。
getProperty:得到JavaBean对象的属性值,替代调用JavaBean的getxxx方法。