1.请说明cookie、request、session、application的作用域和声明周期?

并说明它们适用与什么场景?

request的生命周期是一次请求。可以用于JSP表单提交数据。

session会话可以设置它的超时时间,Tomcat中的默认时间为30分钟,session对象的典型应用时用来对用户的身份进行验证,进而进行权限设置。

cookie存放的载体在客户端的浏览器中,生命周期默认时根据服务器返回的Set-Cookie头设置的,共两大类:

会话cookie:浏览器一关闭就清除了。

有过期时间:超过设定的过期时间才会消失。

cookie能使用户在不输入用户名和密码的情况下进入曾经浏览过的一些站点。

application生命周期在整个应用程序中。开始于应用启动,应用停止时被销毁。application对象的最常见的应用时用来统计页面的访问人数或者是记录网站的在线人数。

2.在JSP页面中,能否获得Servlet中request.setAttribute中的值,如果    能获得,可以通过那种方式,如果不能,简述为什么?

Servlet通过转发方式跳转到JSP页面,JSP页面就可以获得request中属性的值。例如:

Servlet代码如下:

request.setAttribute("name","xdl");

request.getRequestDispatcher("/index.jsp").forward(request,response);

JSP代码如下:

<%=request.getAttribute("name") %>

3.JSP内置对象及方法

JSP有9个内置对象:request、response、out、session、pageContext、applicaton、config、page、exception。

(1)request表示javax.servlet.http.HttpServletRequest对象,用于获取客户端提供的数据,包括头信息、客户端地址、请求方式等。主要方法如下:

1)getCookies():返回客户端所有Cookies对象,结果是—个Cookies数组。

2)getSession():返回与请求相关的session。

3)setAttribute(String key,Object obj):设置属性的属性值。

4)getAttribute(String name):返回指定属性的属性值。

5)request.getParameter(String name):获得客户端传送给服务器端的参数值。

6)getCharacterEncoding():返回字符编码方式。

6)getContentType():得到请求体的MIME类型

(2)response表示javax.servlet.http.HttpServletResponse对象,用于对客户端的请求作出动态的响应,向客户端发送数据。主要方法有:

1)addCookie(Cookies c):添加—个Cookie对象,用来保存客户端的用户信息。

2)sendRedirect(String location):把响应发送到另一个位置进行处理。

3)sendError(int):向客户端发送错误的信息。

4)getBufferSize():返回缓冲区的大小。

5)getOutputStream():返回客户端的输出流对象。

6)setContentType(String ContentType):设置相应的MIME类型。

7)setHeader(String name,String value):设置指定名字的HTTP文件头的值如果已经存在则将覆盖已经存在的值。

8)encodeURL(String url):使用sessionld封装URL。如果没有必要封装URL,返回原值。

(3)out对象是javax.servlet.jsp.JspWriter的—个实例,用来向客户端输出各种数据。主要方法如下:

1)print()/println():根据参数类型输出各种类型的数据。

2)flush():输出缓冲区的数据。

3)close():关闭输出流。

4)clear():清除缓冲区里的数据,但不会把数据输出到客户端。

5)getBufferSize():获得缓冲区的大小。

6)clearBuffer():清除缓冲区里的数据,并把数据输出到客户端。

7)getRemaining():获得缓冲区中没有被占用的空间的大小。

8)isAutoFlush():返回布尔值,如果AutoFlush为真,返回true:反之,返回false。

(4)pageContext表示—个javax.servlet.jsp.PageContext对象。它是用于方便存取所有范围的名字空间的对象,并且包装了通用的servlet相关功能的方法。主要方法如下:

1)getOut():返回当前客户端响应被使用的JspWriter流(out)。

2)getSession():返回当前页中的HttpSession对象(session).

3)getPage():返回当前页的Obj ect对象(page)。

4)getRequest():返回当前页的ServletRequest对象(request).

5)getResponse():返回当前页的ServletResponse对象(response)。

6)getException():运回当前页的Exception对象(exception)。

7)getServletConfig():返回当前页的ServletConfig对象(config).

8)getServletContext():返回当前页的ServletContext对象(application).

9)setAttribute(String name,Object attribute):设置属性及属性值。

10)getAttribute(String name,int scope):在指定范围内取属性的值。

11)removeAttribute(String name):删除某属性。

12)release():释放pageContext所占用的资源。

13)forward(String relativeUrIPath):使当前页面重导到另一页面。

14)include(String relativeUrIPath):在当前位置包含另一文件。

(5)session表示—个请求的javax.servlet.http.HttpSession对象。Session用来保存用户的会话信息和会话状态。主要方法如下:

1)setAttribute(String name.Object obj):设置指定名字name的属性值value,并存储在session对象中。

2)getAttribute(String name):获取与指定名字name相联系的属性。

3)invaldate():取消SESSION,使SESSION不可用。

4)getld():返回SESSION创建时JSP引擎为它设的惟-ID号。

5)getCreationTime():返回SESSION创建时间。

6)getLastAccessedTime():返回此SESSION里客户端最近一次请求时间。

7)getMaxlnactivelnterval():返回两次请求间隔多长时间此SESSION被取消。

8)getValueNames():返回—个包含此Session中所有可用属性的数组。

9)removeValue(String name):删除Session中指定的属性。

(6)application表示—个javax,servlet.ServletContext对象。用于用户间的数据共享,可以存放全局变量。主要方法如下:

1)getAttribute(String name):返回给定名的属性值。

2)getAttributeNames():返回所有可用属性名的枚举。

3)setAttribute(String name,Object obj):设定属性的属性值。

4)removeAttribute(String name):删除—属性及其属性值。

5)getServetInfo():返回JSP(Servlet)引擎名及版本号。

6)getReaIPath(String path):返回—虚拟路径的真实路径。

7)getContext(String uripath):返回指定WebApplication的application对象。

8)getResource(String path):返回指定资源(文件及目录)的URL路径。

9)getRequestDispatcher(String uripath):返回指定资源的RequestDispatcher。

(7)config表示—个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。主要方法如下:

1)getServletContext():退回含有服务器相关信息的ServletContext对象。

2)getlnitParameter(String name):返回初始化参数的值。

3)getlnitParameterNames():返回Servlet初始化所需所有参数的权举。

(8)page表示从该页面产生的—个servlet实例,即this。

(9)exception用于处理JSP页面发生的错误和异常。主要方法有:

1)getMessage():返回描述异常的消息。

2)toString():返回关于异常的简短描述消息。

3)printStackTrace():显示异常及其栈轨迹。

4)filllnStackTrace():重写异常的执行栈轨迹。

IT兄弟连 JavaWeb教程 JSP内置对象经典面试题的更多相关文章

  1. IT兄弟连 JavaWeb教程 JSP内置对象经典案例

    案例需求:使用MVC模式编写一个程序当发起一个deptList.do请求时在servlet中准备一个部门列表对象,把这个列表对象放入request作用域中,然后转发到deptlist.jsp,使用js ...

  2. IT兄弟连 JavaWeb教程 JSP内置对象1

    JSP内置对象定义 JSP提供了由容器实现和管理的内置对象,也可以称之为隐含对象,这些内置对象不需要通过JSP页面编写来实例化,在所有的JSP页面中都可以直接使用,它们起到了简化页面的作用,JSP的内 ...

  3. IT兄弟连 JavaWeb教程 JSP内置对象3

    读取web.xml配置信息的config对象 config对象主要用于取得服务器的配置信息.通过pageContxt对象的getServletConfig()方法获取一个config对象.当一个Ser ...

  4. IT兄弟连 JavaWeb教程 JSP内置对象2

    application对象 application对象用于保存所有应用程序中的公有数据.它在服务器启动时自动创建,在服务器关闭时销毁,当application对象没有被销毁时,所有用户都可以共享app ...

  5. JavaWeb学习----JSP内置对象详解

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  6. JavaWeb之 JSP:内置对象,EL表达式,JSP标签基础

    JSP的内置对象 什么是JSP的内置对象呢? 在JSP页面进行编程的时候,如果我们要使用一些对象,如:HttpSession,ServletConfig,ServletContext这些对象,如果每次 ...

  7. JavaWeb基础-Jsp内置对象

    request对象 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应,它是HttpServlteRequest类的实例.Request对象具有请求域,即完成客户端 ...

  8. IT兄弟连 JavaWeb教程 EL与JSTL表达式经典面试题

    1.简述EL表达式的作用 EL表达式的作用可分为以下三类 访问Bean的属性. 输出简单的运算结果. 获取请求参数值. 2.JSP标签的作用?如何定义? JSP标签可以分离JSP页面的内容和逻辑,业务 ...

  9. JavaWeb——JSP内置对象application,JSP属性范围

    application application语法 application对象 JSP属性范围 范围的分类 page request session application pagecontext延伸 ...

随机推荐

  1. ubuntu 12.04 解压安装jdk

    ubuntu下解压安装jdk,简单方便.分享一下安装方法: 注:该方法针对新系统,之前没有配置过jdk的情况. 1.下载相应版本号的jdk压缩包.如 jdk-8u5-linux-x64.gz 2.解压 ...

  2. "php"正则表达式使用总结

    一直对php的正则表达式的理解不是很深刻,而且是很一知半解,所以把自己用的的正则表达式总结下,以后方便查阅,以后遇到正则表达式的时候然后再追加到该文档的后面: /** * php常用正则表达式 * p ...

  3. vue-面试

    1.单页面应用与多页面应用的去别 2.简述一下Sass.Less,且说明区别? 他们是动态的样式语言,是CSS预处理器,CSS上的一种抽象层.他们是一种特殊的语法/语言而编译成CSS.变量符不一样,l ...

  4. hdu1015 Safecracker —— 回溯

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1015 代码1: #include<stdio.h>//hdu1015 #include&l ...

  5. ansible 自动ssh

    http://szgb2016.blog.51cto.com/340201/1669731 安装 yum -y install ansible expect 生成key,ssh-keygen -t r ...

  6. scanf()函数

    Scanf函数攻略: (A)                格式化说明符 格式字符           说明 %d                 读入十进制整数 %u                 ...

  7. 小trick之mklink

    因为要看很多论文就下载安装了zotero,又因为文献库的文件夹在安装目录太深,找起来太麻烦,再加上是软件本身的安装目录,因此把论文都下载在默认文件中总会天然地产生不安全感,万一误删软件怎么办.所以在文 ...

  8. 编程模式(schema) —— 表驱动法(table-driven)

    使用表驱动法,而非繁琐冗长的 if/else, switch case(本身也代表一种代码坏味道),也是替身编程质量的重要手段, 表驱动法是一种编程模式(schema)-- 从表里面查找信息而不使用逻 ...

  9. 「LOJ#10043」「一本通 2.2 例 1」剪花布条 (KMP

    题目描述 原题来自:HDU 2087 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? 输入格式 输入数据 ...

  10. 一个轻量级AOP的实现(开源)

    事先声明,本项目参考AOP in C#和园内大神张逸的文章,思路神马的都不是自己的! 为了让项目的代码看起来更干净,需要一个AOP! 于是就实现了一个非常简单的,非常轻量级,有多轻量级呢? 实现的AO ...